Skip to content

核心概念

AgentScope 2.x 不把能力堆进一个巨大的基类,而是由一组可组合的 building block 构成。 每个块职责单一、有明确的导入路径与替换点。本页给出 2.x 的全景心智模型,让你在深入各 分组前先知道每个块的位置,以及一次 reply() 调用如何把这些块串起来。

版本基线:本文以 Python agentscope 2.0.4(PyPI,2026-07-07)为准,要求 Python >=3.11。1.x 的 ReActAgent__call__agentscope.memoryagentscope.pipelineMsgHub、hooks、state_dict 等在 2.x 中已移除或重构, 不再出现。

核心构建块全景

下表按"消息与执行 → 工具与计划 → 上下文与安全 → 知识与记忆 → 部署"的顺序列出 2.x 的 核心构建块。前端类比只用来建立直觉,实现细节以"原生语义"段落为准。

构建块职责关键类前端类比对应章节
Msg / Event消息载体与流式事件MsgUserMsgAssistantMsgSystemMsgTextBlock/DataBlock/ThinkingBlock/ToolCallBlock/ToolResultBlock/HintBlockReplyStartEventTextBlockDeltaEventSSE chunk核心构建块
Agent无状态 ReAct 循环引擎AgentContextConfigreply/reply_stream/observe/compress_contextReact Component核心构建块
Model模型调用抽象与多提供商适配DashScopeChatModelOpenAIChatModelDashScopeCredentialfetch adapter / provider核心构建块
Formatter把多 Agent 对话序列化为模型输入FormatterBaseOpenAIChatFormatterOpenAIMultiAgentFormatter请求序列化层核心构建块
Tool函数工具与内置工具的统一装配ToolkitFunctionToolToolGroupBashReadWriteEditnpm 聚合核心构建块
MCP接入外部 MCP 服务作为工具来源MCPClientStdioMCPConfigHttpMCPConfig外部 API client核心构建块
State / PlanAgent 状态容器与任务计划管理AgentStateTaskTaskContextTaskCreate/TaskGet/TaskList/TaskUpdateRedux Store核心构建块
Context上下文压缩与卸载,管理 token 预算ContextConfigOffloader(通常即 Workspace虚拟列表 / 分页上下文与安全
Middleware洋葱模型横切关注点MiddlewareBaseTracingMiddlewareRAGMiddlewareAgenticMemoryMiddlewareKoa 洋葱上下文与安全
Permission工具执行前三态决策(允许 / 拒绝 / 询问)PermissionContextPermissionModeExpress auth middleware上下文与安全
Workspace工具执行的沙箱后端LocalWorkspaceDockerWorkspaceE2BWorkspaceDocker 容器上下文与安全
RAG检索增强生成,以 Middleware 注入知识RAGMiddleware搜索结果注入知识与记忆
Long-Term Memory跨会话长期记忆AgenticMemoryMiddleware(支持 Mem0 / ReMe 后端)IndexedDB知识与记忆
Agent ServiceFastAPI 多租户部署与 SSE 对外暴露Agent ServiceBFF / 后端服务工程化
Agent TeamLeader-Worker 多智能体协作Agent TeamWeb Worker 协调工程化

一次 reply() 的数据流

Agent.reply() 是 2.x 的核心入口。下表给出一轮 ReAct 循环中各步骤的发生顺序与涉及的 构建块。Middleware 以洋葱模型包裹整个流程,可在任意步骤前后插入追踪、RAG、记忆等逻辑。

步骤发生什么涉及构建块
1Agent.observe 把输入 Msg 与历史注入上下文Msg、Agent、Context
2Formatter 把上下文序列化为模型输入,调用 Model 生成回复或工具调用Model、Formatter、Middleware(前置)
3若模型返回工具调用,Toolkit 装配的工具经 Permission 三态决策Tool、MCP、Permission
4被允许的工具在 Workspace 沙箱中执行,结果以 ToolResultBlock 回灌Workspace、Msg
5接近 token 上限时 ContextConfig 触发压缩,或把大结果卸载到 OffloaderContext、Workspace
6循环结束,reply() 返回最终 Msgreply_stream() 产出结构化事件Msg、Event

reply()reply_stream() 共享同一条 ReAct 管线,区别只在输出形式:前者同步聚合为 一条 Msg,后者以 ReplyStartEventTextBlockDeltaEvent 等事件流式产出,适合接 SSE 或前端逐 token 渲染。

前端类比与原生语义

把上面的类比收拢来看:

  • Agent 像带生命周期的 React Component,但 2.x 的 Agent无状态的 ReAct 引擎, 状态由 AgentState 持有,跨会话记忆以 Middleware 形式挂载,而不是写在实例上。
  • Toolkit 像按需聚合的 npm 包,但 2.x 统一管理函数工具、MCP 工具与 Skills,且每次 调用都经过 Permission 拦截,不是直接执行。
  • Middleware 像 Koa 洋葱,但 2.x 用它替代了 1.x 的 hooks,可观测性、RAG、长期记忆 都是 MiddlewareBase 的子类。
  • Event 流像 SSE chunk,但 2.x 的事件是结构化的(TextBlockDeltaEventToolCallBlock 等),不是裸文本。
  • Permission 像 Express auth middleware,但 2.x 的三态决策(允许 / 拒绝 / 询问) 作用于工具执行前,是 Agent 安全的闸门。
  • Workspace 像 Docker 容器,但 2.x 的 Local / Docker / E2B 三后端同时承担工具执行 沙箱与上下文卸载落点两个角色。
  • AgentState 像 Redux Store,但 2.x 的状态与 Agent 实例解耦,可通过 offloader 持久化到 Workspace

AgentScope 原生语义:类比只用来建立直觉。2.x 的 Agent 是无状态 ReAct 循环引擎, 通过 reply() 同步返回最终 Msg,或 reply_stream() 异步产出结构化事件;工具、MCP、 Skills 统一由 Toolkit 装配并受 Permission 拦截;上下文压缩与卸载由 ContextConfigOffloader(通常即 Workspace)承担;可观测性、RAG、长期记忆都以 Middleware 形式挂载。不要用 1.x 的 ReActAgent__call__MsgHub、hooks、state_dict 等 概念套 2.x。

去哪学

  • 想看 MsgEventAgentModelToolMCPPlan 的 API 形状:见 核心构建块
  • 想理解上下文压缩、Middleware 洋葱、Permission 三态、Workspace 沙箱:见 上下文与安全
  • 想给 Agent 注入知识或长期记忆:见 知识与记忆
  • 想把 Agent 部署成服务或组装多智能体:见 工程化
  • 从 1.x 迁移过来:见 1.x 到 2.x 迁移

先修

下一步

官方参考

学习文档整合站点