跳转到内容

子代理驱动开发 (subagent-driven-development)

子代理驱动开发(subagent-driven-development)

Section titled “子代理驱动开发(subagent-driven-development)”

subagent-driven-development 是通过调度独立子代理来执行实现计划的 Skill。

核心原则:

每个任务用新鲜子代理 + 两阶段审查(先规范合规,后代码质量)= 高质量、快迭代。

为什么用子代理:

  • 将任务委托给具有隔离上下文的专用代理
  • 通过精确构建它们的指令和上下文,确保它们保持专注并成功完成任务
  • 它们不应继承你的会话上下文或历史 —— 你精确构建它们需要的东西
  • 这也保留了你自己的上下文用于协调工作
特征subagent-driven-developmentexecuting-plans
会话同一会话(无上下文切换)并行会话
审查每个任务后两阶段审查每批任务后审查
迭代更快(任务间无人工介入)较慢
子代理每个任务新鲜子代理不使用子代理
  • 阅读计划文件
  • 提取所有任务的完整文本
  • 记录上下文
  • 创建 TodoWrite
  1. 调度实现子代理(带完整任务文本 + 上下文)
  2. 实现子代理提问?→ 回答问题,继续
  3. 实现子代理实现、测试、提交、自我审查
  4. 调度规范合规审查子代理
  5. 审查通过?→ 继续;否则 → 修复后重新审查
  6. 调度代码质量审查子代理
  7. 审查通过?→ 继续;否则 → 修复后重新审查
  8. 标记任务完成
  • 调度最终代码审查子代理
  • 使用 finishing-a-development-branch

使用能处理每个角色的最弱模型以节省成本和提高速度:

  • 机械实现任务(隔离函数、清晰规范、1-2 个文件):使用快速、便宜的模型。大多数实现任务是机械性的当计划详述良好时。
  • 集成和判断任务(多文件协调、模式匹配、调试):使用标准模型。
  • 架构、设计和审查任务:使用最有能力的模型。

任务复杂信号:

  • 接触 1-2 个文件且有完整规范 → 便宜模型
  • 接触多个文件有集成关注 → 标准模型
  • 需要设计判断或广泛代码库理解 → 最有能力的模型

实现子代理报告四种状态之一。适当处理每个:

DONE: 继续到规范合规审查。

DONE_WITH_CONCERNS: 实现者完成了工作但标记了疑虑。阅读疑虑后再继续。如果疑虑关于正确性或范围,在审查前解决;如果它们是观察(例如”这个文件越来越大了”),记录下来并继续。

NEEDS_CONTEXT: 实现者需要未提供的信息。提供缺失的上下文并重新调度。

BLOCKED: 实现者无法完成任务。评估障碍:

  1. 如果是上下文问题,提供更多上下文并用相同模型重新调度
  2. 如果任务需要更多推理,用更有能力的模型重新调度
  3. 如果任务太大,拆成更小的块
  4. 如果计划本身错了,升级给人类
  • 在 main/master 分支上开始实现(除非明确许可)
  • 跳过审查(规范合规或代码质量)
  • 继续未修复的问题
  • 并行调度多个实现子代理(会冲突)
  • 让子代理读取计划文件(提供完整文本代替)
  • 跳过场景设置上下文(子代理需要理解任务位置)
  • 忽略子代理问题(在让它们继续前回答)
  • 对规范合规接受”差不多”(审查者发现问题 = 没完成)
  • 跳过审查循环(审查者发现问题 = 实现者修复 = 审查再次)
  • 让实现者自我审查取代实际审查(两者都需要)
  • 在规范合规审查通过前开始代码质量审查(错误顺序)
  • 当任一审查有未解决问题时进入下一任务

何时使用

  • 有实现计划时
  • 任务大部分独立
  • 保持在当前会话

关键要点

  • 每任务用新鲜子代理
  • 两阶段审查:先规范合规,后代码质量
  • 审查循环直到通过
  • 用合适复杂度的模型

必须使用的前置 Skill

  • using-git-worktrees(设置隔离工作区)

必须使用

  • writing-plans(创建计划)
  • requesting-code-review(代码审查模板)
  • finishing-a-development-branch(完成开发)
  • 前置using-git-worktreeswriting-plans
  • 后续finishing-a-development-branch
  • 替代executing-plans(用于并行会话)。

查看源文件: GitHub原始文件