深入探索Claude Code源码泄露
Claude Code 以其封闭性著称。他们的 Agent SDK 几乎不提供 Claude Code 内部的任何洞察,而 Anthropic 自己也尽最大努力保持源代码的封闭性。
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI工具导航 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
2026 年 3 月 31 日,Anthropic 在一次 Claude Code npm 更新中意外打包了 .map source map 文件。几分钟内,这件事被发现并开始病毒式传播。60 万行代码被镜像、分析、移植到 Python 和其他语言,并上传到去中心化服务器。
Claude Code 以其封闭性著称。他们的 Agent SDK 几乎不提供 Claude Code 内部的任何洞察,而 Anthropic 自己也尽最大努力保持源代码的封闭性。
1、事情是如何发生的
Anthropic 在 Claude Code npm 包中意外包含了 .map source map 文件。Anthropic 的 Claude Code 工程师 Boris Cherny 确认这是纯粹的开发人员错误,而不是工具链的 bug。他进一步跟进提供了更多细节:"错误总会发生。作为一个团队,重要的是认识到这从来不是个人的过错。这是流程、文化或基础设施的问题。"
无责事后分析,由 Google 的 SRE 文化推广,专注于修复系统而不是寻找责任人。目标是创建一个工程师诚实地报告错误而不是隐藏错误的环境,这会产生更好的修复和更少的重复事件。
Chaofan Shou (@Fried_rice) 首先注意到并公开发布了源代码链接。几分钟内,竞赛开始了。
2、混乱与法律
最受欢迎的分支是 claw-code 在 GitHub 上,由 @realsigridjin 创建。他克隆了仓库,从零开始使用 OpenAI 的 Codex 将其移植到 Python,以防止法律问题,并推送了它。

法律理论是,干净的 AI 重写不受 DMCA 的约束。Claw-code 目前拥有 75,000 多颗星和 75,000 多个 fork。
还没有人能回答的法律问题: 代码生成的干净重建是否侵犯版权?
传统上:"软件工程中的干净构建是一种用于在不侵犯版权的情况下重新实现现有软件或逆向工程系统的方法。它涉及两个独立的团队:一个分析原始软件以创建规范,而第二个'干净'团队仅根据这些规范创建新产品,确保不复制任何专有代码。"
这需要数月时间并花费真正的金钱。它曾经是一个有意义的障碍。现在任何拥有 Claude Max 计划的人都可以将智能体指向代码库的测试,并在一晚上重建逻辑。这种做法从未在法庭上受到挑战。
Gergely Orosz 直言不讳地说:即使 Anthropic 试图主张版权,他们是否希望起诉一个开源项目重建他们自己的 AI 生成的产品?他们甚至能证明吗?
与此同时,4nzn 将剥离版本上传到 IPFS,移除了所有遥测、安全护栏,并解锁了所有实验性功能。DMCA 能否触及存储在 IPFS 上的内容本身就是一个未解决的法律问题。
目前,claw-code 仍然在线,但未经重写的分支已被 Anthropic 通过 DMCA 移除。
这里是 Anthropic 发送给源代码克隆的 DMCA 请求示例:https://github.com/github/dmca/blob/master/2026/03/2026-03-31-anthropic.md
3、源代码内部
3.1 KAIROS:Anthropic 对 OpenClaw 的回应
隐藏在名为 PROACTIVE 和 KAIROS 的功能标志后面,代码库包含一个尚未公开宣布的完全构建的自主智能体模式。
KAIROS 在后台运行,24/7,无需你询问。它类似于 OpenClaw。
每隔几秒它会收到一个心跳提示:"现在有值得做的事情吗?"它评估正在发生的事情并做出判断:行动,或保持安静。如果行动,它可以修复错误、响应消息、更新文件、运行任务。Claude Code 已经可以做的所有事情,只是不需要你发起。
它有三个常规 Claude Code 没有的独占工具:
- 推送通知,以便即使终端关闭也能在手机或桌面上联系到你
- 文件传递,以便它可以在未被要求的情况下发送它创建的东西
- 拉取请求订阅,以便它可以监视你的 GitHub 并自主响应代码更改
它保留 append-only 的每日日志,记录它注意到、决定和做的所有事情。它不能删除自己的历史。晚上它运行一个代码中称为 autoDream 的进程,在那里整合它白天学到的东西并重新组织内存。它跨会话持久化。周五关闭笔记本电脑,周一打开,KAIROS 一直在工作。
代码库还包含 44 个隐藏的功能标志和 20 多个未发布的功能:24/7 运行的后台智能体、一个 Claude 编排多个工作 Claude、cron 调度、完整的语音命令模式、通过 Playwright 的浏览器控制,以及睡眠和自我恢复的智能体。
所有这些中最有趣的架构决策是主动权与执行的分离。
常规 Claude Code 是响应式的:只有当你发送消息时才行动。KAIROS 引入了主动循环,这需要根本上不同的信任模型。智能体现在需要自己决定什么是值得做的,这意味着该判断的质量比简单的请求-响应系统重要得多。
这是一个难题,而 Anthropic 已经完全构建并门控了它,表明他们已经为此工作了一段时间。
3.2 反蒸馏:主动毒害模仿者
蒸馏是一种过程,其中训练一个更小、更高效的 AI 模型来模仿更大、更强大"教师"模型的行为和知识,使其在运行速度更快、成本更低的同时表现几乎同样好。
Claude Code 发送带有 anti_distillation: ['fake_tools'] 标志的请求,在系统提示中注入诱饵工具定义。目标是毒害任何试图将 Claude Code 行为蒸馏到自己模型中的竞争对手的训练数据。
通过 CONNECTOR_TEXT 有第二层保护:一种服务器端机制,在工具调用之间缓冲助手的文本,用加密签名对其进行摘要,并仅将这些摘要返回给 API 流量记录器。即使竞争对手拦截 API 流量,他们也只获得摘要,而不是完整的推理链。
假工具方法有趣的地方在于它在哪里操作。它在数据收集时针对蒸馏攻击面,而不是在推理时。如果竞争对手通过 Claude Code 路由请求以收集训练数据,他们会在每个提示中获得毒化的工具模式,使得在该数据上训练的任何模型都更不可靠。
此分析的作者估计,一个坚定的团队可以在一小时内使用 MITM 代理或 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 环境变量绕过这两种机制。更强的威慑力可能来自法律而非技术。
3.3 模型代号
代码库中充斥着从未打算公开的内部代号。
- Capybara(也称为 Mythos):Anthropic 已经在版本 8。它有 100 万上下文和"快速模式"。代码指出它仍然有过度注释和错误声明的问题。
- Numbat:带有注释"@[MODEL LAUNCH]: 当我们发布 numbat 时删除此部分",一个即将推出的模型,源代码中包含了发布的窗口期。
- Fennec:多位研究人员推测是 Opus 4.6。
- Tengu:在卧底模式中引用,该模式从发往外部仓库的构建中剥离内部代号。
卧底模式(undercover.ts,90 行)有一个关键设计细节:没有强制关闭。它是单向门。在外部仓库中运行的 Claude Code 不能引用任何这些名称、内部 Slack 频道,甚至不能称自己为"Claude Code"。
从产品安全的角度来看,推理很直接:你想确保内部代号永远不会泄露到外界,所以你使抑制自动化且不可撤销,而不是可选。但一个副作用是,使用 Claude Code 为开源项目做贡献的 Anthropic 员工没有在提交中披露 AI 作者身份,而该工具正是为确保这一点而构建的。
3.4 JavaScript 层之下的 DRM
API 请求包含占位符值(cch=ed1b0),Bun 用 Zig 编写的原生 HTTP 堆栈在传输前用计算的哈希覆盖这些值。这以加密方式证明请求源自真正的 Claude Code 二进制文件,而不是包装 API 的第三方工具。
这存在于 Zig 而不是 JavaScript 中是刻意的。JavaScript 可以在运行时被修补、monkey-patched 或代理。编译到 Bun 二进制中的 Zig 代码在不从源代码重新编译的情况下无法被检查或覆盖。通过将证明推到 JS 层之下,Anthropic 使第三方客户端更难欺骗。
这可能就是为什么像 OpenCode 这样的工具在法律通知之外还遇到了 Anthropic 的摩擦:它们也在 API 层面被阻止。该机制由编译时标志门控,这表明它可能不是在所有地方都激活,但设计意图是清晰的。
3.5 内存架构
Claude Code 的内存系统远比"保存一个 CLAUDE.md 文件"复杂得多。它作为一个 3 层索引运作:
- 索引(始终加载):只是指针,每行约 150 个字符
- 主题文件(按需加载):实际的知识
- 转录(从不读取,只 grep):从不直接加载到上下文中
写入纪律:先写入主题文件,然后更新索引。永远不要将内容转储到索引中。如果一个事实可以直接从代码库重新推导出来,它就不存储。
autoDream 在具有有限工具访问权限的分叉子智能体中进行整合、去重和消除内存中的矛盾,这可以防止它在运行时破坏主上下文。内存被视为提示,而不是真相。智能体在使用前会验证。
这里的核心设计洞察是带宽意识。大多数智能体内存实现在每回合都将所有内容加载到上下文中,这很昂贵且引入噪音。Claude Code 将上下文窗口视为稀缺资源:索引便宜且始终加载,主题文件仅在相关时获取,转录从不直接加载。这保持了模型的工作内存清洁,同时不丢失对历史信息的访问。他们选择不存储的东西与他们存储的东西同样重要。

3.6 Magic Docs:自我更新的文档
从内部代码库借鉴的一种模式:Anthropic 员工可以创建带有 MAGIC DOC 头部的文件。当 Claude Code 的内部构建空闲时,它会启动一个专用的子智能体,读取文件,更新指定功能的文档,并将其写回。子智能体被限制为只编辑那个单一文件,不涉及其他内容。
结果是文档始终保持最新,无需任何人记得更新它。工具限制是关键的设计选择:将智能体的范围限定在一个文件上,防止它偏离到不相关的更改,同时仍给予它足够的访问权限来完成有用的工作。
3.7 工具链总结
将 DeepSeek 或 Gemini 放入相同的 Claude Code 工具链中,经过一些优化,你可能会在这些模型上也获得改进的编码能力。
工具链包括:
- 每个回合实时加载仓库上下文(git 分支、最近提交、每次查询都重新读取 CLAUDE.md 文件)
- 通过稳定/动态提示边界进行积极的提示缓存重用,因此 Anthropic 不需要在每回合支付完整的 token 成本
- 专用的 Grep 和 Glob 工具代替 shell 命令,为模型提供结构更好的搜索结果
- LSP 工具访问,用于调用层次结构、符号定义和引用
- 5 种不同的上下文压缩策略,因为上下文溢出是一个核心工程问题
- 25+ 事件钩子系统,让你在执行的每个阶段拦截和修改行为
- 三种子智能体执行模型(fork、teammate、worktree),带有提示缓存优化:forked 子智能体继承父上下文作为字节相同的副本,因此生成 5 个智能体的成本几乎与生成 1 个相同
值得理解的一个设计决策是提示缓存边界。Anthropic 按 token 付费,每次重新构建长系统提示在规模上会很昂贵。通过 SYSTEM_PROMPT_DYNAMIC_BOUNDARY 将提示分成稳定的前半部分和动态的后半部分,他们确保昂贵的静态部分被缓存并在会话间重用。任何标记为 DANGEROUS_uncachedSystemPromptSection 的内容都被显式标记为缓存中断,因此工程师在更改之前就知道成本。
这些系统提示大部分一直嵌入在通过 npm 分发的 CLI 包中。它在技术上一直是可读的。.map 文件只是让它变得显而易见。
Claude Code 团队之前讨论过 Claude Code 中的提示缓存。
3.8 彩蛋和人性化设计
buddy/companion.ts是一个愚人节功能,为每个用户生成一个确定性生物:18 个物种、稀有度层级、1% 的闪光率、RPG 属性,刻意编码以逃避 grep 检查- 正好有 187 个 spinner 动词(来源:Wes Bos)

print.ts有 5,594 行,其中单个函数有 3,167 行长,12 层嵌套深- 代码中有面向 LLM 的注释,为在代码库上工作的 AI 智能体编写,而不是为人类读者
4、2026 年 3 月是安全灾难
这次泄露并非孤立发生。它发生在 AI 开发者安全记录最糟糕的月份之一。
在同一个 30 天窗口内:
- Axios(每周 1 亿 npm 下载量):维护者账户被劫持,macOS、Windows 和 Linux 上部署了远程访问木马。恶意软件执行后自毁并从 node_modules 中删除自己。Google 怀疑来自朝鲜不良行为者。
- LiteLLM(每月 9700 万 PyPI 安装量):被植入后门,三阶段攻击:凭据收集器扫描 SSH 密钥、AWS/GCP/Azure 凭据、Kubernetes 配置、加密钱包和每个 LLM API 密钥;然后是 Kubernetes 横向移动;然后是持久的 systemd 后门。在 PyPI 将其隔离前活跃了三小时
- Railway(200 万用户,财富 500 强中 31% 是客户):CDN 配置错误,将经过身份验证的用户数据泄露给错误的用户,持续 52 分钟
- Delve:YC 支持的合规初创公司,据称在 494 份报告中生成欺诈性 SOC 2 审计报告,具有相同的样板、伪造的董事会会议证据,以及在任何客户提交证据之前就写好的审计结论
- Mercor AI:据称 LAPSUS$ 通过其 TailScale VPN 攻破了 939GB 源代码和 4TB 总数据
- OpenAI Codex:2025 年 12 月发现的通过分支名称的命令注入,2026 年 2 月修补,2026 年 3 月披露。攻击者可以通过未清理的分支名称参数窃取 GitHub 身份验证令牌
- GitHub Copilot:在未经开发者同意的情况下,在 150 多万个拉取请求中注入隐藏的 HTML 注释形式的推广广告。GitHub 副总裁确认了这一点,并称这是"错误的判断决定"
Claude Code 泄露在某些方面是该列表中技术危险性最低的项目。我可能会在下一期讨论 AI 安全!
原文链接: Diving into Claude Code's Source Code Leak
汇智网翻译整理,转载请标明出处