操盘手年鉴The Operators’ Almanac
AI · PB · 330

Agent红绿测试驱动

Red Green Tdd For Agents · red-green-tdd-for-agents--simon-willison
AI 与新工作方式 操作手册 AI 时代 2026-04 Simon Willison ✓ 已核验出处

解决什么问题

如何让 coding agent 产出可信、可持续演进的代码,而不是积累技术债的 slop;以及用一句最短的 prompt 触发整套测试纪律。

核心内容

第一性原理:coding agent 的全部意义在于它会运行代码。agent 没跑过代码,你就退回到"从 ChatGPT 复制粘贴然后祈祷"的时代。让 agent 稳定跑代码的最佳载体就是自动化测试。

操作:在 prompt 里写 "Red/Green TDD" 五个词即可。agent 认识这个行话,会展开为完整流程:

  1. 先写测试(此时实现不存在);
  2. 跑测试,看着它失败(红)——若此时就通过说明测试本身有问题;
  3. 写实现;
  4. 再跑测试,看着它通过(绿)。

测试先行的收益:agent 更不容易漏测、更不容易写出不必要的代码。这个例子同时说明一个通用技巧:存在一些 5 秒钟就能打完、却对 agent 行为有实质影响的行话短语,值得收集。

复利机制:测试进入仓库后随时间累积——测试覆盖越全,让 agent 改新功能时越不怕破坏旧功能(至少测试覆盖到的不会破)。这和人类团队的逻辑相同,但对"不逐行读代码"的工作流是生死攸关的底座。

观念更新——过度测试的旧标准作废:以前上千行琐碎测试是坏味道(改一处代码要维护一千行测试),现在维护测试是 agent 的活,小型库带 100+ 测试也没问题。前提是测试本身是好测试,且必要时可以让 agent 整批扔掉重写——代码便宜了。

把人类不愿执行的最佳实践外包给 agent:Simon 自己讨厌先写测试(试过两年,觉得拖慢、无趣),但 agent 不会无聊——它对 TDD 没有意见。

反面教训:有团队说"AI 写得太快,我们干脆不写测试了"——这是错的。测试的存在让你更快(不用手工回归每个旧功能),不是更慢。

适用边界

  • 适用于所有 coding agent 工作流,与具体工具(Claude Code / Codex 等)无关。
  • 收益依赖测试质量:"as long as the tests are good tests"。
  • 另一个配套模式:新项目用带一个 1+1=2 测试的骨架模板起步,agent 会自动沿袭写测试的习惯(详见 context-hoarding 卡)。

关键引述 · 原话

"This is the most important thing when you're working with coding agents: they have to test the code." — Simon Willison

"Very quickly when you're working with tests, you find your development speed goes up." — Simon Willison

关联卡片

- `context-hoarding-and-skeleton-templates--simon-willison`:骨架模板给 agent 种下测试习惯。 - `dark-factory-software-pattern--simon-willison`:不读代码工作流的质量底座。

被这些卡引用

出处Simon Willison (Django 联合创作者, 独立 AI 研究者) · 03-podcasts/simon-willison.md
提炼自 Lenny Rachitsky 的 Lenny’s Newsletter & Podcast(2019–2026)。本站为个人学习用途的二次创作,与 Lenny’s Newsletter 无官方关联。
provenance · 已核验 · glm-5.2