sub-agents.mdx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. ---
  2. title: "子 Agent 机制 - AI 分身术与任务委派"
  3. description: "深入解析 Claude Code 子 Agent 机制:主 Agent 如何通过 AgentTool 委派子任务,子 Agent 的生命周期管理、工具继承和结果回传。"
  4. keywords: ["子 Agent", "Agent 分身", "任务委派", "AgentTool", "多 Agent"]
  5. ---
  6. {/* 本章目标:解释子 Agent 机制的设计和应用场景 */}
  7. ## 为什么需要子 Agent
  8. 有些任务太大,一个 AI 实例忙不过来:
  9. - "在 5 个不同的文件中分别找到并修复同类 bug"
  10. - "一边重构后端 API,一边更新前端调用"
  11. - "研究这个库的用法,同时修改我们的代码"
  12. ## 分身术的运作方式
  13. Claude Code 中的 Agent 工具让 AI 能够**启动另一个 AI 实例**来处理子任务:
  14. <Steps>
  15. <Step title="主 Agent 分析任务">
  16. 主 Agent 判断任务可以被拆解为独立的子任务
  17. </Step>
  18. <Step title="启动子 Agent">
  19. 通过 Agent 工具创建一个或多个子 Agent,每个子 Agent 收到一个清晰的子任务描述
  20. </Step>
  21. <Step title="并行执行">
  22. 多个子 Agent 可以同时工作,互不干扰
  23. </Step>
  24. <Step title="结果汇总">
  25. 子 Agent 完成后,结果返回给主 Agent,主 Agent 汇总并呈现给用户
  26. </Step>
  27. </Steps>
  28. ## 子 Agent 的边界
  29. 子 Agent 不是和主 Agent 完全一样的——它有明确的能力边界:
  30. | 特性 | 主 Agent | 子 Agent |
  31. |------|---------|---------|
  32. | 可用工具 | 全部工具 | 受限子集(不能再启动子 Agent 等) |
  33. | 上下文 | 完整的会话历史 | 只有主 Agent 给的任务描述 |
  34. | 权限 | 用户设定 | 继承主 Agent 的权限,或更严格 |
  35. | 状态 | 可修改全局状态 | 隔离的状态空间 |
  36. ## 通信方式
  37. 主 Agent 和子 Agent 之间通过**消息邮箱**通信:
  38. - 主 Agent 通过 `Agent` 工具启动子 Agent
  39. - 子 Agent 通过 `SendMessage` 工具向主 Agent 报告进度
  40. - 这种松耦合的通信方式让 Agent 可以异步协作
  41. ## 适用场景
  42. <CardGroup cols={2}>
  43. <Card title="并行研究" icon="magnifying-glass">
  44. 多个子 Agent 同时搜索不同方向的信息
  45. </Card>
  46. <Card title="分治修改" icon="code-branch">
  47. 把大规模修改拆分到多个子 Agent 并行执行
  48. </Card>
  49. <Card title="前后台配合" icon="layer-group">
  50. 一个子 Agent 在后台运行测试,主 Agent 继续写代码
  51. </Card>
  52. <Card title="隔离实验" icon="flask">
  53. 在 worktree 中启动子 Agent 尝试一个方案,不影响主分支
  54. </Card>
  55. </CardGroup>