规格驱动开发:让 agent 不再瞎猜
你已经把该调的都调好了:权限模式选对了,CLAUDE.md 写了,上下文也懂得及时清理。然后你敲下一句「给设置页加一个导出功能」,十分钟后 agent 交回三百行代码、两个新文件、一条绿色的测试通过提示。
你打开一看:功能是有了,但导出的是 JSON,你要的是 OPML;文件写在了项目根目录,你以为它会走系统的保存对话框;顺手还改了三个和这件事无关的组件。
这时候最容易得出的结论是「模型不行」。但把同一句话交给一位没见过这个项目的人类工程师,结果大概率一样。问题不在执行者,在于那句话里,你脑子里的一半信息从来没被写下来——文件格式、落盘位置、允许改动的范围、什么算做完。agent 没有瞎猜的余地时才不会瞎猜;你没写,它就必须猜。
规格驱动开发(Spec-Driven Development,下文简称 SDD) 就是把这一半信息挪出脑子、写成可以评审、可以验收、可以随需求一起演进的东西,再让 agent 照着它干活。
这篇教程会带你完成一条完整链路:
- 先看清 agent 到底在什么地方开始猜(第1章)。
- 写出第一份能用的规格,而不是一份漂亮的文档(第2、3章)。
- 把规格拆成计划和任务,让每一步都能单独验收(第4章)。
- 用采访的方式把规格从你脑子里问出来,而不是自己憋(第5章)。
- 给 agent 一个它自己能跑的检查,让循环自己收敛(第6章)。
- 处理规格失效、工具选型,以及最重要的一件事——判断这次到底该不该写规格(第7、8、9章)。
- 用一个真实小需求把整条链路跑一遍(第10章)。
读之前的两个说明
这不是瀑布模型的复辟。 瀑布的问题是「一次把所有东西定死,然后不许改」。SDD 的规格是小的、按需求切片的、可以在实现过程中被推翻重写的。第7章专门讲规格被现实推翻时该怎么办——那是常态,不是意外。
这篇和《上下文工程》是一对。 上下文工程管的是「agent 的注意力预算」:它能看见什么、看见多少、什么时候该清理。规格驱动开发管的是另一半:它到底该做什么、做到什么程度算完。两件事互不替代——上下文再干净,意图模糊照样跑偏;规格再精确,上下文塞爆了照样执行不下去。
全篇会用同一个例子:给一个 RSS 阅读器加一个功能——把用户的订阅列表导出成 OPML 文件。它足够小,能在一章之内讲完;又足够真实,有格式、有边界、有异常分支。
读完之后你应该能够
- 指出一句失败的指令在哪几处留下了猜测空间
- 为一个真实需求写出五层结构、可评审也可验收的规格
- 把「处理好异常」这类话改写成能变成测试的验收标准
- 把规格拆成计划与任务,让每一步都能单独验收
- 给 agent 一个它自己能跑的检查,让验证循环不再依赖你盯着
- 判断这次需求该写多严格的规格,或者干脆不写
章节目录
10 章 · 约 58 分钟- 01 为什么 agent 会瞎猜 它不是在瞎猜,是在填你留下的空白:认出一句指令里的意图缺口,以及规模为什么是分水岭。 5 min
- 02 一份能用的规格长什么样 目标、范围与非目标、接口与约束、验收标准、验证方式——五层各消灭一类猜测,附可直接抄的模板。 6 min
- 03 把模糊写成可验证:EARS 六种句式 「处理好异常情况」为什么无法验收:用 EARS 六个句式,把模糊需求改写成能变成测试的句子。 5 min
- 04 spec、plan、tasks 各管什么 做什么、怎么做、分几步做拆成三份产物,让方案分歧发生在改几行字的地方,而不是重写一个 PR。 6 min
- 05 让 agent 先采访你 你写不出规格是因为在自己憋:一份采访提示词,加上计划模式与换新会话执行的完整做法。 6 min
- 06 验收标准就是收敛条件 没有能跑的检查,agent 只会停在「看起来做完了」:四种检查的成本对照与对抗式审查的用法。 6 min
- 07 规格漂移:实现推翻规格时怎么办 规格被实现推翻是常态:分清该改计划还是改规格,用变更提案把修改本身变成可评审的对象。 6 min
- 08 工具横向对照 Spec Kit、OpenSpec、Kiro 与纯 Markdown 放在流程重量与追溯强度两条轴上,给一张选型表。 4 min
- 09 什么时候不该写规格 计划税、评审疲劳与过度规格:用不可逆性和不确定性两个维度,判断这次该写多严格。 5 min
- 10 完整实战:一条链路跑到底 一个真实小需求从判断严格度跑到独立审查,附四道练习和一张 14 条的交付自检量表。 9 min
常见问题
这是不是瀑布模型换个说法?
不是。瀑布的问题是一次定死全部、之后不许改;这里的规格按需求切片,小、可评审,并且默认会被实现推翻重写。第 7 章整章在讲规格失效时怎么处理,那是常态而不是意外。
需要先装 Spec Kit 或 Kiro 吗?
不需要。全篇用一份 SPEC.md 加一份任务清单就能跑通,配合你现有 agent 的计划模式即可。第 8 章才做工具横向对照,建议先跑通纯 Markdown 版本再决定要不要上工具。
和《上下文工程》是什么关系?
两篇是一对。上下文工程管注意力预算——agent 能看见什么;这篇管意图精度——它到底该做什么、做到什么程度算完。两件事互不替代,上下文再干净,意图模糊照样跑偏。
每个需求都要写规格吗?
不。第 9 章给了一张四象限决策表:低风险低不确定的任务永远不写,探索阶段先跑原型。健康的比例是一周里真正需要完整规格的只有一两件事。
教程里的命令会过时吗?
会。工具的命令名、快捷键和版本都在演进,正文里的星标数与版本号是 2026 年 9 月初的快照,动手前请以当前官方文档为准。方法本身——五层结构、EARS、验证闭环——不依赖具体工具。