一句话主张
想增加 Agent 做对事情的几率,你应该在写规格来引导它。
简单说:写产品规格描述用户行为,写技术规格描述实现策略。两个都应该写成 MD 文件,和实现 PR 一起 check in,让队友能 review。
用 Skills 把整个流程编码下来。
三 Skill 流程
Warp 把这套流程开源在 github.com/warpdotdev/common-skills。这个流程在 Warp 内外都适用,全部开源供你改造成自家项目的 spec。
1. /write-product-spec — 从产品 spec 起步
Skill 在当前 repo 的 specs/<issue> 目录下创建 PRODUCT.md。
PRODUCT.md 的目标是从用户视角规格化一个特性。它是特性的 "what"。
应当包含:
- 引用 Figma mocks、截图等
- 格式:user stories + 一份极详尽的可被 agent 验证的产品不变式清单(product invariants)
关键:这些不变式必须能被 Agent 在代码里验证,或者用 computer use 验证。不变式是可测试的承诺,不是模糊的形容词。
2. /write-tech-spec — 接着做技术 spec
Skill 在同一 specs 目录下创建 TECH.md。
TECH.md 的目标是规格化特性的实现策略。它是特性的 "how"。
应当包含:
- 总体架构指导
- 具体的代码位置
- Agent 写代码时需要知道的任何东西
3. 让 Agent 实现 specs
这一步应该和任何 agent 一起工作,包括较低 reasoning 等级的。
规格写好之后,模型只要能读懂 MD 就能实现——这就是为什么 PRODUCT.md 里的不变式要写成可被 agent 验证的形式(不是"系统响应快",而是"P95 延迟 < 200ms,可用 bench.sh 跑出结果")。
4. /validate-changes-match-specs — 验证实现匹配规格
光让 Agent 实现 specs 是不够的——你还需要确保它做对了。
在 review 实现 PR 时,Warp 内部用一个 Skill /validate-changes-match-specs,让 Agent 复查自己的工作,把任何不一致回传过来。然后 Agent 带着这些不一致跟人走一遍,由人决定怎么解决。
这一步把"实现-规格"对齐变成可重复的 Agent 流程,不是依赖 reviewer 细心。
5. 用 computer use 验证
Warp 内部还有个 Skill,用 Oz 做 computer use 验证 UX 改动。它为 Agent 创建一个云 sandbox,给它鼠标和键盘访问权限。Warp 的桌面 app 是 Rust 写的——这个 sandbox 是必需的,Agent 才能端到端验证。
安装
npx skills add warpdotdev/common-skills
这套流程在解决什么
把"agent 写出对的东西"从一个模糊期望变成工程问题:
| 没规格的 Agent 时代 | Spec-driven 的 Agent 时代 |
|---|---|
| "做个登录页" | user stories + 10 个可验证的不变式 |
| Agent 自由发挥 | Agent 按 spec 实现,按 spec 验证 |
| 依赖 reviewer 抓 bug | Agent 自我验证 + reviewer 二次复核 |
| "差不多就行" | "跑一下 validate-changes-match-specs" |
翻译
这篇文章单独看是技巧——3 个 Skill 怎么用。放进 4 篇的大框架里看是一个支柱:
| 支柱 | 解决什么 | 出处 |
|---|---|---|
| Context 是稀缺资源 | 怎么把上下文按 L1/L2/L3 分层 | Peter Wang |
| Tool 是 trust boundary | 怎么定义 tool contract 的 8 条问题 | dongxi_nlp |
| Memory 决定准确率 | 怎么用语义记忆避免反复重读 | Sentra / ashwingop |
| Spec 是 Agent 读得懂的契约 | 怎么把"做什么"写成可验证的不变式 | Zach Lloyd |
四篇合起来:强模型时代,Agent 工程的四大支柱是 Context 分层、Tool 契约、Memory 语义、Spec 驱动。每一根支柱都把"模糊的人类期望"翻译成"可被 Agent 读取、验证、复现的工程对象"。
AgentBase 这样的产品级 Agent 引擎要做的事,就是把这四根支柱产品化——L1/L2/L3 的缓存层(参考 Shortcut)、tool lifecycle 的 7 步合约(参考 dongxi)、任务范围内语义记忆(参考 Sentra)、spec 驱动的 5 步开发循环(参考 Warp common-skills)。