「先运行测试」— Simon Willison 智能体工程模式
原文:First run the tests 作者:Simon Willison | 系列:Agentic Engineering Patterns
核心观点
在 AI 编码智能体时代,自动化测试已从”最佳实践”升级为”必需品”。一条仅四个单词的提示——“First run the tests”——就能显著提升智能体的工作质量。
为什么测试不再是可选项
| 维度 | 说明 |
|---|---|
| 旧借口失效 | 过去”写测试太耗时、维护成本高”的理由已不成立——智能体几分钟就能搞定测试 |
| AI 代码验证 | 未经执行的 AI 生成代码能否正常工作纯粹靠运气,测试是唯一的验证手段 |
| 智能体上手利器 | 智能体分析现有功能时,会主动查找和阅读相关测试代码 |
| 行为强化 | 现有测试套件的存在会推动智能体为自己的改动也编写测试 |
四个单词提示的三重作用
每次启动新会话时,先输入:
First run the tests
这条简短提示同时实现三个目标:
- 建立测试意识 — 告诉智能体测试套件存在,迫使它学会如何运行测试,从而在后续开发中持续验证
- 传递项目信息 — 测试数量间接反映项目规模和复杂度,引导智能体通过测试代码深入了解项目
- 塑造测试思维 — 让智能体进入”测试优先”模式,自然地在后续工作中补充新测试
关键洞察
- “First run the tests” 与 “Use red/green TDD” 同属四词提示策略——用极简指令激活模型中已内化的软件工程纪律
- 智能体天生倾向于写测试,现有测试套件会放大这一倾向
- 测试不仅是质量保障工具,更是智能体理解代码库的入口
实践建议
| 场景 | 推荐提示 |
|---|---|
| 通用项目 | First run the tests |
| Python 项目(配置好 pyproject.toml) | Run "uv run pytest" |
| 开始任何智能体会话 | 以运行测试作为第一步 |