这两天,Claude Code的源码在网上传得飞起。

谁都没想到,程序员的一次疏漏,就把核心商业资产暴露在了全世界的面前。

在好奇心驱使下,我也忍不住去看了看,你别说,发现了几个小秘密,还真有点意思。

01

用户情绪失控? 赶紧用正则判断一下!

你以为一个顶级 AI 产品,是怎么理解用户情绪的?

大模型?情感分析?多模态推理?

不。

是一行正则表达式!

在userPromptKeywords.ts 中,有这么一段:

}code>

看到其中的正则表达式没有?也就是说,如果你骂它:

“This shit is broken again.” “Wtf”

它是能“听懂”的,但你要是来一句:

“这破玩意怎么又坏了?”

不好意思,它一脸懵。

用中文它可听不懂,“英语好,得学啊!”

不过更有意思的是,它检测到你情绪崩溃之后,并不会“哄你”,不会变温柔,不会道歉三连,也不会进入什么“安抚模式”。

它只是默默地把这件事记下来:“嗯,这个用户刚刚骂人了。”

然后用于内部统计,比如:有多少用户在使用过程中爆粗口,哪些场景最容易让人抓狂。

既然是这样,就不需要那么精确了,一行正则就行了。

这段代码背后的故事可能是这样的:

经理:老板想统计下用户在使用Cluade Code时,心情沮丧的占多大比例,能做不?

实习生:可以做。

经理:今天下午能上线不?

实习生:可以,我用一行正则表达式搞定。

02

长达5594行的文件!

我在IBM的时候遇到了一个神奇的项目,Web界面很漂亮,打开代码一看: 一个历史悠久,长达5000行的JSP。

那一刻我就觉得,这已经是“屎山艺术”的巅峰了。

没想到啊,这次在 Claude Code 里,又看到了熟悉的感觉:一个 5594 行的 TypeScript 文件。

打开网易新闻 查看精彩图片

用Claude Code分析一下这个Claude Code文件,结果如下:

打开网易新闻 查看精彩图片

其中一个行数就长达3170行,占了整个文件的57%。

打开网易新闻 查看精彩图片

当然,公平地说一句:代码本身不差,注释挺清晰,类型也很规范。

问题不在“写得烂”,而在:结构已经开始失控了。

它很可能是快速迭代下的产物,你几乎可以还原它的成长路径:

1.一开始:结构清晰、模块优雅

2. 然后,加一个 subtype

3. 再加一个subtype

4. 时间来不及了,再加一个subtype吧

往一个现成的函数里加逻辑,永远是最省事的,没有程序员能抵抗这种诱惑。

03

有人想“蒸馏”我? 给丫投毒!

在 claude.ts 文件的 301–313 行,有一个叫 ANTI_DISTILLATION_CC 的开关。

一旦打开,Claude Code 在调用 API 时会带上一个字段:anti_distillation: ['fake_tools']

  }

这个字段的作用是:告诉服务器在系统提示词(system prompt)中偷偷加入一些假的工具(fake tools)定义。

如果有人在抓 API 流量,做数据蒸馏训练,这些假工具会混进训练数据,模型会学到一堆“并不存在的能力”,最终效果肯定是越学越歪。

更狠的是,在betas.ts中,还有一套机制:服务端文本压缩 + 签名验证。

Claude会把对话压缩成摘要,签名后传给客户端,下一轮对话时客户端把签名回传,服务端再恢复原文。

结果就是你抓到了API响应,但只是摘要,关键内容拿不到。

这样做有两个好处,一是节省Token,其次还是防止蒸馏。

04

嘿嘿,我是卧底!

这个卧底功能仅对Anthropic的员工。

在内部项目里(白名单那种),Claude Code非常“坦诚”,commit message 里会写上:

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

PR 描述中会带:

Generated with Claude Code (93% 3-shotted by claude-opus-4-5)

大家一看就知道:哦,这是我们家AI写的。

但员工一旦切到外部开源项目,画风突变,直接进入“卧底模式”。

所有 commit、PR 标题、描述,都要严格遵守一套规则:

  • 不能提任何内部模型代号

  • 不能出现未发布版本号

  • 不能暴露内部仓库信息

  • 甚至连 “Claude Code” 这几个字都不能出现

  • 更不用说 Co-Authored-By 这种 AI 署名了

简单说就是一句话:不允许留下任何“这是 AI 写的”痕迹。

于是就出现了一个很微妙的画面:

一个 Anthropic 员工,用Claude Code在 GitHub 上提交代码,写 PR、改 bug、过 review,看起来,完全就是一个普通人类开发者。

如果只是担心模型细节泄露,这其实很好理解。

但现在是连“AI参与过”这件事本身,也被一起抹掉了,这就不只是“保护机密”了,而更像是让 AI 安静地混在人群里干活。

05

一点儿感想

翻完这堆代码,我最大的感受就是:

不管是任何产品,不管外表看起来有多么光鲜亮丽,内部都有可能混乱不堪啊。

不管底层模型多牛,到了应用层,该用正则还是用正则,该有屎山还是有屎山。

AI产品本质上还是软件工程。