别再堆 AGENTS.md 了:前端团队如何把 AI Coding 做成一套可执行的工程系统

AGENTS.md 不是 Agent 的大脑,更像是它的宪法。真正让 AI Coding 稳定交付的,不是把更多内容塞进一个文件,而是把上下文、动作和质量边界分到正确的位置。

一份什么都写的 AGENTS.md,最后往往什么都没管好

很多团队使用 AI Coding 一段时间后,都会经历同一个阶段:给项目根目录加一份 AGENTS.md,然后不断往里面补规则。

开始时它只有几十行,写着代码风格、测试命令和目录约定。后来又加上接口说明、业务背景、发布流程、历史踩坑、常见任务模板。再后来,文件变成几百行,Agent 看起来知道很多事情,实际执行却仍然会:

  • 漏掉一个必须调用的接口;
  • 把已经失效的约定当成当前规则;
  • 知道"应该先确认",却仍然直接执行写操作;
  • 生成了看起来合理、但没有通过项目质量门禁的代码。

问题通常不在模型又变笨了,而在于我们把不同生命周期、不同可信等级、不同执行方式的信息,混进了同一个上下文容器。

本文只讨论一个问题:一个前端团队应该如何为 Coding Agent 分层组织上下文,让它既能理解任务,又不会被无关信息淹没。

先把职责拆开

一份臃肿的 AGENTS.md,通常同时承担以下职责:

原本都塞进 AGENTS.md 的内容 它真正要解决的问题 更合适的归属
Agent 的角色、边界、不可违反的规则 你是谁,什么不能做 AGENTS.md / CLAUDE.md
当前需求、范围和验收标准 这次任务要完成什么、怎样算完成 Spec
项目架构、接口、术语和目录知识 这个项目是什么 Wiki / Reference
重复执行的步骤,以及查询、修改、发布等平台操作 这类任务具体怎么做、如何安全地碰外部系统 Skill + CLI / MCP
测试、Review、审计和人工确认 如何证明做对了 CI / Review 门禁

这张表里最容易被忽略的是生命周期

项目规则可能几个月才变一次,当前任务的 Spec 可能几天后就失效,某次任务产生的临时上下文在任务结束后应该直接丢弃。它们如果共用一份常驻文件,模型不仅要花注意力区分信息,还要自行判断哪些内容已经过期。

Anthropic 在 Effective context engineering for AI agents 中把这类问题称为 context rot:上下文不断变长,并不意味着有效信息不断增加。相反,无关内容和过时内容会稀释真正重要的信号。

上下文分层:每一层只回答一个问题

我更愿意把一个 Coding Agent 的工作环境看成下面这套分层系统,而不是一份越来越长的 Prompt:

AGENTS.md:宪法,不是百科全书

它适合放三类东西:

  1. Agent 在这个仓库里的角色;
  2. 必须遵守的安全和协作边界;
  3. 入口级的工作约定,例如"修改后必须运行哪些检查"。

它不适合承载整个项目的业务知识,也不适合记录每一次任务的具体步骤。

一个好的判断标准是:如果这条内容只对某一次任务有效,就不应该写进常驻的 AGENTS.md

Spec:当前任务的合同

Spec 负责把"帮我做一下"变成可执行的任务边界:

  • 背景和目标是什么;
  • 哪些范围内的文件可以修改;
  • 什么情况算完成;
  • 哪些行为必须先得到确认;
  • 需要留下哪些验证证据。

Spec 不是需求文档的另一种格式,而是 Agent 和人共同使用的当前任务合同。任务结束后,它可以归档、提炼,或者直接丢弃。

Wiki:长期知识,但不直接充当指令

架构说明、接口语义、术语定义、历史决策和经过验证的踩坑经验,都应该进入可检索的知识库。

这里有一个边界:知识库回答"项目是什么、为什么这样设计",Skill 才回答"这类任务具体怎么做"。把两者混在一起,知识会越来越像一份没人敢改的操作手册。

Skill:把重复动作变成流程

Skill 适合承载有明确输入、步骤和输出的任务,例如:

  • 检查一个页面是否符合项目的路由约定;
  • 按固定格式生成接口联调清单;
  • 对一个变更执行测试、Review 和风险检查;
  • 先 dry-run,再生成待确认的变更计划。

Skill 的价值不在于"写得很长",而在于它能把稳定的动作顺序固定下来,同时把需要临时检索的知识留在外部。

CLI / MCP:让操作能力有边界

Agent 可以理解"请把配置改成 X",不代表它应该拥有一把可以直接写入生产系统的钥匙。

查询、修改、发布等动作应该经过有明确契约的 CLI 或 MCP 工具,并且提供:

  • 参数校验;
  • --dry-run 或等价的预览能力;
  • 明确的确认步骤;
  • 最小权限;
  • 可追溯的执行记录。

Building effective agents 提醒我们,复杂 Agent 系统应该从简单、可验证的组合开始。工具面越大,越需要先把每一个工具的边界定义清楚。

一个任务到底应该怎么跑

下面是一条脱敏后的典型链路。它不依赖某个具体平台,任何需要 Agent 查询和修改外部系统的团队都可以套用。

没有分层时

Agent 读到一份包含所有业务背景和历史规则的长文档后,可能会直接从"理解需求"跳到"调用工具"。这中间少了三个关键问题:

  • 当前任务的范围到底是什么?
  • 这次操作是查询、预览,还是实际写入?
  • 执行结果需要由谁、通过什么方式验证?

于是问题常常不是代码写错,而是动作顺序错了。

分层之后

Spec 把范围钉住,Skill 固定动作顺序,CLI 把预览和执行分开,Review/CI 负责最后的质量判断。Agent 仍然可以自由推理,但它不能跳过系统边界。

在一次实际的上下文优化实践中,一个配置查询接口曾经一次返回 2 万 token 级别 的全量数据。把返回方式拆成 fullsummaryselectout 等渐进式层级后,调用者可以先拿摘要,再按需展开字段;内部 benchmark 的最大裁剪比例约为 96% 。这里真正起作用的不是某一句 Prompt,而是"信息按需展开"的接口设计。

这也是上下文工程经常被误解的地方:减少上下文,不等于减少能力;是把不该在当前时刻出现的信息延后。

可以直接复制的目录结构

下面是一种足够小、但能开始工作的目录组织方式:

bash 复制代码
project/
├── AGENTS.md                    # 身份、硬规则、入口级约定
├── docs/
│   ├── specs/                   # 当前任务合同与验收标准
│   ├── architecture/            # 架构、接口、术语与长期知识
│   └── memories/                # 已验证的踩坑与经验
├── skills/
│   ├── feature-check/           # 功能变更检查
│   ├── api-change/              # 接口变更流程
│   └── release-check/           # 发布前检查
├── cli/
│   └── platform-cli/            # 查询、dry-run、confirm、审计
└── .github/
    └── workflows/
        └── agent-quality.yml    # 自动化质量门禁

不需要一开始就把所有目录都建齐。可以从三个文件开始:

  1. 一份只写边界、不写百科的 AGENTS.md
  2. 一份当前任务 Spec;
  3. 一份能被验证的 Skill。

等某类经验被重复验证,再把它升级为长期知识或团队规则,而不是把每次对话都复制进去。

我更在意的三个判断

第一,Agent 的竞争力不是 Prompt 长度

长 Prompt 会让系统看起来"知识丰富",但它很难同时保证新鲜度、相关性和可执行性。真正值得优化的是上下文的命中率:当前任务需要什么,就只加载什么。

第二,工具边界比措辞更可靠

"请不要直接改生产环境"是一句提醒;预览接口、最小权限和强制确认才是约束。能写进工具契约的规则,就不要只写在 Prompt 里。

Pi 的设计也体现了类似的取舍:把约束尽可能放进工具和运行时,而不是继续堆叠系统提示词。可以参考作者对 Pi coding agent 的设计说明。

第三,知识沉淀必须有升级条件

不是每次 Agent 犯错都值得新增一条规则。更稳妥的流程是:

复制代码
一次问题
→ 记录现象
→ 判断是否可复现
→ 验证解决方式
→ 决定进入 Wiki、Skill 还是硬规则

否则团队会得到一套越来越长、越来越互相矛盾的"经验集合"。

这套方法什么时候不值得用

上下文分层不是所有项目的必选项。

  • 个人一次性脚本,通常不需要完整的 Skill 和质量门禁;
  • 项目规模很小、任务边界很清楚时,一份短小的 AGENTS.md 就够了;
  • 工具不会触碰外部系统,也没有明显的安全边界时,不必为了"企业级"而增加确认流程;
  • 团队还没有稳定的重复任务时,先积累真实案例,再抽象目录和规范。

复杂度应该跟着风险和重复度增长,而不是跟着概念数量增长。

写在最后

AI Coding 的工程化,不是把更多规则塞进 Agent 的脑子,而是给它一套能够被检索、执行、验证和回收的工作环境。

AGENTS.md 管身份和边界,Spec 管当前任务,Wiki 管长期知识,Skill 管动作,CLI/MCP 管系统交互,Review 和 CI 管质量。每一层都不完美,但每一层都知道自己不该负责什么。

AGENTS.md 是宪法,不是大脑。让 Agent 记得更少,但在需要的时候拿到更准确的信息。

参考资料

相关推荐
巴勒个啦1 小时前
2026 年 CSS 选型真相:我用 Tailwind v4 + 原生新特性重构了一个组件库
前端·angular.js
geovindu1 小时前
python: Face Recognition
开发语言·后端·python·人脸识别
三十而立洋1 小时前
JavaScript 原型链:一张图讲透「对象继承」的底层真相
前端·javascript
工具派1 小时前
markdown在线编辑器怎么选?渲染管线的3个坑和md转PDF跑版记录
前端·后端
平头哥技术团队1 小时前
Day 13 | 调 line-height 和 margin:三处间距让名片页脱离模板感
开发语言·前端·javascript·学习·html5
一位正在转型AI全栈的前端工程师1 小时前
AI 全栈学习之旅 -Week 9:什么是AI Agent?从Function Calling到LangGraph
前端·python
计算机魔术师1 小时前
Claude Opus 5 干不过人类客服?23.9% 的通过率撕开 Agent 真相
前端
黑马程序员毕设1 小时前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
长大19881 小时前
执行计划看不懂?一文理清 Oracle CBO 优化器工作原理
后端