Agent4J —— 一个轻量的Java智能体开发框架, 让你的程序轻松实现类似Claude Code的功能.
前言
最近一段时间,AI Agent(智能体)的概念非常火热。像 Claude Code、Cursor 这样的工具,已经能够自主地读写文件、执行命令、拆解任务,甚至生成完整的项目代码。我一直在想:作为一名 Java 开发者,有没有可能在 Java 生态中也实现类似的能力?
答案是有的。
我发现了一个叫 Agent4J 的开源项目,作者是guoshengkai, 它是一个纯 Java 编写的轻量级智能体框架,目标就是让 Java 开发者用最少的代码,构建出具备自主执行能力的 AI Agent。我花了一些时间研究并实际使用了它,今天来分享一下我的体验。
Agent4J 是什么?
简单来说,Agent4J 是一个让你用 Java 构建 自主 AI 智能体 的框架。它借鉴了 Claude Code 和 Cursor 的设计理念,提供了构建智能体所需的核心能力:
- 📁 文件读写:在本地文件系统中自由读取、创建、编辑、删除文件
- 💻 Shell 命令执行:跨平台执行终端命令(Windows/macOS/Linux)
- 📋 任务规划:将复杂任务自动拆解为多个步骤,按计划依次执行
- 🤖 子智能体:为主任务派发子 Agent,独立处理子任务
- 🔌 多模型支持:兼容 OpenAI、Anthropic 及所有 OpenAI 兼容 API
- 📡 实时流式输出:通过 SSE 实现流式响应,实时回调渲染
为什么选择 Agent4J?
作为一个 Java 开发者,Agent4J 吸引我的地方在于它的 轻量和纯粹:
| 特性 | 说明 |
|---|---|
| 不依赖 Spring | 纯 Java 17 开发,仅依赖 Jackson + OkHttp |
| 内置 Agent Loop | 自动完成「调用工具 → 执行 → 反馈」的循环 |
| 多模型提供商 | 支持 OpenAI Chat、OpenAI Responses、Anthropic Messages API |
| 任务规划 & 子智能体 | 内置任务编排能力,支持复杂任务分解 |
| 流式输出 | 基于回调的实时 SSE 流式渲染 |
| 自定义工具 | 只需注解一个 Java 类,框架自动处理 JSON Schema 生成和调用 |
| 技能系统 | 将多个工具组合为「技能」,配合使用指南,让 LLM 更好地理解和使用 |
对于已经在 Java 技术栈上的团队来说,这意味着不需要引入 Python 生态,不需要额外的运行环境,直接在现有的 Java 项目中就能接入 AI Agent 能力。
快速上手
添加 Maven 依赖
<dependency>
<groupId>ink.icoding.llm</groupId>
<artifactId>agent4j</artifactId>
<version>1.1</version>
</dependency>
最简示例
// 1. 创建 LLM 模型
LLMModel llm = LLMModel.create(ModelType.OpenAI, "https://api.openai.com", "gpt-4o", "sk-...");
// 2. 创建智能体,加载内置技能
AgentClient agent = new AgentClient();
agent.setName("MyAgent");
agent.setDescription("A helpful assistant");
agent.setModel(llm);
agent.getSkills().addAll(BuiltInSkills.all());
// 3. 发送指令,流式接收响应
agent.createSession()
.command("列出当前目录下所有 Java 文件")
.then(new AgentResultHandler() {
public void onMessage(String msg) { System.out.print(msg); }
public void onTool(ToolDescriptor tool, ToolStatus status) {
System.out.println("[" + status + "] " + tool.getName());
}
})
.error(e -> e.printStackTrace());
就这么简单。三步:创建模型 → 创建智能体 → 发送指令。框架会自动完成工具调用的循环,直到任务完成。
几个核心概念:
- AgentClient:智能体本身,定义名称、描述、使用的模型、可用的工具和技能
- AgentClientSession:一次对话会话,维护对话历史和上下文
- LLMModel:对 LLM 提供商的抽象,支持 OpenAI、Anthropic 等
- Tool:一个可被 LLM 调用的工具,有类型化的参数定义
- Skill:一组工具 + 使用指南的组合,帮助 LLM 更好地理解如何使用这些工具
- Plan:执行计划,LLM 将复杂任务拆解为步骤后依次执行
在若依框架上的实践
说完了理论,接下来说说我的实际体验。
我在大家常用的 若依(RuoYi) 后台管理脚手架上做了一个简单的集成实验。若依是 Java 生态中非常流行的后台管理系统框架,基于 Spring Boot + MyBatis,相信很多 Java 开发者都用过。
我把 Agent4J 集成到一个若依项目中,用它替代了若依中的固定模版式的代码生成, 转而是AI代码生成, 让智能体能够根据自然语言指令自动导包, 编写代码, DEBUG, 编译。
效果展示:

页面写的比较简单, 不要介意, 增加了一个"AI代码生成"菜单, 在这里想要生成什么样的代码直接和他说即可. 比如这里我让它写一个图书管理模块试下(我提前创建了目录, 事实上后面经过测试, 即使不创建模块目录, 它也会自己创建并引入合适的pom配置)
开始列计划了, 并且在按部就班的执行.
令我惊喜的是, 它不但生成了完整的模块, 还顺便完成了上层项目中的pom.xml的适配, 我切到IDE中, 发现IDEA已经发现并解析到这个模块了.
这是一个生成出的代码片段, 可以明显的发现, 它与生成固定的增删改查的模板式代码而言, 具备了真正的业务逻辑, 基本上就是可以直接拿来用的.
往后的开大大概是:
产品: 程序员, 你做个xxx
程序员: AI, 你做个xxx, 注意xxx
实际运行下来,效果相当不错。Agent 能够准确理解指令意图,自主调用文件系统和命令执行工具完成任务,任务规划(Plan)功能也能很好地将复杂操作拆解为可执行的步骤。整个过程的流式输出也让人感觉很流畅,能实时看到智能体的思考和执行过程。
对于已经使用若依这类 Spring Boot 项目的团队来说,Agent4J 的接入成本非常低——它不依赖 Spring,只需要加一个 Maven 依赖就可以在现有项目中使用,与已有的服务层、数据层完全不冲突。
总结
Agent4J 给我最大的感受就是 简洁而不简单。
- 简洁:几行代码就能跑起一个具备自主执行能力的 AI 智能体,自定义工具也只需要注解一个类
- 不简单:内置了完整的能力体系——文件操作、命令执行、任务规划、子智能体编排、流式输出、会话序列化,该有的都有
对于 Java 开发者来说,如果你想在项目中集成 AI Agent 能力,而不想引入 Python 生态或者重量级的框架,Agent4J 是一个值得尝试的选择。
我在若依上的实践也证明了,它能够很好地融入现有的 Java 项目架构中,接入成本低,效果也不错。
如果你感兴趣,可以去看看它的 GitHub 仓库:https://github.com/onlyGuo/agent4j
以上是我在使用 Agent4J 过程中的一些体验和总结,希望对大家有所帮助。如果你也在 Java 项目中尝试了 AI Agent 的集成,欢迎交流讨论。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)