前言

最近一段时间,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配置)
Agent4J创建并执行计划
开始列计划了, 并且在按部就班的执行.
最终生成的目录结构
令我惊喜的是, 它不但生成了完整的模块, 还顺便完成了上层项目中的pom.xml的适配, 我切到IDE中, 发现IDEA已经发现并解析到这个模块了.
Agent4J开发出的代码片段
这是一个生成出的代码片段, 可以明显的发现, 它与生成固定的增删改查的模板式代码而言, 具备了真正的业务逻辑, 基本上就是可以直接拿来用的.

往后的开大大概是:
产品: 程序员, 你做个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 的集成,欢迎交流讨论。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐