Skip to content
目录

SubAgent 机制详解

SubAgent 用独立 LangGraph 子运行处理子任务,隔离 messages 与工具噪声,向主 Agent 只返回最终摘要或结果消息


1. 设计目标

主 Agent 直接做SubAgent
上下文迅速膨胀子对话在子 state
工具链混乱子代理专用 tools
难并行可并行多个 subagent 调用

2. 配置方式

createDeepAgent({ subagents: [...] }) 声明:

  • name / description(主模型选型)
  • prompt / tools / model(可不同于主代理)
  • 可选继承主代理 Skills

3. 执行流程

mermaid
sequenceDiagram
  participant M as 主 Agent
  participant T as task 工具
  participant S as 子 Agent 图
  M->>T: 派发子任务
  T->>S: invoke 子图
  S->>S: 多轮 tool 循环
  S->>T: 最终消息
  T->>M: 压缩结果

4. 状态隔离

子图使用 独立 thread 或隔离 state 字段;父图 messages 不自动包含子图中间 tool 日志(设计决策见 08)。


5. 并行

多个 task 调用可并行(受 maxConcurrency 与模型限流约束)。


6. Skills 继承

子代理可挂载 SkillsMiddleware,与父共享或覆盖技能目录(见 07)。


7. 实践

  • 子任务描述要具体,含完成标准。
  • 危险工具放子代理并收紧 Backend。
  • 避免嵌套过深,防止调度爆炸。

8. 总结

SubAgent = 上下文防火墙 + 专用小 Agent;与 LangGraph 子图 概念一致,由 middleware 封装。

MIT License.