电话

18600577194

当前位置: 首页 > 资讯观点 > 软件行业

Claude Code源码泄露真相:一场低级失误,还是AI史上最巧的公关?

标签: 人工智能(AI) 2026-04-02 

写这篇的时候,距离Claude Code源码泄露已经过去一周。这段时间里,我翻遍了泄露的51万行代码、看遍了社区的各种分析,越看越觉得这事儿透着一股诡异——说它是意外吧,漏洞摆了20天没人管;说它是公关吧,没人会拿核心架构赌IPO口碑。

Claude 代码泄露

离奇的代码泄露过程

先把时间拉回3月31日凌晨。Anthropic悄无声息地把ClaudeCodev2.1.88推上了npm,谁也没想到,这个看似常规的版本更新,会把整个产品的源代码打包送进了公共视野。

最讽刺的是,泄露的根源简单到让人难以置信——就因为少写了一行.npmignore配置。

做前端或TS开发的人都懂,.map后缀的源码映射文件,是用来调试生产环境代码的,相当于给压缩后的代码配了一把“解密钥匙”,从来都不该随正式包发布。正常情况下,只要在.npmignore里加一句*.map,就能把它屏蔽掉。但Anthropic偏偏忘了这一步,就这么把59.8MB的.map文件,连同指向完整源码压缩包的链接,一起推给了所有人。

更要命的是,那个源码压缩包(src.zip),就存在Anthropic自家的CloudflareR2存储桶里,而且完全没设权限——不用登录,不用验证,任何人点个链接就能下载。等于说,Anthropic相当于把自家的保险柜钥匙,直接放在了大街上。

还有个细节,可能很多人没注意到。Anthropic去年底收购了Bun运行时,ClaudeCode就是基于Bun做的。早在泄露前20天,Bun社区就有人提交了一个漏洞(issue#28001),明确说生产构建会意外携带.map文件。但这个漏洞就那么躺了20天,Anthropic内部没人把它当成高危问题处理。

等于说,这场泄露不是一个错误导致的,是三个错误凑到了一起:忘了配置.npmignore、云存储桶公开、已知漏洞不修复。说句实话,作为一家标榜“安全第一”的AI公司,这种低级失误,实在让人难以理解。

泄露引发的快速发酵

事件发酵得比谁都快。凌晨4点左右发布的版本,4点23分就被SolayerLabs的一个实习生扒了出来,推特一发,1600万浏览量瞬间炸了。接下来的两个小时,GitHub上全是ClaudeCode的复刻仓库,最快的那个,不到两小时就涨了5万star,分叉超过4万,Anthropic的法务估计忙得脚不沾地,DMCA下架请求一封接一封。

更倒霉的是,当天还撞上了另一件事——npm上出现了恶意版本的axios,内置远程控制木马。虽然跟ClaudeCode没关系,但时间点太巧,很多人更新ClaudeCode时,不小心就装了恶意依赖。我身边就有朋友中招,不得不重装系统、轮换所有密钥,闹得人心惶惶。Anthropic后来紧急改成推荐原生安装程序,估计也是怕再出类似的麻烦。

代码中隐藏的惊喜与心思

不过话说回来,这次泄露也让我们第一次看清了ClaudeCode的真实实力——它根本不是一个简单的聊天插件,而是一套完整的AI代理框架。我花了整整一天翻代码,越看越佩服Anthropic的工程能力。

最值得说的,是它的三层记忆架构。做AI代理的都知道,上下文越长,AI越容易“失忆”“说胡话”,也就是所谓的“上下文熵增”。Anthropic给出的解决方案,简单又精妙:最外层是轻量级的索引,只存位置不存内容,常驻上下文;中间层是主题文件,按需加载;最底层是原始对话记录,只在需要时检索。更关键的是,它有一套严格的写入规则,只有确认文件写成功了,才会更新记忆,避免把错误的尝试记进去——这一点,很多同行都没做到。

代码里还藏着不少惊喜,哦不,应该说是Anthropic没打算公开的“秘密”。比如一个叫KAIROS的功能,本质是个后台守护进程,能在你不用电脑的时候,自动整理记忆、巩固对项目的理解,相当于一个24小时待命的AI助理。还有ULTRAPLAN,能把复杂的规划任务扔到云端跑30分钟,跑完再把结果拉回本地,兼顾了算力和隐私。

最有意思的是一个叫Buddy的电子宠物,藏在buddy/companion.ts里,是个Tamagotchi风格的小东西,有18种物种,还有稀有度和属性,代码里标注的发布时间是4月1日到7日——显然是愚人节彩蛋。能在这么核心的产品里,藏这么一个无关紧要却很有趣的功能,看得出来,Anthropic内部的工程师,也有不那么严肃的一面。

当然,也有一些“小心思”。代码里有个反蒸馏开关,开启后会给API请求里加假的工具定义,目的就是防竞品抓包仿训。还有一段正则,专门匹配用户的暴躁情绪,比如wtf、shit、useless这些词——一家百亿估值的公司,居然用这么“朴素”的方式判断用户心态,说起来有点好笑,但不得不承认,比每次跑LLM推理高效多了。

另外,下一代模型Capybara也被实锤了。虽然没泄露模型权重,但代码里到处都是相关的测试标记,能看出来它已经离发布不远了,而且上下文窗口会比现在的产品大很多。更有意思的是,代码里还有一个“卧底模式”,强制ClaudeCode不在外部仓库提Capybara这个代号——看来Anthropic早就料到,会有竞品盯着它的一举一动。

疑点重重的背后真相

聊到这儿,就不得不说那个绕不开的问题:这真的是一场意外吗?

我不敢说一定是公关,但巧合实在太多了。泄露前十天,Anthropic刚因为给OpenCode发律师函,被开发者骂“傲慢”“垄断”;泄露后,全网都在夸它的工程能力,口碑180度反转。而且泄露时间是3月31日,第二天就是愚人节,正好撞上Buddy彩蛋的发布窗口,相当于免费做了一次全网公测。

更可疑的是,Anthropic对那些去中心化镜像的态度。对GitHub上的仓库,它立马发了DMCA,但对Gitlawb上那些宣称“永不删除”的镜像,却没采取任何强力行动——以它的法务实力,不可能做不到。再加上一周内两次“意外泄露”(之前还有Capybara的博客草稿泄露),很难让人不多想。

但反过来看,这场泄露对Anthropic的损失也不小。核心架构全被竞品看光了,Cursor、Copilot这些对手,相当于拿到了一份完整的“标准答案”;而且IPO前夕出这种安全事故,对投资人的信心也是不小的打击。更别说,没人会故意把公关事件和axios木马撞车,给自己添堵。

所以我更倾向于,这就是一场低级失误叠加的悲剧——一个粗心的发布工程师,忘了加一行配置;一个负责漏洞管理的人,没重视Bun的已知问题;一个负责云存储的人,没管好权限。三个失误凑到一起,酿成了这场AI行业的“史诗级泄露”。至于那些公关红利,只能说是歪打正着。

还有一个值得关注的点:DMCA根本拦不住代码扩散。GitHub上的仓库虽然下架了,但Gitlawb上的镜像还在,还有人做了Python干净重构版,宣称不受版权约束。更关键的是,Anthropic自己的CEO都暗示过,ClaudeCode很多代码是Claude自己生成的,而美国法院早就裁定,AI生成的内容不天然受版权保护——这意味着,哪怕Anthropic想维权,也没那么容易。

说到底,这场泄露给所有技术团队都上了一课。我身边不少研发负责人,看完这件事,都立马让团队自查.npmignore、云存储权限和构建工具漏洞。其实道理很简单:你的.npmignore不是一个普通的配置文件,它是你的安全边界;任何一个看似微小的疏忽,都可能让你辛苦研发的成果,一夜之间公之于众。

现在再回头看,不管这场泄露是意外还是公关,有一点是肯定的:Anthropic的工程实力,确实被低估了。那些藏在代码里的设计,无论是记忆架构、多智能体协同,还是隐私保护,都能看出它是在认真解决AI代理的核心难题。

代码已经流出去了,再纠结是不是意外,意义不大。对Anthropic来说,最好的办法,就是把那些被泄露的功能——KAIROS、ULTRAPLAN、Buddy——正式发布,把一场事故,变成一次产品升级。对整个行业来说,我们更该记住的,是这场泄露背后的教训:在AI高速迭代的时代,安全和速度,从来都不能偏废。

最后说一句,如果你正在用Claude Code,赶紧升级到最新版本,别用npm装了,换成官方的原生安装程序;如果3月31日凌晨更新过依赖,一定要检查一下有没有恶意axios——别让一场别人的失误,变成自己的麻烦。


加载中~
-->