正在刊行长文 · Essay
2026-06-02所有内容
随机比特 · Random Bits

告别 README:为什么你的代码库必须立刻增加一个 AGENTS.md?

2026-06-02AI Engineering / Systemsrbits.uk

在软件工程的历史上,总有一些看似微小却具有里程碑意义的改动。 就在上周,顶级开源项目、全球部署量最大的数据库 SQLite 的官方仓库里,悄悄合并了一个看似非常奇怪的提交。他们没有修改核心的 C 语言逻辑,也没有添加新功能,而是在仓库根目录下新增了一个名为 AGENTS.md 的文件。 这个文件的开宗明义第一句话就是:…

告别 README:为什么你的代码库必须立刻增加一个 AGENTS.md

在软件工程的历史上,总有一些看似微小却具有里程碑意义的改动。

就在上周,顶级开源项目、全球部署量最大的数据库 SQLite 的官方仓库里,悄悄合并了一个看似非常奇怪的提交。他们没有修改核心的 C 语言逻辑,也没有添加新功能,而是在仓库根目录下新增了一个名为 AGENTS.md 的文件。

这个文件的开宗明义第一句话就是:“本文件不是给人类开发者看的。”

它是专门写给指向该代码库的 AI Agent(例如 Claude Code、Cursor、Cline 等工具)阅读的。SQLite 官方甚至立下了规矩:“我们不接受 AI 生成的代码,但我们欢迎且只接受符合本规范的 AI 生成 Bug 报告。”

这绝不是一个随意的猎奇行为。

从写 README.md 给人看,到写 OpenAPI/Swagger 契约给微服务看,再到今天写 AGENTS.md 给大模型看——这是一个标志性的工程范式转移。


一、为什么 Agent 在你的代码里总是“胡作非为”?

在过去的几个月里,我们一直在探讨“AI 编程的幻觉”与“技术债蔓延”的问题。

你一定经历过这样的崩溃瞬间:你只是让本地的 Cursor 或 Claude Code 修复一个路由跳转的 Bug。五分钟后,你发现它“顺手”把你写了一半的鉴权中间件重构了,甚至在 package.json 里擅自引入了三个你根本不需要的 npm 库。

导致这种“越界行为”的根本原因,并不是大模型不够聪明(事实上,Opus 4.8 的智商已经碾压了大多数初级程序员)。其核心病灶在于上下文错位(Context Misalignment)

人类程序员在阅读 README.md 和审视代码树时,会自动结合工程师常识:

但 AI 没有这些暗默知识。当缺乏显式的“护栏(Guardrails)”和系统提示时,Agent 只会基于纯粹的逻辑,去全网寻找它认为的“局部最优解”。这也是为什么它会无所顾忌地进行我们在前两篇文章中提到的“顺向污染”。


二、硬核解构:一份合格的 AGENTS.md 应该写什么?

为了阻止 AI 破坏你的心血,你不能靠祈祷,你必须通过协议级别的契约来约束它。

<figure><img src=“images/01-agents-md-structure.png” alt=“AGENTS.md 面向机器的工程边界契约” /></figure>

一份能真正发挥作用的 AGENTS.md(或 Cursor Rules),通常需要包含以下四个立等可用的核心板块:

1. 代码拓扑声明 (Repository Topology)

不要让 AI 像没头苍蝇一样遍历你所有的文件夹。直接告诉它你的架构地图:

2. 硬性不可侵犯边界 (Hard Boundaries)

明确画出红线,这是约束 Agent “多动症”的关键:

3. 验证与测试契约 (Verification Protocol)

这是防止 AI 留下烂摊子就跑的最有效手段,强制约定 Agent 的工作闭环:

4. 业务暗知识注入 (Context Injection)

把你平时会在 Code Review 中骂新人的话,提前写给 AI 听:


三、从纯文本走向真正的“智能体接口”

SQLite 的 AGENTS.md 只是打响了第一枪。

未来,这种面向机器的契约绝不会仅仅停留在 Markdown 纯文本阶段。

随着工具链的演进,我们可以预见,AGENTS.md 很快就会变成一个具有极强约束力的 JSON Schema 或 YAML 文件。它甚至可以通过 CI/CD 流水线,通过静态分析(AST 解析)和代码覆盖率报告,每次提交后自动动态生成

当下一个子 Agent 被唤醒并接入这个仓库时,它将在握手的最初几毫秒内,读取这份协议,瞬间获得一份精确的、带有隔离墙和警示牌的“3D 架构地图”。

我们相信,在接下来的几个月内,GitHub、GitLab 等平台将会在基础设施层面原生支持解析仓库根目录的 AGENTS.md,并在每次你唤起 Copilot 或第三方 Agent 时,自动作为顶级 Context 注入。


结语:新时代的开发者素养

当写代码这件事情本身被大模型接管后,人类开发者的核心工作,其实已经变成了**“系统定义与边界控制”**。

在过去,我们说“一段好的代码,是写给未来的同事看的”。 但在零边际代码成本的今天,“一段好的代码,必须配套清晰的界碑,是写给下一秒即将涌入你的仓库里的数百个并发子 Agent 看的。”

不要再抱怨 AI 总是弄乱你的项目了。

今天,就在你的仓库根目录下,新建一个 AGENTS.md 吧。给那匹狂奔的野马,套上缰绳。


随机比特公众号二维码
公众号 · 随机比特
从 AI 工具热闹里拆工程真相

写边界、控制面、上下文、成本与安全。