这条在讲 Claude Code 2.1.277 的 changelog,9 月 18 日发的。就一件事:一个项目里如果没有 CLAUDE.md,Claude Code 现在会回头去读 AGENTS.md,把它当项目指令用。出处是仓库里那份自动生成的 CHANGELOG.md。跑 claude --version 能看自己本地是不是已经过了这个版。
我一开始没当回事,以为又是那种“多认一个文件名”的小改动。直到 changelog 里那一行才确认它值得点。它说的是“在未提供 CLAUDE.md 的项目中改为读取 AGENTS.md”。重点是“改为”。不是“也读”,是“没有 A 就回退到 B”。也就是说,Claude Code 第一次把 AGENTS.md 放进了自己的正式指令层级,不是社区里传的野路子了。
AGENTS.md 这个东西,我夹子里早存过几篇讨论它的帖子。它本来就是社区先搞出来的,要解决的问题也不绕:一个团队里往往不只有 Claude Code 一个 agent,可能还有 Cursor、Copilot,或者别的一堆东西。给每个 agent 单写一份指令文件很蠢,所以不如搞一个通用的 AGENTS.md,谁进来都认。Claude Code 之前只认 CLAUDE.md,团队要么维护两份几乎一样的东西,要么就是默认其它 agent 已经被放弃了。
现在它回退了。回退到 AGENTS.md,基本等于承认:项目级指令文件是团队的资产,不该为了某一个工具单写一份。
我顺手跑了一下,本地直接装的 Claude Code。
claude --version
确认过了 2.1.277。然后建了个空目录,没放 CLAUDE.md,只放了一个 AGENTS.md,里面就写了几行:
# AGENTS.md
回答所有问题前先确认你读到了项目指令。
启动后随便问一句,它先回了句“我读到了项目指令”,再接着回答。跑通了。回退逻辑确实生效,不是只印在 changelog 里。
但真正让我在意的不是这个。是 changelog 后半段那条限制:AGENTS.md 支持还没覆盖 Bedrock、Vertex 和 Foundry。
这条写得很坦白,但我估计今天就会有人忽略它。更新完在 Bedrock 上试半天,然后问“怎么我的 AGENTS.md 没生效”。不是 bug,是官方明确写着的“没支持”。企业用 Bedrock 的比例不低,Vertex 也不少。这些环境升到 2.1.277 之后,没 CLAUDE.md 的项目行为照旧,不会去读你精心维护的那份 AGENTS.md。保持原样。
我一直觉得用 Bedrock 这事本身就挺拧巴。你选了 Claude Code,又跑在 Bedrock 上,图的无非是权限、合规、企业采购那些事。可每次 Claude Code 出新功能,Bedrock 那条线总是慢一步。AGENTS.md 只是最近一个例子。不是说 Anthropic 故意怠慢企业用户,更像 Bedrock 这条链路有自己的一套版本节奏,追 changelog 的速度天然就慢半拍。这条限制早晚会补上,但我不会现在开始等。
还有个细节值得记一下:这次的“支持”其实在 /config 的 Project instructions 里可以改。也就是说,它没写死“没 CLAUDE.md 就非得读 AGENTS.md”,你可以自己去动这个回退关系。我没改,留着默认。因为默认回退才是我最关心的场景:一个团队只维护 AGENTS.md,每个人用不同 agent 进同一个仓库,Claude Code 不再逼你补一份 CLAUDE.md。
不过说到“只维护一份”这个理想,有个隐患我想到但没展开验证:如果项目里同时有 CLAUDE.md 和 AGENTS.md,内容冲突了怎么办。changelog 没提优先级,这个场景我也没跑。按字面理解,Claude Code 还是先认 CLAUDE.md,AGENTS.md 只是“没提供 CLAUDE.md 时”的备选。所以冲突不是 bug,是显式优先级。但我见过一些团队两边都写,最后自己都分不清哪份才是真的。这种烂摊子,工具管不了。
不点链接也能带走的一句:如果你现在同时维护 CLAUDE.md 和 AGENTS.md 两份内容差不多的文件,可以删一份了。先确认你的环境不在 Bedrock、Vertex、Foundry 这三个名单里。
via Claude Code 官方 changelog。这个仓库的 changelog 是自动生成的,原文就几句话,没展开讲为什么。但这个改动本身就够记一笔。
