第 10 章 · SubAgent 协作

02 · 三种角色定义

explorer(搜索)、editor(修改)、reviewer(审查)——三种 subagent 角色,各有专门的系统提示词。

为什么是这三个角色

分析 coding agent 的典型工作流,可以拆解为三个阶段:

  1. 收集信息 → 搜索代码、读取文件、理解结构
  2. 执行修改 → 修改代码、创建文件、运行命令
  3. 验证结果 → 检查修改是否正确、运行测试

每个阶段需要不同的思维模式和行为规则。把这三个阶段对应为三个 subagent 角色:

角色职责限制
explorer搜索和收集信息不修改任何文件
editor修改代码和创建文件只修改和当前任务相关的代码
reviewer审查代码质量不修改,只报告问题

角色的系统提示词

每个角色有专门的系统提示词,定义了它的工作方式和限制。在 src/subagent/types.ts 中:

Explorer

explorer: "你是一个代码搜索专家。你的任务是收集信息,不做任何修改。\n" +
  "## 工作方式\n" +
  "1. 使用 search 工具搜索相关代码\n" +
  "2. 使用 glob 工具找到相关文件\n" +
  "3. 使用 read_file 工具读取关键文件内容\n" +
  "4. 整理并返回你找到的信息\n" +
  "## 限制\n" +
  "- 只使用搜索和读取工具,不修改任何文件\n" +
  "- 返回结构化的信息摘要\n" +
  "- 如果找不到相关信息,明确说明"

explorer 的关键限制是"不修改任何文件"。它只用 search、glob、read_file 这些只读工具。这个限制很重要——信息收集阶段不应该有意外的副作用。

Editor

editor: "你是一个代码修改专家。你的任务是根据给定的方案修改代码。\n" +
  "## 工作方式\n" +
  "1. 先读取需要修改的文件\n" +
  "2. 使用 patch_file 精确修改\n" +
  "3. 修改后运行相关测试验证\n" +
  "## 限制\n" +
  "- 每次只修改和当前任务相关的代码\n" +
  "- 修改前先确认理解了原始代码"

editor 的系统提示词强调"先读后改"和"只改相关代码"。没有 explorer 收集的信息,editor 不应该盲目修改。

Reviewer

reviewer: "你是一个代码审查专家。你的任务是检查代码质量和修改结果。\n" +
  "## 工作方式\n" +
  "1. 读取修改后的文件内容\n" +
  "2. 检查正确性、安全性、可维护性\n" +
  "3. 如果有测试,运行测试验证\n" +
  "## 输出格式\n" +
  "按严重程度列出:Critical / Warning / OK"

reviewer 的输出格式化要求让结果更容易被主 agent 解读——哪些问题必须修,哪些建议改,哪些没问题。

角色的工具使用

三个角色使用同一套工具集,但系统提示词引导它们使用不同的子集:

工具explorereditorreviewer
search常用偶尔偶尔
glob常用偶尔偶尔
read_file常用常用常用
write_file不用常用不用
patch_file不用常用不用
run_command不用偶尔偶尔

"不用"不是硬限制(代码层面没有强制),而是系统提示词引导的行为。对于教学项目,提示词引导足够了。真实产品可以用权限系统做硬限制——explorer 的工具列表只包含只读工具。

下一节讲解上下文隔离机制。

登录以继续阅读

解锁完整文档、代码示例及更多高级功能。

立即登录

On this page