乐于分享
好东西不私藏

解读Claude Code51万行泄露源码:全行业高估了模型,低估了套壳

解读Claude Code51万行泄露源码:全行业高估了模型,低估了套壳

3月31日凌晨,安全研究员Chaofan Shou发了条推文,附了个zip包。

几个小时后,这条推文浏览量破百万,GitHub上的镜像仓库星标冲到两万,全球开发者像过年一样涌进去围观。

原因是Anthropic在往npm发布Claude Code更新包的时候,把source map文件一起发了出去。这个文件的作用是把压缩混淆后的代码映射回源码——相当于你把保险箱的钥匙直接焊在了保险箱外面。

51万行TypeScript,1900个源文件,从工具调用逻辑到系统提示词,从权限检查到未发布功能,一览无余。

写十行脚本就能还原。不需要逆向,不需要反编译,打开即食。

npm配置里的黑色幽默

先聊这个失误本身,因为它比泄露的内容还有意思。

技术原因一句话就能说清:就是.npmignore里忘了排除.map文件。 这是前端工程师入职第一周就该知道的事,甚至算不上”技术失误”,只能算”流程卫生没做好”。

更讽刺的是,2025年初Claude Code刚发布的时候,同样的事故已经发生过一次。当时Anthropic紧急下架了旧版npm包,社区讨论了几天就过去了。

一年多后,同一个漏洞,同一个位置,又来一次。

一个以”AI安全”为招牌的公司,连自己的发布流程都保不住,你说这搞不搞笑。

而且这事发生在Mythos模型信息被意外曝光仅四天之后。Anthropic的保密能力在短短一周内被打了两次脸。对一家做前沿研究的公司来说,这还能解释为”偶尔疏忽”。但对一家正在卖企业级产品、强调安全可靠的公司来说——你连核心客户端的source map都能带着源码一起发出去,你内部的release review到底是怎么做的?

不过话说回来,这篇文章真正想聊的不是Anthropic的保密水平。

而是当全世界开发者打开这份源码之后,大家发现了什么。

最强AI编码工具,搜代码用grep

所有技术细节里,最让我震动的不是什么隐藏功能,而是一个听起来毫不起眼的事实:

Claude Code搜索代码用的是ripgrep。

ripgrep——就是个一个命令行文本搜索工具。没有向量数据库,没有语义检索,没有Embedding,没有RAG。就是grep的高性能版本,在文件里做纯文本匹配。

2026年最火的AI编程工具。年化收入是OpenAI同类产品Codex的2.5倍。背后是业界最顶尖的模型团队之一。

它搜代码用grep,就这??

但如果你仔细想想,它揭示的信息量极大。

过去两年,AI应用层最热的叙事是什么?RAG。每个做AI工具的公司都在讲”我们用了多先进的检索增强生成技术”,向量数据库赛道融资几十亿美金,Embedding模型版本号刷得比iPhone还快。整个行业都在暗示一件事:把信息喂给大模型的方式,必须足够”智能”才行。

然后Anthropic用实际的工程选择告诉你:不需要。

确定性工具做确定性的事。grep搜出来的东西是确定的——你搜”getUserById”,它就给你所有包含这个字符串的文件和行号。没有幻觉风险,没有语义漂移,没有”大概相关”。而大模型在拿到这些确定性结果之后,负责做它擅长的事——理解上下文、推理意图、生成代码。

技术的先进性,从来不等于工程的正确性。

Claude Code的整个架构都在贯彻这个原则。React + Ink写终端UI,Commander.js解析命令行参数,Zod做运行时类型校验——清一色的成熟、无聊、”没什么好写博客的”技术选型。51万行代码里,你找不到任何一个”为了炫技而引入的依赖”。

这对满屏”我们用了最新的XX技术”的AI创业圈来说,简直是一记闷棍。

51万行代码里,最精密的部分不是AI调用

读完源码分析之后我注意到第二个反直觉的事实:Claude Code里工程复杂度最高的模块,不是调用Claude模型的部分,而是权限检查上下文压缩

权限系统是四层纵深防御。第一层做静态文本匹配,正则表达式扫描危险命令——而且精细到什么程度呢?源码里有个stripSafeRedirections函数,在去除> /dev/null重定向时,必须确保正则表达式有尾部边界(?=\s|$)。因为如果没有这个边界,> /dev/nullo会匹配/dev/null前缀然后被剥离,安全检查就看不到重定向了。一个正则少了几个字符,就是一个安全漏洞。

第二层用tree-sitter解析Bash命令的AST,做语义级分析。第三层是基于LLM的意图判断。第四层才是用户确认。

上下文压缩更有意思。Claude Code在每次调用模型之前,要走一个五步预处理流水线:Snip → 微压缩 → 上下文折叠 → 自动压缩 → 组装请求。这五步之间有精心设计的依赖关系——上下文折叠刻意放在自动压缩之前,因为如果折叠就能把token数降到阈值以下,后面的重压缩就不用触发,保留了更细粒度的信息。

而且有一个架构约束值得所有做Agent的人注意——CLAUDE.md配置文件有四层加载层级,在每次会话开始时加载,在每次API请求中都会出现,不受压缩影响。这意味着CLAUDE.md是唯一不会被上下文窗口吞掉的内容。所以官方文档建议”把持久规则放在CLAUDE.md里”,这是一个工程硬约束。

看到这里你应该能感受到了:Claude Code的核心竞争力,好像不仅不在于它调用了多牛的模型,而在于它给模型套上了一副多精密的缰绳。

有人给这个方向起了个名字,叫Harness Engineering——缰绳工程。

缰绳工程——被低估的战场

“缰绳”这个词很精准。

AI Agent本质上就是一匹烈马。模型的能力是马的力量,但力量不等于生产力。一匹没有缰绳的烈马只会在旷野上乱跑——它可能跑得极快,但不会帮你犁地。

Claude Code的51万行代码,绝大部分都在做”缰绳”

流式工具执行器在模型还没输出完的时候,就开始并行执行已经确定的工具调用——这不是AI能力,这是工程优化,但它直接决定了用户感知的延迟。

记忆系统用了一个”自愈式”三层架构:顶层是一个轻量级索引文件MEMORY.md,每行约150个字符,只存指针不存数据;中间层是按主题分的知识文件,按需加载;底层是原始对话记录,永远不会被完整读回上下文,只会被grep特定关键词。这套设计把”AI什么时候该记住什么”变成了一个精确的工程问题,而不是扔给模型一个巨大的上下文窗口然后祈祷它能找到需要的东西。

遥测系统会记录用户是否在终端里爆过粗口,以及连续输入”continue”的频率——后者被源码注释标注为”烦躁行为指标”。Anthropic在收集用户的情绪数据,把摩擦感量化成可优化的信号。

这些东西没有一个会出现在模型评测的跑分榜上。但它们加在一起,就是Claude Code从”一个调用API的壳”变成”一个好用到让人愿意付钱的产品”的全部秘密。

模型是引擎,缰绳才是产品。

这句话对整个AI应用层创业圈都适用。

过去两年,太多人把赌注押在”等更强的模型出来我的产品就好用了”上。Claude Code的源码证明了恰恰相反——Anthropic自己拥有业界最强的模型之一,但他们仍然花了51万行代码来做”模型之外的一切”。

隐藏功能:Anthropic的野心

源码里泄露的未发布功能列表很长,但有几个值得单独聊。

KAIROS——代号”永远在线的Claude“。这不是一个记忆增强功能,这是一个常驻后台进程。它能在你关掉终端之后继续运行,在不同会话之间保持记忆,订阅GitHub webhook等外部信号,甚至主动发起任务。源码里有一个”Nightly Dreaming”机制——在夜间自动启动记忆整理进程,清除冗余信息,巩固重要上下文。灵感来自人类睡眠时的记忆巩固,该说不说,这个机制还挺有意思的。

Undercover Mode——当Anthropic员工用Claude Code给开源项目贡献代码时,这个模式会自动激活,抹除提交记录中所有AI痕迹。系统提示词里写得很直白:”你正在执行卧底任务……不要暴露身份。”默认开启,无法手动关闭,只有确认当前仓库在17个内部私有仓库白名单中时才会关闭。

这个功能的存在本身就很有意思。它说明Anthropic内部已经在日常使用AI写代码贡献开源——而且他们选择不公开这一点。你可以从很多角度解读这件事,但至少它证明了一个判断:AI辅助编程已经不是”实验性的尝试”,而是顶级AI公司自己的标准工作流。

反蒸馏防线——源码显示Claude Code内置了三层机制来防止竞争对手通过API调用窃取模型能力:注入虚假工具定义来污染训练数据、用加密签名遮蔽中间推理过程、以及专用的通信协议格式。这在过去只是传闻,现在有了代码级的实锤。

源码泄了,护城河还在吗?

这是最关键的问题。

我觉得代码层的护城河被削弱了,但核心护城河纹丝未动。

被削弱的部分很明确——权限模型的具体实现、工具架构的设计逻辑、遥测埋点的设计思路、KAIROS的远程控制方案——这些工程细节现在全世界都能看到了。竞争对手可以跳过摸索阶段,直接站在Anthropic的肩膀上。最应该感到压力的可能是Cursor——Claude Code的架构蓝图已经在那了,二次开发的洪水很快就会来。

但没有泄露的东西更重要:模型权重、训练数据、内部评估框架、以及Anthropic在安全对齐上的研究成果——这些一个都没有出来。而这些才是Claude Code真正好用的原因。你可以一比一复刻Claude Code的每一行代码,但如果背后不是Claude模型在驱动,出来的东西就是形似神不似。

只是知道图纸,特斯拉就算全面开源,也没有人能做第二个特斯拉。

不过这件事对Anthropic真正的伤害,可能不在技术层面,而在信任层面

你号称业内最重视安全的公司,一周之内搞了两次信息泄露。发布流程都管不好的公司,你让企业客户怎么放心把核心代码交给你?你让投资人怎么相信你的知识产权管控能力?

Anthropic如果要IPO,它至少得让市场相信三件事:产品领先、组织稳定、资产安全。第一点它确实做到了。后两点,这一周的表现不太能让人信服。

一堂价值数十亿美金的公开课

最后说一个我个人最大的感受。

这次泄露的本质,是AI Agent行业的第一次大规模”开卷考试”。在此之前,所有AI编程工具都是黑箱——你只知道它好用或不好用,但不知道它为什么好用。现在,全行业第一次能看到一个顶级产品的完整内脏。

而这个内脏告诉我们的最重要一件事是:

AI Agent产品的技术含量,被严重错配了。

行业把太多注意力放在了模型能力上,太少注意力放在了如何驾驭模型上。这就像整个汽车行业都在讨论发动机马力,冰箱彩电大沙发,但忽略了底盘、变速箱、悬挂系统——恰恰是后面这些东西,决定了这辆车开起来到底稳不稳、快不快、安不安全。

Claude Code用51万行代码证明了:好的AI产品,模型只是冰山露出水面的那一角。水面下那九成的工程量,才是真正的战场。

对于还在追跑分、追参数量、追”谁家模型又刷新了SOTA”的从业者来说,也许是时候换一个问题了

不是”哪个模型更强”,而是”谁的缰绳更好”。