

什么是 AgentScope?
简单来说,AgentScope 是一个 多智能体框架,旨在提供一种简单高效的方式来构建基于大语言模型的智能体应用程序。
如果说大模型(LLM)是 AI 应用的大脑,那么 AgentScope 就是它的“中枢神经系统”和“手脚”。它不仅提供了多智能体协作的架构,还内置了 ReAct 推理、工具调用、记忆管理等核心能力。
AgentScope 提供了 Python 和 Java 版本。

很多 Java 开发者可能担心 Java 版本核心能力没有 Python 版本强。好消息是:核心能力完全对齐。无论是 Runtime 运行时、核心层、Studio 可视化工具,还是 Memory(记忆)和 RL(强化学习)支持,Java 版都保持了同步。而且 Java 版在架构上全力推进 Serverless 化,利用 GraalVM 原生镜像可以实现毫秒级冷启动,这对于企业级高并发场景非常友好。
AgentScope Java 和 Spring AI Alibaba 有哪些不同?
两者的核心设计理念完全不同:
- AgentScope Java:原生为 Agentic(智能体)范式设计。它的核心是“Agent”,强调的是自主性、推理循环(ReAct)和多智能体之间的复杂博弈与协作。
- Spring AI Alibaba:更侧重于 Workflow(工作流)编排。它基于 Spring AI 生态,擅长将 AI 能力作为工具融入到预定义的业务流中。
如何选择? 如果你想构建一个能自主规划、查资料、调工具并解决复杂问题的智能助手,选 AgentScope Java;如果你只是想在现有的 Spring 业务流里加个 AI 聊天或简单的 RAG,Spring AI Alibaba 可能更顺手。
就像在技术选型中常被提及的那样:“没有银弹,适合你的才是最好的”。
AgentScope 为什么强?
- 自主且可控:采用 ReAct(推理-行动)范式,让 Agent 动态决定工具的使用。同时提供安全中断和人机协同 Hook,确保关键决策有人类监督。
- 内置生产级工具:
- PlanNotebook:将复杂目标分解为有序步骤,避免 Agent 像“无头苍蝇”。
- 结构化输出:自纠错解析器,保证响应能直接映射到 Java POJO,再也不用手写繁琐的 Regex 解析了。
- 长期记忆:语义搜索,跨会话记住用户偏好。
- 强大的生态集成:原生支持 MCP 协议(模型上下文协议)和 A2A 协议(分布式多智能体协作),让 Agent 像微服务一样通过 Nacos 实现服务发现和相互调用。
- 生产就绪:基于 Project Reactor 的响应式架构,高性能且非阻塞。
快速入门
1. 引入依赖
推荐使用 all-in-one 包,省去配置烦恼。
Maven:
<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope</artifactId>
<version>1.0.4</version>
</dependency>
Gradle:
implementation 'io.agentscope:agentscope:1.0.4'
虽然 AgentScope 与阿里云生态集成得很好,但它非常开放。它支持标准的 OpenAI 兼容协议。这意味着你可以直接调用 Qwen(通义千问)、DeepSeek、GPT-4,甚至是你在本地用 Ollama 跑的开源模型。
使用 OpenAI 模型:
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
</dependency>
与 SpringBoot 集成:
<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-spring-boot-starter</artifactId>
<version>1.0.4</version>
</dependency>
2. 基础智能体创建和单次对话
// 创建QwenPlus模型
DashScopeChatModel model = DashScopeChatModel.builder()
.apiKey(apiKey)
.modelName("qwen-plus")
.build();
// 创建智能体
ReActAgent agent = ReActAgent.builder()
.name("助手")
.sysPrompt("你是一个友好、专业的AI助手,擅长回答问题并提供帮助。")
.model(model)
.build();
// 发送消息
String question = "请用一句话介绍什么是人工智能?";
Msg response = agent.call(Msg.builder()
.textContent(question)
.build()).block();
System.out.println("\n[基础对话]");
System.out.println("Q: " + question);
System.out.println("A: " + response.getTextContent());
输出:
[基础对话]
Q: 请用一句话介绍什么是人工智能?
A: 人工智能是让机器模拟人类智能行为的技术,如学习、推理、识别和决策等。
3. 多轮对话
// 创建模型
DashScopeChatModel model = DashScopeChatModel.builder()
.apiKey(apiKey)
.modelName("qwen-plus")
.build();
// 创建智能体
ReActAgent agent = ReActAgent.builder()
.name("对话助手")
.sysPrompt("你是一个知识渊博的助手,能够记住对话上下文。")
.model(model)
.build();
// 多轮对话
List<String> questions = new ArrayList<>();
questions.add("我的名字是张三");
questions.add("我今年25岁");
questions.add("请总结一下我的信息");
System.out.println("\n[多轮对话]");
for (String question : questions) {
System.out.println("Q: " + question);
Msg response = agent.call(Msg.builder()
.textContent(question)
.build()).block();
System.out.println("A: " + response.getTextContent());
System.out.println();
}
输出:
[多轮对话]
A: 你好,张三!很高兴认识你。有什么我可以帮你的吗?
Q: 我今年25岁
A: 你好,张三!25岁正是充满活力和机遇的年纪。如果你有任何问题或需要建议,比如关于职业发展、健康生活、学习提升等方面,我很乐意为你提供帮助。有什么想聊的吗?
Q: 请总结一下我的信息
A: 当然可以,张三。根据我们之前的对话,我总结了以下关于你的信息:
- 姓名:张三
- 年龄:25岁
你目前分享的信息比较简洁,如果需要更深入的交流或个性化建议(例如关于生活、工作、学习等),欢迎补充更多内容,我会尽力为你提供帮助!
4. 多智能体协作
// 创建模型
DashScopeChatModel model = DashScopeChatModel.builder()
.apiKey(apiKey)
.modelName("qwen-plus")
.build();
// 创建多个不同角色的智能体
ReActAgent planner = ReActAgent.builder()
.name("规划师")
.sysPrompt("你是一个项目规划专家,擅长制定计划和分解任务。")
.model(model)
.build();
ReActAgent executor = ReActAgent.builder()
.name("执行者")
.sysPrompt("你是一个执行专家,擅长将计划转化为具体的执行步骤。")
.model(model)
.build();
ReActAgent reviewer = ReActAgent.builder()
.name("审查者")
.sysPrompt("你是一个审查专家,擅长评估和优化方案。")
.model(model)
.build();
System.out.println("\n[多智能体协作]");
String task = "设计一个简单的待办事项管理系统";
// 第一步: 规划师制定计划
System.out.println("任务: " + task);
System.out.println("\n--- 规划师制定计划 ---");
Msg planRequest = Msg.builder()
.textContent("请为以下任务制定一个详细的计划: " + task)
.build();
Msg plan = planner.call(planRequest).block();
logger.info("规划师: {}", plan.getTextContent());
System.out.println(plan.getTextContent());
// 第二步: 执行者细化执行步骤
Msg executionRequest = Msg.builder()
.textContent("基于以下计划,请提供具体的执行步骤:\n" + plan.getTextContent())
.build();
Msg execution = executor.call(executionRequest).block();
logger.info("执行者: {}", execution.getTextContent());
System.out.println(execution.getTextContent());
// 第三步: 审查者评估方案
Msg reviewRequest = Msg.builder()
.textContent("请评估以下执行方案,并提出改进建议:\n" + execution.getTextContent())
.build();
Msg review = reviewer.call(reviewRequest).block();
logger.info("审查者: {}", review.getTextContent());
System.out.println(review.getTextContent());
输出内容比较多,这里通过截图展示协作生成的项目计划:

进阶能力
知识库增强(RAG)
大模型虽然博学,但它不知道你的私有文档,也容易产生“幻觉”。AgentScope 内置了强大的 Knowledge 模块,让你可以轻松实现 RAG:
- 全流程开箱即用:从文档解析(PDF、Markdown、Word)、文本切分、向量化(Embedding)到向量数据库存储,AgentScope 提供了一套完整的 Pipeline。
- 语义检索记忆:Agent 在回答问题前,会自动去知识库中检索相关的背景资料。比如你把公司的《员工手册》喂给它,它就能准确回答“年假怎么休”这种特定问题,而不是满口胡诌。
- 多源支持:支持集成主流的向量数据库(如 Milvus、DashVector 等),在 Java 版中,这些操作都被封装成了响应式的 API,处理海量文档也不会阻塞主线程。
MCP 协议
简单来说, MCP 是一套标准。以前你要让 Agent 查 GitHub、读 Google Calendar,得一个个写对接代码;现在有了 MCP,只要对方支持该协议,Agent 就能像插上 USB 接口一样,直接获取外部数据和工具能力。
通过 MCP,AgentScope 的智能体可以无缝调用社区中成百上千的现成工具(如本地文件系统、数据库查询、实时天气等),极大地扩展了 Agent 的能力边界。并且,结合 AgentScope 独有的 A2A(Agent-to-Agent)协议,不同服务器上的 Agent 甚至可以通过 MCP 像微服务一样互相发现、互相调用。
其他
除了 RAG 和 MCP,AgentScope 还提供了一系列生产级特性,例如结构化输出、钩子系统、分布式协作。

总结
总的来说,研究完 AgentScope 之后,一个明显的趋势是:AI 应用开发正在从“提示词工程(Prompt Engineering)”转向“智能体工程(Agentic Engineering)”。
AgentScope 的出现,尤其是 Java 版本的核心能力对齐,意味着:
- Java 开发者不必为了玩转 AI 强行切换到 Python 生态,AgentScope 提供了原生的、高性能的响应式架构支持。
- 通过 结构化输出、钩子系统 和 Studio 可视化,它解决了 AI 输出不可控、过程黑盒等生产环境的痛点。
- 借助 A2A 协议 和 Nacos 集成,AgentScope 实际上是在定义一套“AI 微服务架构”,这非常符合企业级应用的发展趋势。
Github 地址:https://github.com/agentscope-ai/agentscope-java