title: “Subagent Driven Development — Execute plans via delegate_task subagents (2-stage review)” sidebar_label: “Subagent Driven Development” description: “Execute plans via delegate_task subagents (2-stage review)”
{/* 本页面由 website/scripts/generate-skill-docs.py 根据技能对应的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}
子代理驱动开发
通过 delegate_task 子代理执行计划(两阶段审查机制)。
技能元数据
| 来源 | 可选 — 通过 hermes skills install official/software-development/subagent-driven-development 安装 |
| 路径 | optional-skills/software-development/subagent-driven-development |
| 版本 | 1.1.0 |
| 创建者 | Hermes Agent(基于 obra/superpowers 改编) |
| 许可证 | MIT |
| 支持平台 | linux、macos、windows |
| 标签 | delegation、subagent、implementation、workflow、parallel |
| 相关技能 | plan、requesting-code-review、test-driven-development |
参考:完整 SKILL.md 内容
子代理驱动开发
概述
通过为每个任务分配全新的子代理,并结合系统化的两阶段审查机制来执行实现计划。
核心原则: 每个任务使用独立的子代理 + 两阶段审查(先审查需求规格,再审查代码质量)= 高质量与快速迭代。
适用场景
在以下情况下可使用此技能:
- 已有实现计划(来自
plan技能或用户需求) - 任务之间大多相互独立
- 对代码质量和规范合规性要求较高
- 希望在任务之间实现自动审查
与手动执行的区别:
- 每个任务拥有独立的上下文环境(避免因历史状态积累导致的混乱)
- 自动化审查流程可及早发现问题
- 所有任务都能接受一致的质量检查
- 子代理可在开始工作前提出疑问
工作流程
1. 读取并解析计划
读取计划文件,提前提取所有任务及其完整文本内容和上下文信息,进而生成待办清单:
# Read the plan
read_file("docs/plans/feature-plan.md")
# Create todo list with all tasks
todo([
{"id": "task-1", "content": "Create User model with email field", "status": "pending"},
{"id": "task-2", "content": "Add password hashing utility", "status": "pending"},
{"id": "task-3", "content": "Create login endpoint", "status": "pending"},
])
关键点: 仅需阅读计划内容一次,并提取所有相关信息。切勿让子智能体去读取计划文件——应直接在上下文中提供完整的任务文本。
2. 单项任务处理流程
针对计划中的每一项任务:
第一步:派遣执行子智能体
使用 delegate_task 函数,并传入完整的上下文信息:
delegate_task(
goal="Implement Task 1: Create User model with email and password_hash fields",
context="""
TASK FROM PLAN:
- Create: src/models/user.py
- Add User class with email (str) and password_hash (str) fields
- Use bcrypt for password hashing
- Include __repr__ for debugging
FOLLOW TDD:
1. Write failing test in tests/models/test_user.py
2. Run: pytest tests/models/test_user.py -v (verify FAIL)
3. Write minimal implementation
4. Run: pytest tests/models/test_user.py -v (verify PASS)
5. Run: pytest tests/ -q (verify no regressions)
6. Commit: git add -A && git commit -m "feat: add User model with password hashing"
PROJECT CONTEXT:
- Python 3.11, Flask app in src/app.py
- Existing models in src/models/
- Tests use pytest, run from project root
- bcrypt already in requirements.txt
""",
toolsets=['terminal', 'file']
)
第2步:派遣规范合规性审核员
在实施人员完成相关工作后,需根据原始规范进行核查:
delegate_task(
goal="Review if implementation matches the spec from the plan",
context="""
ORIGINAL TASK SPEC:
- Create src/models/user.py with User class
- Fields: email (str), password_hash (str)
- Use bcrypt for password hashing
- Include __repr__
CHECK:
- [ ] All requirements from spec implemented?
- [ ] File paths match spec?
- [ ] Function signatures match spec?
- [ ] Behavior matches expected?
- [ ] Nothing extra added (no scope creep)?
OUTPUT: PASS or list of specific spec gaps to fix.
""",
toolsets=['file']
)
若发现规范问题: 填补缺失内容,然后重新进行规范审查。只有在符合规范要求后才能继续。
第3步:派发代码质量审查员
在通过规范检查后:
delegate_task(
goal="Review code quality for Task 1 implementation",
context="""
FILES TO REVIEW:
- src/models/user.py
- tests/models/test_user.py
CHECK:
- [ ] Follows project conventions and style?
- [ ] Proper error handling?
- [ ] Clear variable/function names?
- [ ] Adequate test coverage?
- [ ] No obvious bugs or missed edge cases?
- [ ] No security issues?
OUTPUT FORMAT:
- Critical Issues: [must fix before proceeding]
- Important Issues: [should fix]
- Minor Issues: [optional]
- Verdict: APPROVED or REQUEST_CHANGES
""",
toolsets=['file']
)
如发现质量问题: 修复问题后需重新进行审核。只有获得批准后方可继续后续步骤。
第4步:标记为已完成
todo([{"id": "task-1", "content": "Create User model with email field", "status": "completed"}], merge=True)
3. 最终审核
在所有任务均完成之后,需指派一名最终集成审核员进行核查:
delegate_task(
goal="Review the entire implementation for consistency and integration issues",
context="""
All tasks from the plan are complete. Review the full implementation:
- Do all components work together?
- Any inconsistencies between tasks?
- All tests passing?
- Ready for merge?
""",
toolsets=['terminal', 'file']
)
4. 验证并提交
# Run full test suite
pytest tests/ -q
# Review all changes
git diff --stat
# Final commit if needed
git add -A && git commit -m "feat: complete [feature name] implementation"
任务粒度
每个任务 = 2-5分钟的专注工作时间。
任务过大:
- “实现用户认证系统”
理想规模:
- “创建包含邮箱和密码字段的用户模型”
- “添加密码哈希函数”
- “创建登录接口”
- “实现JWT令牌生成功能”
- “创建注册接口”
需避免的误区 —— 绝对不要这样做
- 未制定计划就直接开始开发
- 跳过审查环节(无论是规范合规性还是代码质量检查)
- 在存在未修复的关键/重要问题时继续推进
- 对涉及同一文件的多个任务同时分配多个执行子代理
- 要求子代理阅读计划文件(应在上下文中直接提供完整内容)
- 忽略任务背景说明(子代理需要了解该任务所处的整体情境)
- 对子代理的疑问置之不理(应在其继续工作前予以解答)
- 对规范合规性仅满足“差不多”即可
- 跳过审查循环(审核者发现问题 → 开发者修复 → 再次审核)
- 用开发者自我审查替代正式审查(两者都是必要的)
- 在规范合规性尚未通过时就开始代码质量审查(顺序错误)
- 在任一审查环节仍有未解决问题时便进入下一个任务
问题处理方式
当子代理提出疑问时
- 清晰且完整地予以解答
- 如有需要,提供更多背景信息
- 不要催促其立即开始开发
当审核者发现问题时
- 由开发者子代理(或新的子代理)进行修复
- 审核者再次进行审查
- 重复此过程直至问题得到解决
- 绝对不能跳过重新审查环节
当子代理无法完成任务时
- 派遣新的修复子代理,并明确说明出错原因
- 不要在控制器会话中尝试手动修复(以免造成上下文污染)
效率优化建议
为何每个任务都应使用新的子代理:
- 避免因历史状态积累导致的上下文污染
- 每个子代理都能获得清晰、专注的上下文环境
- 避免受到之前任务代码或思路的干扰
为何采用两阶段审查机制:
- 规范审查能及早发现功能实现不足或过度设计的问题
- 质量审查可确保代码实现质量良好
- 能在问题跨任务扩散之前及时发现
成本与效益的权衡:
- 需要调用更多子代理(每个任务需1名开发者 + 2名审核者)
- 但能及早发现问题(比日后修复复杂问题更为经济)
与其他技能的集成方式
与“计划”技能结合
该技能用于执行由plan技能生成的计划:
- 用户需求 → 计划方案 → 具体实现计划
- 实现计划 → 子代理驱动开发 → 可运行的代码
与测试驱动开发结合
开发者子代理应遵循TDD流程:
- 先编写无法通过的测试用例
- 编写最简化的代码实现
- 验证测试是否通过
- 提交代码
应在每个开发者子代理的上下文中包含TDD相关指导。
与“请求代码审查”技能结合
两阶段审查流程本身即构成代码审查。对于最终集成阶段的审查,可使用“请求代码审查”技能中的审查维度。
与系统化调试技能结合
如果子代理在开发过程中遇到错误:
- 按照系统化调试流程操作
- 在修复之前先找出根本原因
- 编写回归测试用例
- 继续进行开发工作
实际工作流程示例
[Read plan: docs/plans/auth-feature.md]
[Create todo list with 5 tasks]
--- Task 1: Create User model ---
[Dispatch implementer subagent]
Implementer: "Should email be unique?"
You: "Yes, email must be unique"
Implementer: Implemented, 3/3 tests passing, committed.
[Dispatch spec reviewer]
Spec reviewer: ✅ PASS — all requirements met
[Dispatch quality reviewer]
Quality reviewer: ✅ APPROVED — clean code, good tests
[Mark Task 1 complete]
--- Task 2: Password hashing ---
[Dispatch implementer subagent]
Implementer: No questions, implemented, 5/5 tests passing.
[Dispatch spec reviewer]
Spec reviewer: ❌ Missing: password strength validation (spec says "min 8 chars")
[Implementer fixes]
Implementer: Added validation, 7/7 tests passing.
[Dispatch spec reviewer again]
Spec reviewer: ✅ PASS
[Dispatch quality reviewer]
Quality reviewer: Important: Magic number 8, extract to constant
Implementer: Extracted MIN_PASSWORD_LENGTH constant
Quality reviewer: ✅ APPROVED
[Mark Task 2 complete]
... (continue for all tasks)
[After all tasks: dispatch final integration reviewer]
[Run full test suite: all passing]
[Done!]
请记住
Fresh subagent per task
Two-stage review every time
Spec compliance FIRST
Code quality SECOND
Never skip reviews
Catch issues early
卓越的品质并非偶然,而是系统化流程的必然结果。
进一步阅读(相关时加载)
当任务编排涉及大量上下文使用、漫长的审核循环或复杂的验证检查点时,请加载以下针对特定领域的参考资料:
references/context-budget-discipline.md— 四级上下文质量衰退模型(PEAK / GOOD / DEGRADING / POOR)、随上下文窗口大小变化的阅读深度规则,以及上下文质量隐性下降的早期预警信号。当任务明显会消耗大量上下文时(如多阶段计划、多个子智能体、大型输出文件),请加载此文档。references/gates-taxonomy.md— 四种标准关卡类型(预检、修订、升级处理、中止),包括其运作机制、恢复策略及实际案例。在设计或审查包含验证检查点的任何工作流时,请加载此文档——明确使用相关术语,以便为每种关卡设定清晰的触发条件、失败处理方式及恢复规则。
以上两篇参考资料改编自 gsd-build/get-shit-done(MIT © 2025 Lex Christopherson)。