博客

Shopify 的"脑裂"不是文件名之争。它是漂移,统一一个标准文件也不会终结它

September 15, 2026untactit

2026 年 8 月 25 日,Shopify CEO Tobi Lütke 发文称,他"正在考虑在 Shopify 禁用 Claude Code,直到他们改变主意,去读取 AGENTS.md 和 .agents/skills"。理由不是偏好,而是一种运维层面的故障模式:"坚持只读 CLAUDE.md,有时会在团队成员使用不同工具时造成脑裂问题。"(来源)

后续报道披露的机制值得写清楚。在数千名开发者共同维护的 monorepo 里,总会有某个目录只放了一种指令文件而没有另一种。读取缺失那一份的 agent 就"像被切除了脑叶一样"运行。Shopify 用自动化去填这个缝,Lütke 称之为"愚蠢的复杂度税"。Anthropic 曾把递归读取 AGENTS.md 的请求以"不计划"关闭,随后表示会让 AGENTS.md 更易用。(Shopifreaksexplainx)

大多数评论把这件事当作标准之争:由 Linux Foundation 旗下 Agentic AI Foundation 托管的 AGENTS.md(Shopify 是其黄金会员)对阵厂商专属的 CLAUDE.md。这个框架没错,但不完整。咬到 Shopify 的东西,比文件名更古老、更普遍。

仓库的真实样子

2026 年 2 月发表的一项研究分析了 2,926 个使用 agentic 编码工具的 GitHub 仓库,并对其配置机制做了分类。(arXiv 2602.14690) 其中三个数字与本文相关:

  • 上下文文件(CLAUDE.md、AGENTS.md、copilot-instructions.md)是占主导的机制,而且往往是仓库唯一使用的机制。
  • 研究者在 2,634 个仓库中找到 4,860 个上下文文件。CLAUDE.md 出现在 45.4% 的仓库,AGENTS.md 出现在 40.6%,copilot-instructions.md 出现在 35.1%。
  • 这些百分比相加远超 100。很多仓库同时带着两三份"本应说同一件事"的指令文件。

研究还指出,Cursor 已弃用 .cursorrules 转而推荐 AGENTS.md;从 copilot-instructions.md 起步的仓库,后来常常又加上 CLAUDE.md 或 AGENTS.md,尽管 Copilot 三种都能读。团队并没有向一个文件收敛。他们在累积文件。

再加上研究没有测量的第二个维度:机器。每个开发者手里都有那些文件的副本,还有用户级副本(~/.claude、~/.codex、~/.cursor),再加上 Agent Skills 标准放在 .agents/skills 或 .claude/skills 下的东西。标准本身是好事:SKILL.md 已由 Claude Code 和 GitHub Copilot 实现,并被 Cursor 和 Gemini CLI 采用,同一个技能目录可以在工具之间流动。但"原样可用"描述的是格式,不是副本。可移植的文件,仍然是会被复制的文件。

脑裂就是有两个名字的漂移

下面是制造 Shopify 故障的步骤,而且它不需要两家厂商:

  1. 一条规则写一次,在一个文件里,在一个目录里。
  2. 有人复制它——因为自己的工具读的是另一个文件名,因为子目录需要,因为自己的笔记本需要。
  3. 有人改了其中一份副本。构建命令变了。某个团队放宽了测试规则。路径挪了。
  4. 没有任何东西告诉任何人副本已经分叉。读取陈旧副本的 agent 严格照做,然后做错。

问题全在第 4 步。第 1 到第 3 步是正常的工程。就算明天全行业统一到 AGENTS.md、Claude Code 原生读取它,第 2 步仍会跨目录、跨机器发生,第 4 步仍会悄无声息地发生。你会在同一个文件名之内得到脑裂。

标准化工作是必要的。它去掉一个乘数。它去不掉机制。

什么能去掉机制

诚实的答案有两个,而且今天都能用,什么都不用买。

停止手改副本。 每条规则只保留一个事实来源,所有工具专属文件都从它生成。最小版本是一个符号链接(AGENTS.md -> CLAUDE.md,Lütke 发文那一周许多团队就是这么做的)。下一步是一个生成脚本,从一份 YAML 或 Markdown 写出 AGENTS.md、CLAUDE.md、copilot-instructions.md 和 skills 目录。规则很简单:文件如果是生成的,人就永远不去编辑它。想改,就改来源再重新生成。

即便如此也要检测副本是否被动过。 人们还是会去改生成文件,因为修复很急而来源在别处。所以在 CI 和定时任务里跑一个检查:对目录树里每个上下文文件和每个 SKILL.md 做哈希,把本应相同的分为一组,报告任何已分叉的,并附上差异。我们发布了一个小型开源工具,正是在目录树上做这种扫描:agent-drift。它不需要任何服务;它读取文件,打印出同一份文档的哪些副本已经分裂。重点不在工具。重点是漂移变成一个被报告的事件,而不是由一个交付了坏代码的 agent 发现的意外。

做到这两件事,文件名问题就回到它该在的位置:由生成器处理的兼容性细节,而不是 CEO 威胁禁用一款工具的理由。

接下来往哪走

Agent Skills 标准与 AGENTS.md 推向的是同一个方向:把指令文件当作版本化、共享、可审查的资产,而不是个人笔记。多数团队仍然缺的,是其他共享资产早已具备的运维层。代码有仓库和评审。密钥有保险库和轮换。给 agent 的指令文件,多数只有一条复制命令。

这正是 untactit 在构建的那一层:一个技能、记忆和指令文件的库,变更由人审批,然后推送到每一个已连接的工具和机器,无需任何人手动编辑副本,并配有漂移检测,报告哪份副本何时分叉。人来决策;传播零接触。它目前处于早期访问阶段,可在 untactit.com 免费开始。但上面两条实践本身就成立。先采用它们。之后即便你永远不需要我们,脑裂也已经消失了。


来源:Tobi Lütke 于 X,2026 年 8 月 25 日 · Configuring Agentic AI Coding Tools: An Exploratory Study(arXiv 2602.14690) · Agentic AI Foundation · Agent Skills 标准 · Shopifreaks 报道

本文也发在 DEV。

相关文章

别再猜智能体在跑什么。

接入一个工作区,约十分钟内,团队在用的每个技能、规则与记忆一览无余。

免费开始 联系我们

无需信用卡。直接接入现有工具。