Agent 工程纪律
通过强制执行工程工作流来约束 coding agent 行为的方法论,核心是让 Agent 少猜、少自信胡写、少写完再补测试。
#concept
#evergreen
#ai
[!info] related notes
- 所属 MOC: Coding Agent MOC
- 前置概念: Autonomous Coding Agent
- 并列概念: Skills 是什么,为什么重要
- 关系笔记: Superpowers 工作流与核心技能, AI 编码时代的 TDD
- 相关资源: Superpowers
Agent 工程纪律
一句话定义
Agent 工程纪律是通过强制执行系统化的开发工作流来约束 coding agent 行为的方法论,目标是把 Agent 从”会写代码的聊天机器人”变成”按工程流程工作的开发协作者”。
为什么需要
当 coding agent 缺少适当的需求、变更和验证约束时,可能出现以下失败模式:
| 失败模式 | 典型表现 | 后果 |
|---|---|---|
| 没问清楚就写 | 需求有歧义直接假设 | 做出来不是用户要的 |
| 计划太粗 | ”加个功能”一步到位 | 多文件改动出错难定位 |
| 变更边界不清 | 覆盖未提交工作或多个 writer 并发修改 | 难以归属和回滚变更 |
| 测试只迎合实现 | 不从需求确定预期结果 | 测试可能复制实现中的错误 |
| 猜 bug 原因 | ”可能是 X,改改看” | 引入新问题 |
| 决策记录丢失 | 长任务缺少可靠检查点 | 早期约束被遗漏 |
| 缺少独立验收依据 | 只按实现反推预期 | 需求偏差难以发现 |
| 声称完成但没验证 | ”做完了”但没跑测试 | 实际没完成 |
纪律机制
约束应与任务风险和仓库工作流相匹配:
| 问题 | 可执行约束 |
|---|---|
| 需求有歧义 | 先查仓库和上下文,只有影响正确性的关键缺口才询问 |
| 变更过大 | 按可验证结果拆批,记录必要计划 |
| 工作区冲突 | 核对 dirty state、writer 和分支策略,保留已有工作 |
| 验收依据不足 | 行为变更可用 TDD 定义预期;文档等低影响修改按内容验证 |
| 猜测 bug | 先收集复现与证据,再验证假设 |
| 决策丢失 | 维护简短检查点,保留约束、证据和未决事项 |
| 自证完成 | 按需求审阅 diff,运行相称检查并记录真实结果 |
隔离分支、worktree、独立审查和子 Agent 是可选的协作方式,需符合任务授权与 single-writer 等约束。分支只隔离 Git 历史,不是文件、进程或运行权限的沙箱;小批提交同样可以提供审阅与回滚边界。
为什么在 AI 时代更重要
AI 很会写”像对的代码”,但不一定真的对。这让工程纪律从” nice to have”升级成必要约束:
- TDD 变成可执行规格和自动验收器
- 设计文档变成防止需求偏离的锚点
- 代码审查补充自动检查,发现需求偏差和未覆盖的风险
- 清晰的工作区与提交边界减少并发覆盖,方便审阅和回滚
与传统工程实践的关系
Agent 工程纪律不是发明新方法,而是把已有的工程实践(TDD、code review、设计文档、分支管理)强制化、自动化。
在 Agent 场景下,可把关键约束编码为指令、工具权限、检查脚本或 CI 门禁。仅在文档中写“必须”并不保证执行;是否遵守仍要看可观察行为和验证证据。
最小记忆方式
Agent 工程纪律 = 把优秀工程师的自觉行为固化成 Agent 的强制流程。