news 2026/7/11 2:21:47

AgentScope Java 项目入门 Builder 深度解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AgentScope Java 项目入门 Builder 深度解读

第一部分:AgentScope Java 项目入门

一、项目定位

AgentScope Java 是阿里巴巴开源的 AI 智能体编程框架(Apache-2.0,JDK 17+),用于构建基于大语言模型(LLM)的生产级应用。可以类比为 Java 版的 LangChain + CrewAI,但更面向企业级生产环境。

Maven 坐标:io.agentscope:agentscope:2.0.0-SNAPSHOT

二、模块全景

项目是多模块 Maven 工程,共 6 个顶层模块:

顶层模块定位
agentscope-java/父工程
├─ agentscope-core/核心框架(Agent、Model、Tool、Memory、Hook 等)
├─ agentscope-harness/生产运行时(沙箱、Workspace、消息总线、分布式存储)
├─ agentscope-extensions/16 个扩展模块(MCP、A2A、RAG、长期记忆、渠道接入等)
├─ agentscope-examples/示例应用(CodingAgent、DataAgent、Builder 等)
├─ agentscope-dependencies-bom/BOM 版本管理
└─ agentscope-distribution/发布打包
模块定位
agentscope-core框架内核:Agent、Model、Tool、Memory、Hook/Middleware、消息、状态、技能、RAG 抽象、权限、追踪
agentscope-harness生产运行层:沙箱文件系统、Workspace 管理、消息总线、分布式存储、Agent 隔离
agentscope-extensions16 个扩展模块,提供集成能力
agentscope-examples示例应用和文档片段
agentscope-dependencies-bomBOM(物料清单)统一依赖版本
agentscope-distribution发布打包(agentscope-all uber-jar、agentscope-bom)

三、核心概念(5 个关键抽象)

理解这 5 个抽象就掌握了框架骨架:

概念核心类作用
AgentReActAgent智能体,执行 “推理→行动” 循环
ModelDashScopeChatModel/ OpenAIChatModel/ AnthropicChatModel等LLM 模型层,统一流式接口
Tool@Tool+@ToolParam+ Toolkit工具系统,注解驱动,自动 JSON Schema 生成
MsgMsg+ ContentBlock消息模型,支持文本 / 图片 / 音频 / 工具调用等多模态
Memory/StateAgentState+ AgentStateStore会话上下文持久化状态(2.0 版本替代了旧 Memory)

四、ReAct 循环 ——Agent 的核心工作方式

  1. 用户输入 → Agent 推理(LLM 决定用什么工具)→ 执行工具 → 观察结果 → 再推理 → … → 最终回复

ReActAgent是这个循环的核心实现,关键参数:

  • maxIters— 最大推理轮数(防止无限循环)
  • toolkit— 注册的工具集
  • middleware— 中间件链(2.0 新特性,替代 Hook)

五、最小可运行示例

ReActAgent agent = ReActAgent.builder() .name("Assistant") .sysPrompt("你是一个有帮助的 AI 助手。") .model(DashScopeChatModel.builder() .apiKey(System.getenv("DASHSCOPE_API_KEY")) .modelName("qwen-max") .build()) .build(); // 同步调用 Msg response = agent.call(Msg.builder() .textContent("你好!") .build()).block(); System.out.println(response.getTextContent());

六、工具定义(最常用功能)

用注解定义工具,框架自动生成 JSON Schema 给 LLM:

public class MyTools { @Tool(description = "查询天气信息") public String getWeather( @ToolParam(name = "city", description = "城市名称") String city ) { return city + "今天晴, 25℃"; } } // 注册到 Agent Toolkit toolkit = new Toolkit(); toolkit.registerTool(new MyTools()); ReActAgent agent = ReActAgent.builder() .name("WeatherAgent") .toolkit(toolkit) .model(model) .build();

七、关键设计特点

特点说明
全异步响应式基于 Project Reactor,所有 I/O 非阻塞,call()返回Mono,stream()返回Flux
中间件系统(2.0)5 个拦截点:Agent/Reasoning/Acting/ModelCall/SystemPrompt,洋葱模型
多模型支持DashScope、OpenAI、Anthropic、Gemini、Ollama,统一接口
MCP 协议一行代码接入 MCP 工具生态
A2A 协议分布式多 Agent 协作,注册到 Nacos 即可互相发现和调用
人机协同(HITL)PermissionEngine 支持 ASK 模式,关键操作需人类确认
安全沙箱4 种沙箱环境(AgentRun/Daytona/E2B/K8s Pod)

八、核心架构(agentscope-core 包结构)

基础路径:agentscope-core/src/main/java/io/agentscope/core/

职责
agent/Agent 接口和基类(Agent、AgentBase、CallableAgent、StreamableAgent、RuntimeContext)
agent/accumulator/流式内容累加器(TextAccumulator、ThinkingAccumulator、ToolCallsAccumulator)
agent/config/配置记录(ModelConfig、ReactConfig)
credential/凭证管理
event/流式事件类型(约 35 个事件类):AgentStartEvent、TextBlockDeltaEvent、ToolCallStartEvent等
exception/框架异常
formatter/模型消息格式化器:openai/、anthropic/、dashscope/、gemini/、ollama/
hook/旧版 Hook 系统(2.0 已废弃,被 middleware 替代)
interruption/协作中断(InterruptControl、InterruptContext)
memory/记忆接口:Memory(已废弃)、InMemoryMemory、LongTermMemory、StateBackedMemory
message/消息模型:Msg、MsgRole、ContentBlock、TextBlock、ThinkingBlock、ToolUseBlock等
middleware/2.0 新中间件系统:MiddlewareBase、MiddlewareChain、AgentInput、ReasoningInput等
model/LLM 模型层:Model接口、ChatModelBase、各厂商实现、传输层(OkHttp/JDK HTTP/WebSocket)
permission/权限引擎:PermissionEngine、PermissionRule、HITL 确认流程
rag/RAG 抽象:Knowledge接口、genericRAGHook、KnowledgeRetrievalTools
shutdown/优雅关闭:GracefulShutdownManager、GracefulShutdownMiddleware
skill/技能系统:SkillBox、AgentSkill、SkillRegistry、DynamicSkillMiddleware
state/Agent 状态持久化:AgentState、AgentStateStore、JsonFileAgentStateStore
tool/工具框架:Toolkit、AgentTool、@Tool@ToolParam、ReflectiveFunctionTool、MCP 集成、内置工具
tracing/可观测性:Tracer、NoopTracer、OtelTracingMiddleware

九、扩展模块一览(agentscope-extensions)

扩展子模块用途
extensions-channelchannel-dingtalk、channel-feishu、channel-github、channel-gitlab、channel-wecomIM 平台集成(钉钉、飞书、GitHub、GitLab、企微)
extensions-higressHigress API 网关集成
extensions-memmem0、memory-bailian、reme长期记忆后端(Mem0、阿里百炼、ReMe)
extensions-mysqlMySQL 状态持久化
extensions-nacosNacos 服务发现 / 配置
extensions-oss阿里云 OSS 存储
extensions-protocola2a(客户端 + 服务端)、agent-protocol、agui、chat-completions-web协议适配器:A2A、Agent Protocol、AG-UI、OpenAI 兼容 API
extensions-ragrag-bailian、rag-dify、rag-haystack、rag-ragflow、rag-simpleRAG 后端(百炼、Dify、Haystack、RAGFlow、简单 Embedding)
extensions-redisRedis 状态持久化
extensions-sandboxsandbox-agentrun、sandbox-daytona、sandbox-e2b、sandbox-kubernetes沙箱代码执行环境
extensions-schedulerscheduler-quartz、scheduler-xxl-job定时 Agent 执行(Quartz、XXL-JOB)
extensions-studioAgentScope Studio(可视化调试 UI、WebSocket、OpenTelemetry)
spring-boot-startersagentscope、a2a、admin、agui、chat-completions-web、nacosSpring Boot 自动配置

十、关键类速查表

你在找的文件路径
Agent 接口core/agent/Agent.java
ReActAgent(主 Agent 实现)core/ReActAgent.java
Model 接口core/model/Model.java
DashScope 模型core/model/DashScopeChatModel.java
OpenAI 模型core/model/OpenAIChatModel.java
Anthropic 模型core/model/AnthropicChatModel.java
Msg(消息)core/message/Msg.java
ContentBlock 系列core/message/TextBlock.java、ThinkingBlock.java、ToolUseBlock.java等
Toolkitcore/tool/Toolkit.java
@Tool注解core/tool/Tool.java
@ToolParam注解core/tool/ToolParam.java
Memory 接口core/memory/Memory.java
LongTermMemorycore/memory/LongTermMemory.java
Middleware (2.0)core/middleware/MiddlewareBase.java
Hook(旧版)core/hook/Hook.java
AgentStatecore/state/AgentState.java
Permission 引擎core/permission/PermissionEngine.java
MCP 客户端core/tool/mcp/McpClientBuilder.java
Skill 系统core/skill/SkillBox.java
RAG Knowledgecore/rag/Knowledge.java
HarnessAgentharness/agent/HarnessAgent.java

十一、重要编码禁忌

禁止正确做法
在 Agent 逻辑中调用.block()只在main()或测试中.block()
使用Thread.sleep()使用Mono.delay()
使用ThreadLocal使用 Reactor Context(Mono.deferContextual()
硬编码 API Key使用System.getenv()
toolkit.registerObject()使用toolkit.registerTool()

十二、推荐的入门路径

  1. 先读SKILL.md(项目根目录)— 官方编码指南,1053 行,包含完整 API 用法和避坑规则
  2. 跑示例agentscope-examples/下的示例应用,特别是agentscope-codingagent(带技能的编码 Agent)
  3. 理解核心:读ReActAgent.java源码,理解 ReAct 循环的实现
  4. 尝试扩展:看agentscope-extensions/中感兴趣的扩展(如 MCP、RAG、长期记忆)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 2:21:29

让README “活”起来:Readme Typing SVG 介绍与本地化改造实践

当静态的 README 文件拥有了动态的打字效果,你的 README 主页便有了生命力。 在一些开源项目上,README 文件是项目的门面,也是开发者展示个人品牌的重要窗口。一个好的 README 不仅能清晰传达项目信息,更能给访客留下深刻印象。re…

作者头像 李华
网站建设 2026/7/11 2:18:33

AI 小说创作新手实战指南

写小说最让人头疼的往往不是灵感枯竭,而是如何将脑海中那个宏大的世界和鲜活的人物,真正落地成几十万字的连贯文本。很多创作者卡在“想得好”却“写不出”的困境里:要么开篇惊艳后续乏力,要么人物说着同样的话,剧情在…

作者头像 李华
网站建设 2026/7/11 2:16:09

彻底解决Unity WebGL加载错误:从HTTP压缩原理到服务器配置实战

1. 项目概述:一个让无数开发者头疼的WebGL加载错误如果你正在开发Unity WebGL项目,并且满怀期待地将构建好的文件上传到服务器,结果在浏览器里只看到一个白屏,控制台里赫然躺着一条“Unable to parse Build/WebGL.framework.js.gz…

作者头像 李华
网站建设 2026/7/11 2:15:43

Flutter/React Native 跨平台开发:3步配置 Android SDK 环境变量避坑指南

Flutter/React Native 跨平台开发:3步配置 Android SDK 环境变量避坑指南跨平台移动开发框架如Flutter和React Native极大提升了开发效率,但环境配置问题常常成为新手的第一道门槛。特别是当flutter doctor命令提示"ANDROID_HOME not set"时&a…

作者头像 李华
网站建设 2026/7/11 2:15:20

Agent Memory 设计笔记:从短期上下文到长期经验

echo-agent 前身为 2025 年 11 月启动的个人助理项目 fubot,最初面向长期陪伴型个人智能体,围绕认知记忆、上下文延续、用户偏好沉淀、任务闭环与持续自我优化展开。随着真实场景迭代,项目逐步形成多入口接入、统一事件模型、消息总线、Agent…

作者头像 李华
网站建设 2026/7/11 2:14:03

高通 9008 模式 Flat Build 与 Meta Build:2 种刷机模式原理与实战选择

高通9008模式Flat Build与Meta Build:深度解析与实战决策指南当你的高通设备陷入无法开机的"砖机"状态,或是需要绕过系统限制进行深度维护时,9008模式下的两种刷机方案——Flat Build与Meta Build,往往成为最后的救命稻…

作者头像 李华