主题文章
给 AI 的上下文有哪几件
AGENTS.md 管规矩,Rules 管局部,MCP 接外部能力,Skills 装按需取用的经验。
- 最后审阅
同一个模型,在两个项目里表现可以天差地别。差别往往不在模型,而在它拿到的上下文:它知不知道怎么跑测试、哪些目录不能碰、遇到某类任务该按什么步骤做。
现在主流工具都支持四种给 AI 提供上下文的方式。它们分工不同,不要混用。
四件套
| 机制 | 管什么 | 何时加载 | 放在哪 |
|---|---|---|---|
| AGENTS.md | 整个项目的规矩:命令、约定、边界 | 每次会话开始 | 仓库根目录(子目录可再放) |
| Rules | 只在特定目录或文件类型生效的规则 | 匹配到对应文件时 | 工具专属目录,如 .cursor/rules/ |
| MCP | 外部能力:浏览器、数据库、文档检索 | Agent 需要调用时 | 工具的 MCP 配置文件 |
| Skills | 某类任务的做法:步骤、脚本、模板 | 任务匹配描述时才读全文 | SKILL.md 所在的文件夹 |
怎么分工
- 先写 AGENTS.md。 它几乎被所有工具读取,是投入产出比最高的一个文件。写短、写具体:命令、约定、边界。
- Rules 只放 AGENTS.md 放不下的。 比如“
tests/下的文件用某种写法”,或某个工具独有的行为。不要把 AGENTS.md 复制一份进去。 - MCP 解决“AI 做不到”,不解决“AI 不知道”。 让 Agent 能操作浏览器、查数据库,用 MCP;告诉它项目约定,用 AGENTS.md。
- Skills 解决“这件事有固定做法”。 发布流程、写迁移、生成周报……这些步骤平时不需要占上下文,用到时再加载。
一个常见错误
把所有东西都塞进 AGENTS.md。它每次会话都会完整加载,太长会挤占真正的工作上下文,模型也更容易忽略其中的细节。超过一两屏,就该考虑拆到 Rules 或 Skills 里。