最懂AI安全的公司,把自己的源码晒了三次
你听说过一种人,特别擅长给别人讲防火知识,自己家烧了三次。
Anthropic大概就是这种感觉。
这家公司的品牌核心就四个字:AI安全。他们家的AI叫Claude,官网最显眼的位置写着”负责任地开发AI造福人类”,PPT里这句话的出镜频率比产品本身还高。
然后在今年3月31日,他们发布Claude Code 2.1.88版本时,顺手把一个 60MB的source map文件打包进了npm发布包。
1906个源文件,51万行代码,全部可读。
这是第三次了。
用一分钟说清楚source map是什么
它本来是给开发者调试用的,把压缩混淆后的代码还原成原始源码。
打个比方:你把一份合同缩印成缩略图,source map就是那张放大镜,能把缩略图还原成原件。
这东西只该存在于开发环境,绝对不该打包进发布产品里。
就像送人一盒月饼,没道理把后厨监控录像一并附上。
第一次在2025年2月,Claude Code刚发布,base64编码的source map藏在文件末尾,被开发者用Sublime Text打开时撞见了。Anthropic推了个修复版,消息圈了一圈就散了。
第二次是2026年3月7日,完整CLI文件意外打包进npm包。
第三次就是这次,59.8MB,独立source map,最彻底的一次。
三次,同一类失误,没人根治过。
代码飞出去,全网开始做免费体检
备份仓库瞬间2万+星,有人专门建了ccleaks.com展示所有隐藏内容,开发者们分工协作,7个小时,51万行代码被扒了个底朝天。

先说好的部分。
Claude Code的整体架构,超出很多人预期。每次工具调用都要经过六级权限验证,验证通过后还有四层决策管道逐层把关。外部命令跑在独立沙箱里,上下文太长自动压缩,还能智能保留最关键的逻辑链。
社区的评价是:架构扎实,安全机制认真。这是实话,不是反讽。
然后翻到 src/cli/print.ts,画风突变——
一个函数,3000多行,12层嵌套,圈复杂度爆表。
开发者们的集体反应是:这是谁写的,他还好吗。
这种反差在大型项目里很正常。没有任何一个大型项目是整洁的,只有没被看见的代码。Claude Code这次被看见了。
他们提前做好了很多东西
泄露代码里不只有已上线的功能,还有大量被开关锁住的隐藏模块:35个编译时特性标志,120多个隐藏环境变量,200多个远程控制开关。
最出人意料的,是一个叫 Buddy的东西。
Tamagotchi风格的ASCII电子宠物,住在你的终端里。18种物种——鸭子、章鱼、水豚、蘑菇。6种稀有度,普通款60%,传奇款仅1%,还有闪光款。每个用户的宠物由账户ID唯一生成,全世界独一份。
代码时间戳显示,计划4月1日首次亮相。
没等到愚人节,跟着源码一起提前出来见人了。
除了Buddy,还有:Kairos(跨会话长期记忆,你睡觉时AI自动整理笔记)、Ultraplan(最长30分钟深度任务规划)、多Agent协调模式(并行任务效率提升3倍)、守护进程模式(像系统服务一样后台跑会话)。
泄露之前是他们的路线图,泄露之后,是所有人的路线图。
最有意思的那个功能
代码里有一个叫 Undercover Mode(隐匿模式)的东西,文件在 utils/undercover.ts。
用 USER_TYPE === 'ant'识别Anthropic员工身份。当员工用Claude Code参与公共仓库或开源项目开发时,模式触发——系统往提示词里塞一段要求:
“
不要在提交记录和PR里暴露Anthropic的内部信息,也不要表明自己是AI。
”
翻译一下就是:去开源社区贡献代码,但别说你是AI,也别说你是我们的人。
这在开发者社区引发的反应,比其他任何发现都要强烈。

开源社区有自己的规范和文化,贡献者是谁、动机是什么,从来不只是形式问题。有些项目明确排斥AI生成代码,有些社区对大公司的介入持保留态度。
这段代码按正常构建流程本应被当作死代码剔除,source map却完整保留了它的映射。它在正常使用中不对外暴露,但存在于代码库里,走过了正常的代码审查流程。
到底谁review过这段代码,应该心里有数。
顺带发现的两处细节
代码里有检测用户负面情绪的功能。不是用AI做情感分析,是最原始的正则表达式,匹配几个英文脏话关键词。
一套六级权限验证体系,配上这个。高低搭配,冷暖自知。
autoCompact.ts里有一行注释:
“
1279个会话连续失败了50次以上,最高的一个连续失败3272次,全球每天浪费约25万次API调用。
”
修复方案是设一个最大连续失败次数上限——设为3。
连续失败3272次才有人注意到,注意到了,修了。
还有一件事,跟普通用户更相关
这个工具在本地会记录你每次的工具调用——你读过的每个文件、执行过的每条命令、每次搜索结果。
有一个叫 autoDream的后台服务(尚未正式发布),会搜索这些记录,整合成MEMORY.md,然后注入到后续的提示词里,随请求一起发送出去。
功能本身有合理的产品逻辑,各家AI工具都在做类似的事,程度不同而已。
只是在这次泄露之前,你有没有被清晰告知过这件事。
Anthropic事后的表态,是核心工程师出来说:这是一次开发失误,是流程、文化或基础设施问题。
说得坦诚。
泄露发生后,GitHub上冒出数百个源码镜像,其中一个版本拿下了 10.5万星,超过了Anthropic官方仓库的9.5万星。有人把代码改写成Python,又改成Rust,继续挂在网上。
护城河是模型不是CLI,这话是对的。核心权重、训练数据、用户数据都没泄露,CLI只是个壳子。
只是这家做了三年AI安全布道的公司,把自己的源码晒了三次。其中包括一个教自己员工在外面别说自己是AI的功能。
Buddy现在还没出生。
夜雨聆风