Coordinator 4 阶段模式

启用 CLAUDE_CODE_COORDINATOR_MODE=1 时,agent 进入 coordinator 模式。

四个阶段

用户请求: "帮我重构这个 monorepo"
  ↓
[1] RESEARCH PHASE(研究阶段)
    Coordinator 说:"我需要理解项目结构"
    Worker 1 探索 package.json + tsconfig
    Worker 2 探索 src/ 目录结构
    Worker 3 探索 dependencies 图
    ↓ Workers 并行执行,通过 <task-notification> 报告
    → 输出: 项目现状报告
  ↓
[2] SYNTHESIS PHASE(综合阶段)
    Coordinator 读完全部 worker 报告
    Coordinator 说:"基于这些发现,我的计划是..."
    → 输出: 详细重构计划
  ↓
[3] IMPLEMENTATION PHASE(实施阶段)
    Coordinator 把计划分解为具体任务
    Worker A 修改 package.json
    Worker B 更新 tsconfig
    Worker C 调整 src/ 组织
    ↓ Workers 并行执行,结果存入 Tengu Scratchpad
  ↓
[4] VERIFICATION PHASE(验证阶段)
    Coordinator 说:"让我验证改动"
    Worker 运行测试
    Worker 检查类型错误
    → 输出: 验证报告
  ↓
完成:Coordinator 总结全流程,输出最终结果

通信机制:XML Protocol

Worker 通过 XML 消息向 Coordinator 报告进度:

<task-notification>
  <task-id>research-1</task-id>
  <status>complete</status>
  <summary>Found 3 monorepo packages</summary>
  <details>
    - Package A: React components (3.2 MB)
    - Package B: Utils library (1.1 MB)
    - Package C: CLI tool (0.5 MB)
  </details>
  <output>
    [完整的分析结果]
  </output>
</task-notification>

为什么用 XML? Claude 可以直接读懂并生成 XML 格式,便于调试和扩展。

Tengu Scratchpad:共享工作台

Worker 可以在共享空间写临时数据(特性门控:tengu_scratch):

// Worker 1 写入分析结果
await writeToScratchpad("project_structure.md", """
# Monorepo Structure
- packages/ui/
  - components/
  - styles/
- packages/core/
  - types/
  - utils/
""")

// Worker 2 读取并补充信息
const structure = await readFromScratchpad("project_structure.md")
await appendToScratchpad("project_structure.md", """
## Dependencies
- ui depends on core
- core has no external deps
""")

// Coordinator 读取完整内容
const fullReport = await listScratchpad()

优点

  • Worker 不需要把所有信息放在 user 消息中
  • 大文件直接读取,不占用 context window
  • 自然的”工作台”抽象

Design Decision:为什么要等 Research 完全结束才 Synthesis?

如果不等(流式处理):

Worker 1 报告 → Coordinator 开始 synthesis
Worker 2 报告(晚到)→ Coordinator 需要重新 synthesis
Worker 3 报告(更晚)→ 又得重新来一遍

浪费 token 在重复的 synthesis。

如果等待(阶段隔离):

所有 Worker 完成 Research
  ↓ Coordinator 一次性读完所有报告
  ↓ 一次 Synthesis,不需要改

时间线性增长,但 prompt 清晰度和可预测性更高。

深入阅读

相关文档

源代码

  • coordinator/coordinatorMode.ts:Coordinator system prompt 和阶段逻辑(~330 行)

Copyright © 2024 Anthropic. All rights reserved.

This site uses Just the Docs, a documentation theme for Jekyll.