乐于分享
好东西不私藏

Anthropic源码泄露:Claude Code 51万行代码被扒光,藏着什么秘密?

Anthropic源码泄露:Claude Code 51万行代码被扒光,藏着什么秘密?

2026年3月31日,AI圈炸了。

Anthropic像往常一样把Claude Code v2.1.88推到npm,结果这次发布包里多了一个不该出现的东西——一个59.8MB的cli.js.map调试文件。

这个文件里有什么?完整的、未混淆的TypeScript源码,1906个文件,51.2万行代码,一字不落。

最先发现这个问题的是FuzzLand的实习研究员Chaofan Shou。这位Web3安全公司的新人随手翻了翻发布包,结果挖出了今年AI安全领域最大的”事故”之一。消息传开后,GitHub上瞬间涌出一堆镜像仓库,一小时内12k star、18k fork,传播速度堪比病毒式营销。

更尴尬的是,这已经是Anthropic在13个月内第二次犯同样的错误了。上次泄露的是Anthropic API的SDK源码,这次直接把当家产品Claude Code扒了个精光。

51万行代码,扒出了什么?

技术社区拿到源码后的第一反应不是围观,而是拆解。几天下来,Claude Code的完整架构已经被分析得七七八八。

整个系统是五层架构。最上面是入口层,CLI、桌面端、网页版、IDE插件、SDK——所有这些入口最终都走同一条路由。往下是运行层,核心是一个REPL循环配合状态机和Hook系统,Anthropic给它起了个名字叫TAOR循环:Think(思考)→ Act(执行)→ Observe(观察)→ Repeat(重复)。

真正的大头在引擎层。QueryEngine是个单例模式,光这一个模块就将近4.6万行代码。它负责所有脏活累活——拼接上下文、管理提示词缓存、处理流式响应。再往下是工具与能力层,约40个工具85个斜杠命令,构成了Claude Code能”动手做事”的基础。最底层是基础设施,包括提示词缓存管理和远程控制模块。

底层技术栈也值得一提:运行时用的是Bun而非Node.js,终端界面基于React + Ink渲染。这个选型其实挺有意思——Bun的启动速度优势在CLI工具场景下确实能感知到。

没发布的功能,比已发布的更有意思

源码里最吸引人的部分,不是那些已经上线的功能,而是藏在代码深处、从未公开的东西

比如一个叫Buddy系统的模块。翻译成中文就是”伙伴系统”,但实际做的东西更像是Tamagotchi电子宠物——ASCII风格的虚拟宠物,有18种物种、6种稀有度等级。没错,Anthropic在给AI编程助手设计养成游戏。这个功能在代码中已经相当完整,但从未在任何版本中启用过。

再比如KAIROS模块,一个持久化助手系统。它的核心是跨会话的长期记忆,分四个阶段运作:定向(确定记忆方向)→ 收集(提取关键信息)→ 整合(语义融合)→ 修剪(去重去噪)。配合一个叫Auto-Dream的后台机制——每24小时或完成5次对话后自动触发记忆整合,就像AI在”做梦”一样整理白天的经历。

整体记忆架构分三层:长期语义记忆走RAG检索、情景记忆保存对话历史、工作记忆维护当前上下文。这套设计比市面上大多数AI助手的记忆系统都要完整。

但最让人意外的还是卧底模式(Undercover Mode)。这个模块的逻辑是:当检测到操作者是Anthropic内部员工,且正在操作公开的GitHub仓库时,自动激活隐藏模式,抹除所有AI辅助痕迹。说白了就是——让员工用Claude Code帮写开源代码这件事,从外部看不出来。不管你怎么评价这个设计,它至少说明Anthropic对”AI辅助编程”这件事的态度比想象中更复杂。

代码注释里还藏着一个未发布模型的代号:Capybara(水豚)。根据上下文推断,这大概率就是传闻中的Claude Mythos。此外还有35个编译时特性标志、120多个隐藏环境变量、200多个远程控制开关——这意味着Claude Code在发布时实际启用的功能,可能只是冰山一角。

Anthropic的危机处理:越描越黑

事情曝光后,Anthropic的反应速度不慢,但操作堪称灾难。

首先向GitHub发出DMCA takedown请求,结果大范围误伤——大约8100个仓库被删除,其中包括Anthropic自己旗下开源项目的合法分支。Claude Code负责人Boris Cherny随后紧急发文承认是”发布打包过程中的人为错误”,强调”这不是安全事件”。

但社区并不买账。一个重复两次的打包失误,导致51万行生产级代码完全暴露,你说不是安全问题?且不说源码中可能包含API密钥路径、内部服务端点等敏感信息,光是架构设计、未发布功能的完整实现被公开,就已经够让竞争对手研究好一阵子了。

官方给出的回应原文是:”This was a release packaging issue caused by human error, not a security breach.”(这是由人为错误导致的发布打包问题,不是安全事件。)这话听起来像是在说:我们犯错的方式很蠢,但不危险。可问题是,蠢本身就是一种危险

社区的反应

技术社区对这件事的反应呈现两种极端。一部分人在狂欢式地挖掘源码中的彩蛋——Buddy系统、Capybara代号、卧底模式,每一个发现都像是在拆盲盒。另一部分人则开始严肃讨论:AI公司的发布流程管控到底出了什么问题?

npm发布包里不应该包含source map,这是前端工程的基本常识。Anthropic不是小作坊,他们有完整的CI/CD流水线,却连续两次在同一个地方翻车。这已经不是”疏忽”能解释的了。

有意思的是,已经有人基于泄露的源码用Python复刻了一个极简版本——cc-mini(github.com/e10nMa2k/cc-mini),证明了Claude Code的核心架构并没有想象中那么不可复制。

这次泄露真正值得关注的

抛开吃瓜心态,这次事件暴露的问题其实很深层。

第一,AI公司的安全意识没有跟上产品迭代速度。Claude Code发展极快,但发布流程显然没有同步加固。当你的产品在几十万人电脑上运行时,打包错误的代价是指数级放大的。

第二,未发布功能的泄露可能改变竞争格局。KAIROS记忆系统、Buddy宠物系统、卧底模式——这些Anthropic花大量资源研发但尚未公开的功能,现在所有竞争对手都能直接参考。

第三,也是最重要的——用户信任。当一家AI安全公司自己都不够安全时,你很难说服用户把代码和业务流程交给它的产品。Anthropic一直以”安全第一”为品牌定位,这次事件对这个定位的伤害,可能比任何技术细节都更致命。

51万行代码泄露了。但比代码泄露更可怕的,是泄露背后那个信号:在AI军备竞赛中,速度正在压倒一切,包括安全。

👀 觉得有用?点个在看,让更多人看到

💬 有问题?留言区见,有问必答

👇 关注「AI防御圈」,每天懂一点AI