跳转至

Agent 三层分工模型:协调者 / 执行者 / Coding Agent

概述

在多 Agent 协作的工作流中,我们采用三层分工模型来最大化效率、最小化心智负担。每一层有明确的职责边界,互不越界。

主人(决策者)
  ↕ 实时沟通
协调者(小墨)
  ↓ 派发任务
执行者(Subagent)
  ↓ 调度工具
Coding Agent(Cursor / Codex / Claude Code)
  ↓ 写代码
代码仓库

三层角色

🎯 协调者(Coordinator)

代表: 小墨(主 Agent)

职责: - 和主人实时沟通,理解需求 - 把控方向,做架构决策 - 拆分任务,派发给执行者 - 验证结果,汇报进展 - 管理上下文空间,不被细节消耗

不做: - ❌ 写代码、改文件 - ❌ Debug 具体问题 - ❌ 直接操作 Coding Agent

核心原则: 协调者的上下文空间是最宝贵的资源。一旦开始写代码,上下文就会被实现细节淹没,无法继续做沟通和决策。

⚙️ 执行者(Executor)

代表: Subagent

职责: - 理解协调者派发的任务 - 拆分为具体的 Coding Agent 调用 - 调度 Coding Agent 执行代码修改 - 验证修改结果(跑测试、grep 检查) - 如果出错,把报错扔给 Coding Agent 修复 - 向协调者汇报结果

不做: - ❌ 和主人直接沟通 - ❌ 做架构决策 - ❌ 自己手写代码

工作流:

理解任务 → 拆分步骤 → 写 Cursor prompt → 执行 → 验证
                                                ↓ 失败
                                          把报错扔给 Cursor → 再验证

🔨 Coding Agent

代表: Cursor Agent CLI / Codex / Claude Code

职责: - 接收自然语言 prompt - 在代码仓库中执行修改 - 读文件、写文件、运行命令

特点: - 有完整的代码上下文(整个仓库) - 擅长大范围重构和模式匹配 - 但不理解业务方向,需要精确的 prompt

为什么要三层?

上下文隔离

层级 上下文内容 大小
协调者 用户意图、架构方向、进展状态 小(保持精简)
执行者 具体任务、文件结构、错误信息 中(任务级别)
Coding Agent 完整代码库、AST、类型系统 大(仓库级别)

如果协调者直接写代码,它的上下文会被代码细节占满,就无法再和主人有效沟通。

错误恢复

  • Coding Agent 出错 → 执行者把报错扔回去,让它修
  • 执行者方向偏了 → 协调者 steer 或 kill,重新派发
  • 协调者理解错了 → 主人纠正,协调者调整方向

每一层只处理自己能处理的错误,不越级。

实践配置

Cursor Agent CLI 调用模板

export CURSOR_API_KEY=$(grep CURSOR_API_KEY ~/.bashrc | cut -d= -f2)
cd <repo>
agent -p --trust --force --output-format text "<prompt>"

参数说明: - -p (print mode):非交互,适合脚本调用 - --trust:信任工作目录 - --force:允许修改文件(不加则只建议不执行) - --output-format text:纯文本输出

Subagent 派发模板

协调者派发任务时,prompt 应包含:

  1. 角色声明:你是 XX 的执行者,不自己写代码,通过 Cursor 执行
  2. 环境信息:仓库路径、Cursor 命令格式、超时设置
  3. 任务描述:要做什么、为什么、约束条件
  4. 验证标准:怎样算完成(测试通过、无悬空引用等)
  5. Git 操作:commit message 格式

TDD 验收模式

用 TDD 方式验证实现是否正确:

  1. 让 Cursor 写验收测试(覆盖所有设计点)
  2. 运行测试
  3. 全绿 = 实现正确
  4. 红色 = 让 Cursor 修复实现 → 再跑

这种方式特别适合 AI 编码——强制每一步都有验证,防止"写了一堆代码但没验证"的问题。

反模式

反模式 为什么不好 正确做法
协调者自己写代码 上下文被细节淹没 派 subagent
执行者手写代码不用 Cursor 质量不稳定,浪费 token 让 Cursor 做
一个 subagent 任务太大 超时风险,错误难定位 拆分成多个小任务
协调者轮询 subagent 状态 浪费 token 和时间 用 sessions_yield 等完成通知
Coding Agent 做架构决策 它不理解业务上下文 协调者做决策,Cursor 只执行

总结

主人说"做什么" → 协调者决定"怎么做" → 执行者安排"谁来做" → Coding Agent 做

保持每一层的纯粹性,是高效协作的关键。