Claude 与 Skill
Claude Code 2.1.277 支持 AGENTS.md 了,但只是没有 CLAUDE.md 时的兜底
Claude Code 在 2.1.277 版本加入 AGENTS.md 支持,但仅当项目里完全没有 CLAUDE.md 时才会读取它,是兜底而非合并。文章拆解了加载顺序、@import 规则、symlink 和 /import 迁移三种共享方案,并给出验证指令是否真正加载的方法。
今天就能做
- 先跑 claude --version 确认 ≥2.1.277,再检查仓库有没有 CLAUDE.md——有则新兜底与你无关,直接用 @AGENTS.md import 方案
- 改完指令文件后开个会话跑 /context,确认文件出现在 Memory files 里,否则怎么改措辞都没用
- 在 /config 的 Project instructions 里统一团队的 AGENTS.md 行为,避免各人设置不一致
这次更新到底改了什么
- 2.1.277 只改三件事:没有 CLAUDE.md 时改读 AGENTS.md;行为可在 /config 的 Project instructions 里开关;Bedrock、Vertex、Foundry 暂不支持
- 没有 settings.json 键或环境变量控制开关,唯一入口是 /config 菜单,托管部署暂时无法统一固定该行为
- 官方 memory 文档还没更新,仍写着只读 CLAUDE.md,以 changelog 为准并自行验证
兜底在真实仓库里几乎不会触发
- Claude Code 不是只找一个指令文件,而是沿目录树向上加载 CLAUDE.md 和 CLAUDE.local.md,子目录文件在读取该目录文件时才按需加载
- 所有发现的文件是拼接而非覆盖,顺序从根到工作目录,越靠近启动位置的指令越后读
- 只要跑过一次 /init 的仓库就有 CLAUDE.md,兜底永远不触发
@import 仍优于兜底
- 在 CLAUDE.md 里写 @AGENTS.md 即可共享一份指令源,再在下方追加 Claude 专属规则
- 语法规则严格:相对路径基于所在文件解析;嵌套最多四层;反引号内的 @路径不会被执行 import
- 解析到工作目录之外的 import 首次会弹审批框,拒绝一次后永久关闭且不再询问;用户级文件(~/.claude/CLAUDE.md)的 import 不弹框
- 团队协作注意:同事批准了外部 import 而你拒绝了,两人实际加载的指令会不一致
symlink 和一次性迁移
- 不需要 Claude 专属内容时,ln -s AGENTS.md CLAUDE.md 即可;Windows 需管理员权限或开发者模式,否则改用 @import
- /import(需 v2.1.213+)可把其他 agent 的配置一次性迁入:追加指令文件副本,并带上 MCP 服务器、命令、子代理和 skills,适合彻底换工具而非双工具并行
- /init 默认读 Cursor 和 Copilot 规则;设 CLAUDE_CODE_NEW_INIT=1 后还会读 AGENTS.md、.devin/rules/、.windsurf/rules/ 和 .clinerules
验证到底加载了什么
- /context 的 Memory files 区块列出本次会话加载的文件,是最快检查手段
- /memory 可浏览并打开所有 CLAUDE.md 和记忆文件
- InstructionsLoaded hook 能记录哪些文件在何时因何加载,适合排查路径限定规则或懒加载的子目录文件
- 单文件上限 4 MiB,超限整个跳过;官方建议每文件 200 行以内,遵循度远在此之前就开始下降
- monorepo 可用 claudeMdExcludes 按 glob 排除祖先文件,各层设置数组合并,但托管策略 CLAUDE.md 不可排除
原文:Claude Code reads AGENTS.md now, but only when CLAUDE.md is missing
来源:DEV Community · 2026-11-08
查看原文本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。
登录后可以点赞、查看和发表评论