
目录1. 面向生产环境的智能体工程平台2. 快速上手 从零构建生产级智能体3. Agent —— 智能体的核心抽象与工程化实践4. Message Event —— 消息模型与事件流深度解5. Middleware —— 无侵入式智能体扩展机制深度解析6. Model —— 统一模型接入层与容错机制深度解析7. Permission System —— 权限控制系统深度解析8. Tool —— 工具系统架构与生产级实践深度解析9. Context —— 运行时上下文与状态管理深度解析一、前言AgentScope Java 2.0 是阿里巴巴通义实验室推出的面向生产环境的智能体工程平台。其 Quick Start 文档以极简的路径展示了从环境搭建到多用户并发服务的完整链路。本文将基于官方文档内容系统梳理 AgentScope 2.0 的快速上手流程并深入解析其核心设计思想。二、环境准备与安装2.1 基础要求依赖项最低版本JDK17Maven3.9推荐2.2 Maven 依赖配置AgentScope 2.0 采用模块化依赖设计核心入口为 agentscope-harnessdependencygroupIdio.agentscope/groupIdartifactIdagentscope-harness/artifactIdversion${agentscope.version}/version/dependency设计要点HarnessAgent 是推荐的入口类它将工作区、长期记忆、会话持久化、子 Agent、沙箱等工程能力打包在一个 Builder 中。依赖 agentscope-harness 会自动引入核心 agentscope-core。如果只需要裸 ReActAgent 的框架 API不需要工作区/持久化/子 Agent/沙箱仅引入 agentscope-core 即可。模型扩展模块是独立的需按需引入。例如使用 DashScopedependencygroupIdio.agentscope/groupIdartifactIdagentscope-extensions-model-dashscope/artifactIdversion${agentscope.version}/version/dependency2.3 模块依赖关系agentscope-harness └── agentscope-core自动传递 └── agentscope-extensions-model-*按需引入 ├── dashscope ├── openai ├── anthropic ├── gemini └── ollama三、第一个智能体三合一能力演示官方 Quick Start 通过一个精炼示例同时展示了三大核心能力能力说明工作区驱动的人格通过 AGENTS.md 定义 Agent 人格会话自动持久化相同 sessionId 的第二轮自动恢复上下文对话压缩超阈值后自动压缩长期事实落入 MEMORY.md3.1 完整代码示例importio.agentscope.core.agent.RuntimeContext;importio.agentscope.core.message.UserMessage;importio.agentscope.harness.agent.HarnessAgent;importio.agentscope.harness.agent.memory.compaction.CompactionConfig;importjava.nio.file.Paths;publicclassFirstAgent{publicstaticvoidmain(String[]args){HarnessAgentagentHarnessAgent.builder().name(note-taker).sysPrompt(你是一个帮助用户做笔记的助手。)// 字符串形式由 ModelRegistry 解析 —— 自动读取 DASHSCOPE_API_KEY.model(dashscope:qwen-plus).workspace(Paths.get(.agentscope/workspace)).compaction(CompactionConfig.builder().triggerMessages(30).keepMessages(10).build()).build();RuntimeContextctxRuntimeContext.builder().sessionId(demo-session).userId(alice).build();// 第一轮自我介绍 当天的事agent.call(newUserMessage(我叫天宇今天准备一个关于 ReAct 的技术分享。),ctx).block();// 第二轮同 sessionId自动恢复上一轮状态后回答agent.call(newUserMessage(我叫什么我今天要干什么),ctx).block();}}3.2 关键设计解析模型切换极简.model(“dashscope:qwen-plus”) 以字符串形式传入由 ModelRegistry 解析并自动读取对应环境变量。切换厂商只需修改字符串.model(openai:gpt-5.5).model(anthropic:claude-sonnet-4-5).model(gemini:gemini-2.0-flash).model(ollama:llama3)压缩策略配置CompactionConfig.builder().triggerMessages(30)// 消息数达到 30 条时触发压缩.keepMessages(10)// 压缩后保留最近 10 条.build()3.3 运行后的目录结构运行后自动生成两棵目录树.agentscope/workspace/ ← 工作区Agent 内容 ├── AGENTS.md ← Agent 人格定义 └── agents/note-taker/ └── sessions/ ← 永不压缩的原始对话日志 ~/.agentscope/state/note-taker/ ← 状态存储工作区之外 └── alice/demo-session/ ← AgentState 自动写回/加载 └── agent_state.json架构要点AgentState 默认存储在工作区之外的 ~/.agentscope/state// 下。这是因为状态是恢复工作区本身的前提条件例如沙箱清空后需要先有状态才能重建工作区不能和工作区数据耦合。3.4 记忆压缩流转多轮对话触发压缩后的数据流转对话消息超阈值 ↓ 自动压缩 workspace/memory/YYYY-MM-DD.md ← 提炼出的事实 ↓ 周期性合并 MEMORY.md ← 长期记忆 ↓ 下一轮推理时 自动注入 system prompt ← 影响后续行为四、流式输出实时查看推理与工具调用将 call(…) 替换为 streamEvents(…) 即可获取实时事件流适用于 Web/TUI 渲染场景importio.agentscope.core.event.AgentEventType;importio.agentscope.core.event.TextBlockDeltaEvent;importio.agentscope.core.event.ToolCallStartEvent;agent.streamEvents(newUserMessage(帮我把今天的关键点列三条。)).doOnNext(event-{if(event.getType()AgentEventType.TEXT_BLOCK_DELTA){// 模型返回的流式文本片段System.out.print(((TextBlockDeltaEvent)event).getDelta());}elseif(event.getType()AgentEventType.TOOL_CALL_START){// 智能体即将调用工具System.out.println(\n[tool] ((ToolCallStartEvent)event).getToolCallName());}// 其他事件思考块、工具结果、回复结束等}).blockLast();事件类型一览事件类型说明TEXT_BLOCK_DELTA模型流式文本片段TOOL_CALL_START工具调用开始思考块事件模型推理过程工具结果事件工具执行返回回复结束事件本轮推理完成五、多用户并发无状态设计这是 AgentScope 2.0 面向生产环境的核心架构决策Agent 在调用之间是无状态的——同一个实例可以处理不同用户、不同会话的请求。5.1 实现方式通过 RuntimeContext 传入 userId / sessionId每次调用自动加载并隔离各自的对话上下文// 应用启动时创建一个 Agent 实例单例即可HarnessAgentagentHarnessAgent.builder().name(note-taker).sysPrompt(你是一个帮助用户做笔记的助手。).model(dashscope:qwen-plus).workspace(Paths.get(.agentscope/workspace)).compaction(CompactionConfig.builder().triggerMessages(30).keepMessages(10).build()).build();// 在 HTTP handler 中——不同请求传入不同 RuntimeContextagent.call(newUserMessage(userInput),RuntimeContext.builder().sessionId(sessionId).userId(userId).build()).block();5.2 并发安全保证场景行为同一 (userId, sessionId) 的并发请求自动串行化不会并发写同一份状态不同 session 的请求完全并行互不干扰六、生产环境注意事项6.1 状态存储选型环境推荐方案开发/单机JsonFileAgentStateStore默认生产集群RedisAgentStateStore由 agentscope-extensions-redis 提供自定义实现 AgentStateStore 接口⚠️ 重要警告默认的 JsonFileAgentStateStore 是基于本地文件的实现仅适用于开发和单机部署。生产集群环境必须使用分布式实现。6.2 环境变量配置模型提供商环境变量DashScopeDASHSCOPE_API_KEYOpenAIOPENAI_API_KEYAnthropicANTHROPIC_API_KEYGeminiGEMINI_API_KEY七、进阶学习路径Quick Start 完成后官方推荐的深入方向主题内容智能体AgentReActAgent 完整接口、参数、call/streamEvents/observe、人机交互、AgentStateStore 配置Harness 架构HarnessAgent 各项能力如何协作、状态如何流转工作区AGENTS.md/MEMORY.md/skills//subagents//tools.json 的目录布局与加载机制文件系统本机 shell / 共享存储 / 沙箱三种部署模式八、总结AgentScope Java 2.0 的 Quick Start 展示了其核心设计哲学极简启动一个 Builder 链式调用即可跑通完整能力栈关注点分离核心框架、模型扩展、工程能力三层解耦生产就绪无状态设计 RuntimeContext 隔离天然支持多租户并发渐进式复杂度从 agentscope-core 到 agentscope-harness按需叠加能力从 10 行代码的第一个 Agent到多用户并发的生产服务AgentScope 2.0 提供了一条平滑且完整的工程化路径。