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