jixiaxue 知识库
blog / simon-willison-blog / first-run-the-tests

「先运行测试」— Simon Willison 智能体工程模式

2026-02-25

「先运行测试」— Simon Willison 智能体工程模式

原文:First run the tests 作者:Simon Willison | 系列:Agentic Engineering Patterns


核心观点

在 AI 编码智能体时代,自动化测试已从”最佳实践”升级为”必需品”。一条仅四个单词的提示——“First run the tests”——就能显著提升智能体的工作质量。


为什么测试不再是可选项

维度说明
旧借口失效过去”写测试太耗时、维护成本高”的理由已不成立——智能体几分钟就能搞定测试
AI 代码验证未经执行的 AI 生成代码能否正常工作纯粹靠运气,测试是唯一的验证手段
智能体上手利器智能体分析现有功能时,会主动查找和阅读相关测试代码
行为强化现有测试套件的存在会推动智能体为自己的改动也编写测试

四个单词提示的三重作用

每次启动新会话时,先输入:

First run the tests

这条简短提示同时实现三个目标:

  1. 建立测试意识 — 告诉智能体测试套件存在,迫使它学会如何运行测试,从而在后续开发中持续验证
  2. 传递项目信息 — 测试数量间接反映项目规模和复杂度,引导智能体通过测试代码深入了解项目
  3. 塑造测试思维 — 让智能体进入”测试优先”模式,自然地在后续工作中补充新测试

关键洞察


实践建议

场景推荐提示
通用项目First run the tests
Python 项目(配置好 pyproject.toml)Run "uv run pytest"
开始任何智能体会话以运行测试作为第一步
展开正文

先运行测试

原文:First run the tests 作者:Simon Willison 系列:Agentic Engineering Patterns(智能体工程模式)


在使用编码智能体(coding agents)进行开发时,自动化测试已经不再是可选项。

过去不写测试的那些老借口——测试耗时、在代码库快速迭代时维护成本高昂——在智能体可以用短短几分钟就把测试搞定的今天,已经站不住脚了。

测试对于确保 AI 生成的代码真的能做到它声称的事情也至关重要。如果代码从未被执行过,那它部署到生产环境后能正常工作纯粹靠运气。

测试同样是帮助智能体快速了解现有代码库的绝佳工具。观察一下当你让 Claude Code 或类似工具分析某个现有功能时会发生什么——它们很大概率会找到并阅读相关的测试代码。

智能体本身已经倾向于写测试,但现有测试套件的存在几乎肯定会进一步推动智能体为自己所做的改动编写测试。

每次我在一个已有项目上启动新的智能体会话时,我都会先输入这样一个提示:

First run the tests

对于我的 Python 项目,我已经配置好了 pyproject.toml,所以可以直接用这个提示:

Run "uv run pytest"

这些四个单词的提示有多重作用:

  1. 它告诉智能体存在测试套件,并迫使它搞清楚如何运行测试。 这使得智能体几乎一定会在之后运行测试来确保自己没有破坏任何东西。

  2. 大多数测试框架会让智能体大致了解有多少测试用例。 这可以作为项目规模和复杂度的一个间接指标,同时也暗示智能体如果想了解更多,可以去搜索和阅读测试代码本身。

  3. 它让智能体进入一种”测试优先”的思维模式。 在运行过测试之后,智能体自然会在后续开发中补充自己的测试。

与 “使用红/绿 TDD” 类似,“先运行测试”也是一个四个单词的提示,它浓缩了大量的软件工程纪律——而这些纪律已经内化在模型之中。