看了Claude Code泄露的源码,发现4个意想不到的秘密......
这两天Claude Code的源码在网上传得飞起。谁都没想到程序员的一次疏漏就把核心商业资产暴露在了全世界的面前。在好奇心驱使下我也忍不住去看了看你别说发现了几个小秘密还真有点意思。01用户情绪失控 赶紧用正则判断一下你以为一个顶级 AI 产品是怎么理解用户情绪的大模型情感分析多模态推理不。是一行正则表达式在userPromptKeywords.ts 中有这么一段export function matchesNegativeKeyword(input: string): boolean { const lowerInput input.toLowerCase() const negativePattern /\b(wtf|wth|ffs|omfg|shit(ty|tiest)?|dumbass|horrible|awful|piss(ed|ing)? off|piece of (shit|crap|junk)|what the (fuck|hell)|fucking? (broken|useless|terrible|awful|horrible)|fuck you|screw (this|you)|so frustrating|this sucks|damn it)\b/ return negativePattern.test(lowerInput)}看到其中的正则表达式没有也就是说如果你骂它“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. 然后加一个 subtype3. 再加一个subtype4. 时间来不及了再加一个subtype吧……往一个现成的函数里加逻辑永远是最省事的没有程序员能抵抗这种诱惑。03有人想“蒸馏”我 给丫投毒在 claude.ts 文件的 301–313 行有一个叫 ANTI_DISTILLATION_CC 的开关。一旦打开Claude Code 在调用 API 时会带上一个字段anti_distillation: [fake_tools]// Anti-distillation: send fake_tools opt-in for 1P CLI only if ( feature(ANTI_DISTILLATION_CC) ? process.env.CLAUDE_CODE_ENTRYPOINT cli shouldIncludeFirstPartyOnlyBetas() getFeatureValue_CACHED_MAY_BE_STALE( tengu_anti_distill_fake_tool_injection, false, ) : false ) { result.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 noreplyanthropic.comPR 描述中会带 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产品本质上还是软件工程。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2488491.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!