导语 2026年3月31日,AI圈最炸的事件莫过于Claude Code源代码「被动」开源。
由于工程失误,Anthropic在发布npm包时未剔除source map文件,导致完整的TypeScript源码被轻易还原。短短几小时内,代码被下载、镜像,并在GitHub上迅速扩散。
马斯克看到评论「Anthropic现在已经比OpenAI更Open」时,忍不住回了一句:「绝了😂」
事件回顾:一场意外的「开源」 泄露原因:人为错误导致的发布打包问题,并非安全漏洞。
Anthropic官方回应:「今天早些时候,一个Claude Code版本包含了部分内部源代码。没有涉及或暴露任何敏感的客户数据或凭证。我们正在采取措施防止此类事件再次发生。」
Claude Code之父Boris Cherny在X上简单表示:「就是开发者的错误。」
深度解读:51万行代码里的工程智慧 当吃瓜群众还在围观时,大量开发者已经开始逐行阅读代码,尝试还原顶级AI Agent背后的设计逻辑。
1. 系统提示词:行为控制的范本 完整的system prompt位于constants/prompts.ts,是整个代码库中最有价值的文件。它清晰展示了Anthropic如何在生产级编码Agent中精确控制Claude的行为。
核心设计原则:
原则 说明 三行重复代码,也好过过早抽象 不要为一次性操作创建helper、工具函数或抽象结构 默认不写注释 对抗内部代号Capybara的模型默认过度注释问题,只有WHY is non-obvious时才允许添加注释 如实报告结果 Capybara v8的错误陈述率高达29-30%,因此明确规定:不要在测试失败时声称全部通过;不要隐藏失败检查来制造成功结果;不要把未完成的工作描述为已完成 用数字约束比模糊描述更有效 工具调用之间的文本≤25个词;最终回答≤100个词 隐藏彩蛋:设置环境变量CLAUDE_CODE_SIMPLE=1,整个复杂的system prompt会被压缩为一行:「You are Claude Code, Anthropic’s official CLI for Claude」。
2. 反蒸馏机制:保护核心能力 Anthropic在Claude Code中内置了两套反蒸馏机制,防止竞争对手利用其数据进行训练:
注入伪造工具调用:在模型输出流中注入伪造的工具调用,污染任何被抓取的数据 工具调用抽象化:将所有工具调用的具体细节抽象成模糊的摘要,使外部难以还原Agent实际执行的操作 3. 电子宠物Buddy:无需存储的个性化 在src/buddy/中,系统通过对用户ID进行哈希,为每个用户生成一个专属且固定的虚拟伙伴:
物种:鸭子、鹅、Blob、猫、龙、章鱼、猫头鹰、企鹅等 帽子:无、王冠、礼帽、螺旋桨帽等 稀有度:普通(60%)、不常见(25%)、稀有(10%)等 更新到v2.1.89后,输入/buddy即可启用——即使配置了其它模型也可成功启用。
4. Prompt缓存:极致精细化管理 代码库中最复杂的非UI代码之一是promptCacheBreakDetection.ts。
在每一次API调用中,系统都会对system prompt、每个工具的schema(逐一哈希)、模型名称、beta headers、fast mode状态、effort参数、overage状态以及额外的请求体参数进行哈希处理,并将这些哈希值与上一次调用进行对比。
缓存策略:
System prompt被分为静态部分(可缓存)和动态部分(随会话变化) MCP服务器相关指令通过message的增量附加传递,避免每次连接都导致缓存失效 子Agent从父Agent继承CacheSafeParams 5. Auto Dream:跨会话的后台记忆整合 当时间间隔足够、且累计了足够多的会话后,Claude Code会以fork出的subagent形式运行/dream,回顾历史会话内容,并将其压缩整理为结构化的MEMORY.md文件。
...