MisoTech Logo
MisoTech<Decode />
首页关于服务项目博客联系隐私政策免责声明
MisoTech Logo
MisoTech

Decode the Stack

专业技术解决方案和见解,帮助您解码技术栈。

快速链接

  • 首页
  • 关于
  • 项目
  • 博客
  • 联系
  • 隐私政策
  • 免责声明

联系

Email: [email protected]

地址: San Francisco, CA

关注我

© 2026 MisoTech. 保留所有权利。

使用 Next.js 和 Tailwind CSS 制作,充满❤️

Claude Code源码泄露AI编程工具

Claude Code 源码泄露——Anthropic 藏了哪些秘密?

2026年04月01日
Archer
13 min read
Claude Code 源码泄露——Anthropic 藏了哪些秘密?

Anthropic的AI编程工具Claude Code因npm包配置失误,意外泄露了51万行TypeScript源码。本文从泄露事件入手,深度解析源码中揭示的六大工程核心:分层Prompt架构、五层安全锁、精细化的缓存成本优化、高效的Fork并行机制、数据驱动的上下文压缩策略以及低层反篡改机制。这些发现揭示了Anthropic在“如何用好模型”上的深厚工程积累。

工具信息

官网
https://www.npmjs.com/package/@anthropic-ai/claude-code
定价
Anthropic Claude API 付费订阅 (Claude Code为前端工具,调用API产生费用)

评分

综合评分4.5/5
易用性4.0/5
功能强度5.0/5

优点

  • 1. 工程实践透明化:泄露事件为开发者提供了一个极难得的、近距离学习顶级AI公司如何工程化地封装和调用大模型的案例。
  • 2. 设计模式极具参考价值:多Agent编排(Fork)、精细化安全校验、成本敏感的缓存管理、数据驱动的熔断器等设计模式,对国内Agent开发者有直接的启发意义。
  • 3. 揭示真实挑战:源码中的工程细节(如压缩失败熔断器)表明,Anthropic也在应对上下文管理、成本控制等实际挑战,其解决方案基于真实生产数据。

缺点

  • 1. 核心模型未受影响:泄露的是CLI工具的前端代码,并非Claude的核心模型权重或训练后端,无法用于获取免费算力或绕过付费。
  • 2. 事件本身是安全事故:因.npmignore配置疏忽导致的生产环境泄露,属于低级但影响巨大的安全失误。

对比表

点击表头可排序
工具
安全防护层次
成本优化机制
架构复杂度
源码可见性
核心创新点
主流SaaS AI编码助手
主流SaaS AI编码助手官网
由服务端统一管理,用户无感知
服务端统一优化用户无感知
4.0/5
闭源
深度集成开发环境,提供实时补全与重构建议
典型开源AI编程助手
典型开源AI编程助手官网
基础命令白名单或简单正则过滤
无专门缓存优化可能存在上下文溢出
3.0/5
开源
通常依赖模型基础能力,工程化封装程度较浅
Claude Code (泄露版)
Claude Code (泄露版)官网
5层纵深防御,含危险命令黑名单、路径注入检测、Zsh特性专项拦截等
精细缓存监控Diff追踪熔断器
5.0/5
意外泄露 (51万行)已归档至GitHub
多Agent Fork并行、基于真实数据的压缩熔断、低层协议栈反篡改签名
高亮单元格表示该列中的最佳值。

泄露事件简述

2026年3月31,Anthropic 的编程助手 Claude Code 爆出了史诗级泄露。一个本该被编译混淆的 npm 包,居然忘删了 source map 文件。结果?1902 个源文件、29MB 的完整 TypeScript 源码,被一键还原了出来。

注意:不是反编译,不是猜测,是原文。 变量名、注释、函数结构,一字不差。

那我们从中到底能学到什么?我花了几个小时翻了一遍,挑出 6 个让我"哦!"出声的发现。

Image

发现一:Claude Code 最核心的秘密——System Prompt

惊人事实

大家都知道 Claude Code 很厉害,但很少有人想过:它到底跟 Claude API 说了什么?

翻开源码,main.tsx 这个文件有 785KB——你没看错,一个文件快 1MB。里面藏着整个 system prompt 的构建逻辑。虽然没有直接暴露 prompt 原文(那个是在编译时注入的),但代码暴露了 prompt 的架构设计。

关键发现:buildEffectiveSystemPrompt 函数的优先级链:

0. Override(最高优先级,比如 loop 模式) 1. Coordinator prompt(多Agent协调模式) 2. Agent prompt(自定义agent定义) 3. Custom system prompt(用户通过 --system-prompt 指定) 4. Default(默认的 Claude Code prompt) + Append(最后追加上去的补充prompt)

就像给员工写工作手册,第 0 条是老板的口头指令(最高优先级),第 4 条是公司规章制度,中间还可以插各种补充。Anthropic 把"如何跟 AI 说人话"这件事做到了极其精细的分层。

而且每次对话开始前,它会:

  • 跑一遍 git status,把当前分支、最近5条 commit 塞进 context
  • 扫描目录下所有 CLAUDE.md 文件(这是用户自定义的项目规则)
  • 注入当前日期

所以 Claude Code 知道你在哪个分支、改了什么文件、项目规则是什么——这不是魔法,是工程。

发现二:防"作死"的 500KB 安全锁

惊人事实

BashTool(命令执行工具)一个文件夹 500KB,其中:

  • bashSecurity.ts 100KB — 专门识别危险命令
  • bashPermissions.ts 96KB — 权限审批全流程
  • readOnlyValidation.ts 67KB — 只读命令白名单

光 bashSecurity.ts 就有 2585 行代码。它检查的东西包括但不限于:

✘ $() 命令替换 —— 黑客最爱 ✘ ${} 参数替换 —— 可以读取环境变量 ✘ <() 进程替换 —— 可以执行任意命令 ✘ zmodload —— Zsh 的万能后门,加载模块后可以绕过所有安全检查 ✘ =cmd —— Zsh 的 equals 扩展,=curl evil.com 会直接找到 curl 的绝对路径执行

最后那条特别有意思:如果你写 rm -rf =evil,正常解析器会认为第一个词是 =evil,不匹配 rm,安全检查就放行了。但 Zsh 会把它展开成 /usr/bin/rm -rf evil——安全检查形同虚设。

Anthropic 专门针对这种 Zsh 特性写了检测规则。

还有个叫 pathValidation.ts 的文件(43KB),专门防止命令里藏路径注入攻击。

就像你给 AI 一个终端,就像给一个陌生人一把钥匙。Anthropic 花了 500KB 代码做了一件事——让这个陌生人只能开你允许的门,而且用了至少 5 层锁。 国内做 agent 的厂商,安全层普遍只有一两层。

发现三:Prompt Cache 命中率优化——省出来的都是利润

惊人事实

promptCacheBreakDetection.ts(26KB)这个文件暴露了一个令人震惊的事实:Anthropic 在用 diff 算法追踪每一次 prompt 的变化。

每次 API 调用,它会:

  1. 1. 对 system prompt 计算一个 hash
  1. 2. 对每个工具的 schema 计算一个 hash
  1. 3. 把 beta header 列表排序后对比
  1. 4. 甚至追踪 autoModeActive、isUsingOverage 这些布尔值的状态翻转

如果发现 cache 被意外打破,它会记录一个详细的事件,包含:

  • 哪个工具的描述变了 - 哪个 beta header 被加/删了 - system prompt 的 diff(用标准 diff 算法生成)

还有一个 fingerprint.ts 文件,用 SHA256 对用户消息的特定位置字符(第4、7、20个字符)+ 固定盐值 + 版本号 做指纹,发给服务器验证客户端是不是正版。

大模型的 API 调用是按 token 收费的,System prompt 往往几万个 token,如果每次调用都要重新发送,光 prompt 费用就是天文数字。Anthropic 通过 prompt cache 技术,让重复部分只需付费一次。

但 cache 很脆弱,工具列表变了、beta header 变了、prompt 里多了个空格,cache 就碎了。

所以 Anthropic 写了一个专门的监控系统,精确追踪到底是什么变化打碎了 cache,然后修掉它。这不是小聪明,是真金白银。

代码里还写着:AgentTool 的工具描述占了全 fleet cache token 的 10.2%,因为 MCP 工具动态加载会频繁改变列表,每次都打碎 cache。

发现四:Fork 机制——AI 的分身术

惊人事实

forkSubagent.ts 暴露了一个非常高级的设计——Fork 机制。

普通的 subagent(子 agent)是从零开始的,什么都不继承。但 Fork 不同:

Fork 的子进程会继承父进程的完整对话上下文和 system prompt,共享 prompt cache。

更巧妙的是,为了让所有 fork 共享 cache,Anthropic 用了一个 placeholder 技巧:

// 所有 tool_result 都用同一个占位文本const FORK_PLACEHOLDER_RESULT = 'Fork started — processing in background'// 只有最后一个文本块是不同的(每个 fork 的具体指令)

这样,多个并行 fork 的 API 请求前缀几乎完全相同,缓存命中率最大化。

给 fork 子进程的指令也非常有意思,第一条规则就是:

"你是 fork 出来的工人进程,你不是主 agent。你的 system prompt 会让你'默认 fork'——忽略它,那是给父进程的。你已经是 fork 了,不要再生 fork。"

10 条铁律,包括:

  • 不要聊天,不要提问
  • 不要在工具调用之间输出文字
  • 严格待在指令范围内
  • 报告必须以 "Scope:" 开头
  • 保持在 500 字以内

想象一下,你是一个项目经理(主 agent),你把一个大任务拆成 3 个小任务,分给 3 个组员。普通的分法是给每个人写一封邮件从头解释背景——浪费。

Fork 的做法是直接把你脑子里的上下文"复制粘贴"给每个组员,只加一句"你去干这个"。而且为了避免组员又去招人(递归 fork),直接在指令第一条写死"你不准再招人"。这就是 Anthropic 的"AI 分身术"——不是魔法,是工程。

发现五:对话压缩——AI 怎么"遗忘"

惊人事实

大模型的上下文窗口有限,对话一长就会爆。Claude Code 的解决方案叫 compact(压缩),相关代码分散在多个文件里:

autoCompact.ts 揭示了关键参数:

  • AUTOCOMPACT_BUFFER_TOKENS = 13,000 — 距离窗口上限还有 13K token 时自动触发压缩
  • WARNING_THRESHOLD = 20,000 — 还剩 20K 时开始警告
  • ERROR_THRESHOLD = 20,000 — 还剩 20K 时报错
  • MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3 — 连续压缩失败 3 次就放弃(熔断器)

最后那条特别有意思:代码注释里写了真实数据——

BQ 2026-03-10: 1,279 个会话出现了 50+ 次连续压缩失败(最高 3,272 次),每天浪费约 25 万次 API 调用。

所以他们加了熔断器:连续失败 3 次就不重试了。

还有 microCompact(微压缩),专门处理工具返回结果的精简:

  • 超过 2000 token 的图片会被裁剪
  • 文件读取、命令执行、搜索等工具的返回值会被压缩
  • 用 [Old tool result content cleared] 替换旧内容

AI 的记忆就像一个固定大小的笔记本,写到快满的时候怎么办?Anthropic 的做法不是"翻页重来",而是分层处理:先微压缩(把工具返回的大段输出精简),再大压缩(让 AI 自己总结前面的对话),实在不行就熔断(别反复试了,省点钱)。

最最让我震撼的是那组数据——1279 个会话反复尝试压缩几千次,一天烧掉 25 万次 API 调用。

说明即使是 Anthropic 自己,也会在工程上犯错,但他们有数据驱动修复的文化。

发现六:反篡改机制——你怎么证明"我是正版"

惊人事实

fingerprint.ts 和 system.ts 暴露了一个反篡改体系:

每次 API 请求,Claude Code 会在 HTTP header 里带上:

x-anthropic-billing-header: cc_version=2.1.87.abc; cc_entrypoint=cli; cch=00000;

cch=00000 看起来是占位符,实际上:

  • 请求发送前,Bun 的原生 HTTP 栈(用 Zig 语言写的)会找到这个占位符
  • 把 00000 原地替换成客户端的认证哈希
  • 服务器端验证这个哈希,确认请求确实来自正版 Claude Code

为什么要用占位符?因为长度不变,不需要重新计算 Content-Length,省掉了内存重新分配。

Claude Code 分免费版和付费版,怎么防止有人改改客户端代码,绕过付费?他们在每次请求里藏了一个"数字签名"。签名的计算不在 JavaScript 里——而是在更低层的网络协议栈里(用 Zig 语言写的),你改不了。

每次发请求,自动算好签名塞进去,服务器一看就知道是不是正版。这种"在你看不见的地方做验证"的思路,值得所有做 SaaS 的产品学习。

模型不是护城河,工程才是

看完这 29MB 的源码,最大的感受不是"Anthropic 的模型多强",而是"Anthropic 的工程多细"。

  • 500KB 的安全锁,防的是 AI 执行危险命令
  • 26KB 的缓存监控,省的是真金白银
  • 熔断器设计,止损用的是真实数据
  • Fork 机制,并行效率靠的是占位符技巧
Image

这些都不是"模型能力"的问题,而是"怎么用好模型"的问题。

国内大模型厂商在模型能力上差距在缩小,但在 agent 工程化上,这份泄露的代码告诉我们,差距还很大!而且这个差距不是靠更大的算力能追上的。

但好消息是:现在这门课的教材,免费公开了。

返回博客列表

目录

  • 泄露事件简述
  • 发现一:Claude Code 最核心的秘密——System Prompt
  • 惊人事实
  • 发现二:防"作死"的 500KB 安全锁
  • 惊人事实
  • 发现三:Prompt Cache 命中率优化——省出来的都是利润
  • 惊人事实
  • 发现四:Fork 机制——AI 的分身术
  • 惊人事实
  • 发现五:对话压缩——AI 怎么"遗忘"
  • 惊人事实
  • 发现六:反篡改机制——你怎么证明"我是正版"
  • 惊人事实
  • 模型不是护城河,工程才是
  • 泄露事件简述
  • 发现一:Claude Code 最核心的秘密——System Prompt
  • 惊人事实
  • 发现二:防"作死"的 500KB 安全锁
  • 惊人事实
  • 发现三:Prompt Cache 命中率优化——省出来的都是利润
  • 惊人事实
  • 发现四:Fork 机制——AI 的分身术
  • 惊人事实
  • 发现五:对话压缩——AI 怎么"遗忘"
  • 惊人事实
  • 发现六:反篡改机制——你怎么证明"我是正版"
  • 惊人事实
  • 模型不是护城河,工程才是

目录

  • 泄露事件简述
  • 发现一:Claude Code 最核心的秘密——System Prompt
  • 惊人事实
  • 发现二:防"作死"的 500KB 安全锁
  • 惊人事实
  • 发现三:Prompt Cache 命中率优化——省出来的都是利润
  • 惊人事实
  • 发现四:Fork 机制——AI 的分身术
  • 惊人事实
  • 发现五:对话压缩——AI 怎么"遗忘"
  • 惊人事实
  • 发现六:反篡改机制——你怎么证明"我是正版"
  • 惊人事实
  • 模型不是护城河,工程才是
  • 泄露事件简述
  • 发现一:Claude Code 最核心的秘密——System Prompt
  • 惊人事实
  • 发现二:防"作死"的 500KB 安全锁
  • 惊人事实
  • 发现三:Prompt Cache 命中率优化——省出来的都是利润
  • 惊人事实
  • 发现四:Fork 机制——AI 的分身术
  • 惊人事实
  • 发现五:对话压缩——AI 怎么"遗忘"
  • 惊人事实
  • 发现六:反篡改机制——你怎么证明"我是正版"
  • 惊人事实
  • 模型不是护城河,工程才是

相关内容

2026年了,给你的终端装上一颗“国产最强大脑”:Claude Code + GLM-4.7 实战指南

本文是一篇关于构建低成本、高性能 AI Agent 的实战指南。作者详细介绍了如何通过修改配置文件,将 Anthropic 的 Claude Code 终端框架("豪车车身")与国产智谱 GLM-4.7 模型("核动力引擎")结合 [web:6][web:11]。文章提供了从环境安装、彩票模拟器脚本编写,到挂载 MCP(联网、阅读、视频理解)和 Skills(前端优化)的全流程保姆级教程,旨在帮助...

共同标签:AI编程工具

2026/1/5
别再被配置劝退了!3种路子搞定AI编程,小白大神都能用

本文针对AI编程环境配置难题,深入评测了2025年三种主流方案:集成IDE(Trae/Cursor)、VS Code插件(Roo Code+DeepSeek)及命令行工具(Kimi CLI/GLM-4.6)。重点推荐字节跳动出品的免费神器 Trae,帮助新手解决环境配置痛点。

共同标签:AI编程工具

2025/12/18
AI开发变现:不花一分钱!5天业余时间靠CodeBuddy+GPT5开发MCP服务赚¥1000

本文分享了作者如何在5天业余时间内,利用CodeBuddy、GPT-5等AI工具,零成本开发MCP服务并成功变现1000元的实战经验,并对比了不同AI编程工具的使用心得。

共同标签:AI编程工具

2025/8/15
代码能跑不算完:AI写的代码,讲不清3个问题就别合并

针对使用 AI 编程时“任务成功但理解失败”的空心化问题,作者基于 Anthropic 的理解验证思路与自身四个真实项目的迭代实践,提炼出一套极简实操工作流:通过剖析理解流失的三大漏点(会话内/会话间/未落纸),确立“任务完成”与“理解完成”两条并行验收线,利用固定三问复述与 Harness/CLAUDE.md 沉淀,把技术认知从脑内传话筒升级为机器可驻留的环境资产。

同类内容

2026/10/1

加载评论中…