type
status
date
slug
summary
tags
category
icon
password

为什么我们需要AGENTS.md

首先,我们要明确一个内容,那就是:LLM(大模型)是无状态的。当他被训练出来以后,他的知识库就被封锁了,不会随着时间学习。除非他们发了新模型。
 
所以这件事情就导致了:
  1. 模型对你的项目是一无所知的,他知道的所有东西,都是需要你传给他(初始化token)
  1. 每次启动新会话的时候,你都必须要告诉他关于你代码库里面的重要信息
 
所以,我们需要CLAUDE.mdAGENTS.md来给LLM提供一个显性管理的记忆文档。所以你会发现,你在与AGENT聊天的过程中,总是会默认带上这(两)个文档
💡
目前大家都开始支持AGENTS.md了,但是claude一直还在坚持自己的CLADUE.md,后续可能也会统一成AGENTS.md,毕竟那个是大多数
 

那AGENTS.md可以做什么呢

 
因为每次进入开启新会话,对于LLM来说,一些都是全新的。所以你需要提供这个文档来让AI熟悉你
的代码库。
💡
后续不特殊说明的情况下,文档都表示AGENTS.md/CLAUDE.md
 
 
所以,你的文档应该包含:
是什么,为什么,怎样做(感觉自己在学英语😅)
  • 是什么:我的整个项目是用来干啥的,用的什么技术栈,项目结构是什么。你应该去什么位置找什么东西
  • 为什么:我为什么要用这个东西,每个文件夹的功能是什么,各个组件要承担什么功能
  • 怎样做:告诉他我的环境,WSL/Linux/Macos/Windows,我是用的是Node还是bun,还是其他语言。如何测试,编译和检查。检查的时候是否需要注意些什么
💡
关于最后一条我得着重说明一下:有的时候怎么做境对于AGENTS来说是很有必要的。为啥呢? 1. 不同环境下,CLI总是会现调用linux语句来查询,然后如果是linux/macos,perfect,他会继续往下执行。但是如果是Windows,就得开始pwsh,然后各种语句了 2. 在我的项目里面,新老内容混合,会出现,我只需要eslint格式化我的新项目,但是如果我么有明确说明的情况下,他很有可能会把你的整个项目给格式化了。一两千个文件,全给你eslint了,到时候git修改信息全是你,找问题都没招 3. 对于不同的项目,每个人可能都会有自己的习惯,ts的位置,service放的位置,如何测试等等
 

我们应该如何撰写文档呢

这里首先现推荐一个库,然后我们开始我个人推荐的写法
12-factor-agents
humanlayerUpdated Dec 3, 2025
之前我写过一篇这个,如何书写skills的文档,也需要进行一些参考
那么,我们开始
 
 
 

不用写很多的指令,少就是多

你把所有的内容都写到文档里面,当然是很省事的。但是有一个问题。指令太多,会让模型出现一些些的幻觉。大部分前沿模型,大约能稳定的遵循150-200条指令。模型能力越弱,模型可处理的指令就越少。非思考的少与思考的模型。按照这个以此类推
 
大模型会更容易偏上边缘处的指令:最开头和最末尾。
最开头:你的agents自己的提示词和文档
最末尾:是你自己的消息
 
随着指令数量的增加,质量会有所下降。并且,你的指令越多,他会均匀的忽略所有的指令。
 

渐进式披露

  1. 使用skills
我们之前写过一个内容,skills,上面提到了,skills总是伴随着这样一个结构
这就是很好的一个渐进式,他会自动读取头部的name,description来确定这个文档给功能,后续需要的时候就会去读取里面的内容。而且随着模型能力的提高,他们会自己去寻找自己需要的内容
2. 把指令拆分成多个文档
那我自己的项目来说,我的项目之前的文档里写了一大堆,后面我把它给拆开了
agent_docs/
|- vite.md
|- skills.md
|- eslint_prettier.md
|- code_env_rules.md
然后在文档里面列出这些文件,并附上说明,因为我们这个不一定是claude,所以需要显性的指出需要调用的skills
 
 

不要在AGENTS里面进行linter

血的教训,你在里面进行linter的话,有一个问题,他会把这些东西放进上下文!本来就记不清很多东西了,linter以后,直接给你干到20%无效上下文窗口。
模型会自己在上下文中学习你的风格,所以他自己搜索一段代码以后,就自动按照你的代码规则来调整了
 

不要使用/init来自动生成你的文档

很多cli都提供了这个方法。但是文档写的好与坏会严重影响整体的效果。所以我们需要自己来调整
 

结语

通过合理组织和精简AGENTS.md文档,我们可以显著提升AI助手的工作效率和代码生成质量。记住,好的文档不在于内容的多少,而在于信息的精准和结构的清晰。希望这些经验能帮助你更好地与AI协作,提升开发效率。