乐于分享
好东西不私藏

从源码泄露看 Claude Code 架构:顶级 AI 编程产品,究竟藏了多少门道?

从源码泄露看 Claude Code 架构:顶级 AI 编程产品,究竟藏了多少门道?

一次意外的源码泄露,让外界第一次近距离看清:一家顶级 LLM 公司,究竟是怎么构建自己的 AI 编程产品的。
Claude Code 原本是闭源产品。
但这次泄露,让很多原本只能靠猜的东西,第一次有了工程层面的实证:
它用什么技术栈?
它怎么做多 Agent 协调?
它怎么控制 API 成本?
它又是怎么设计自己的“安全边界”?
这不是吃瓜。
这是一次非常罕见的反向产品拆解机会。
更重要的是,透过这些代码,你看到的不只是实现细节,还是一家 AI 公司在商业护城河、品牌焦虑、成本压力、产品路线之间的真实取舍。

01|Anthropic 为什么要收购 Bun?源码把答案写出来了

Claude Code 基于Bun构建。
而 Anthropic 在去年年底收购 Bun,这件事现在回头看,显然不只是“看上了一个高性能 JS 运行时”那么简单。
从泄露代码里,可以看到一个很关键的细节:
Claude Code 发出的每个 API 请求里,都带着这样一个字段:
cch=00000
但这个五个零并不会原样发出去。
在请求真正离开进程之前,Bun 的原生 HTTP 栈(Zig 编写)会把它替换成一个计算后的哈希值。服务端再校验这个哈希,确认请求是否真的来自“官方 Claude Code 二进制”。
这里最关键的一点是:
这个计算发生在 JavaScript 层之下。
也就是说:
你在 JS/TS 代码里看不到真实逻辑
你没法通过普通脚本伪造这个值
你即便逆向上层代码,也碰不到最关键的认证环节
这就是收购 Bun 的真正技术价值之一:
Anthropic 拿到了“JS 运行时之下、HTTP 传输层之内”的控制权。
这不是普通第三方运行时能给的能力。
如果你只是基于 Node、Deno 或者其他现成运行时做产品,你很难在这个层级植入这种“对上层不可见、对请求强绑定”的身份验证机制。
某种意义上说,这已经有点像 DRM 思路了。
不是为了防盗版内容,而是为了确保“只有官方客户端,才能完整、合法地调用官方能力”。
这也解释了一个问题:
为什么一些第三方 Claude 客户端,最后只能靠“session stitching”这类绕路办法勉强兼容?
因为真正的墙,根本不在 JS 里。

02|Claude Code 的多 Agent,不是代码写出来的,而是 Prompt“说出来的”

这次泄露里,一个非常有意思的点,是 Claude Code 的 Agent 协调机制。
直觉上很多人会以为:
多 Agent 协同,肯定是一堆复杂状态机、调度器、路由逻辑、if-else 决策树。
但 Claude Code 不是这么干的。
它的 coordinatorMode.ts 显示,很多“协调规则”并不是硬编码逻辑,而是直接写在system prompt里。
比如 worker agent 收到的指令里,会出现这种话:

Do not rubber-stamp weak work.You must understand findings before directing follow-up work. Never hand off understanding to another worker.

翻成白话就是:
别给低质量结果随便盖章通过
你自己必须真正理解结论
不能把“理解工作”继续甩给下一个 worker
这意味着什么?
意味着 Claude Code 的设计哲学是:
把“判断质量”“理解结果”“决定是否继续追问”这些原本可以写成代码的逻辑,交给模型本身去执行。
这跟很多工程师熟悉的“显式调度系统”很不一样。

对比来看,OpenClaw 走的是另一条路
如果拿 OpenClaw 这类系统对比,会更清晰。
OpenClaw 更偏向于:
用配置做路由
用 bindings 控制调用关系
用 workspace 做隔离
用 agent 配置描述能力边界
它的多 Agent 更像是:
不同工具,各司其职。
而 Claude Code 的多 Agent 更像是:
同一个模型,切换不同角色。
可以简单理解为两种路线:
维度
Claude Code(Prompt 协调)
OpenClaw(配置驱动)
灵活性
高,动态性强
相对低,依赖规则
可预测性
中等,依赖模型发挥
高,配置即行为
调试难度
高,偏黑箱
低,日志和规则更清晰
入门门槛
低,写 prompt 即可
中,需要理解配置体系
所以这里并不是谁“更先进”,而是谁更适合什么目标。
Claude Code 追求的是产品体验上的柔性和智能感。
OpenClaw 追求的是系统行为上的确定性和可控性。
前者更像“让模型自己当管理者”。
后者更像“把组织架构先画好,再让模型进去干活”。

03|14 个缓存破坏向量,暴露了 Claude Code 最现实的焦虑:钱

如果只看产品表面,很多人会觉得 Claude Code 最大难题是 Agent、推理、质量控制。
但从代码来看,它还有一个非常现实的核心问题:
成本。
泄露代码里有一个模块叫 promptCacheBreakDetection.ts,里面追踪了14 个缓存破坏向量,还设计了一个叫sticky latches的机制,尽量避免模式切换把缓存打碎。
甚至代码里还有一个名字很直接的函数:
DANGEROUS_uncachedSystemPromptSection()
这个命名几乎是在明说:
这一块 system prompt 太危险,不能缓存。
为什么不能缓存?
因为它太动态了。
缓存之后可能出错、串上下文、污染行为。
但问题是,只要不能缓存,就意味着每次请求都要重新付完整 token 成本。

为什么 Claude Code 会这么在意 Prompt Cache?
因为 Claude Code 不是“本地模型工具”,它背后是真金白银的 API 计费。
官方用户每月付订阅费,比如 Max 之类的套餐。
但 Anthropic 自己要承担背后的模型调用成本。
对用户来说,Claude Code 是“一个月固定价格”。
对平台来说,每一轮多出来的 token,都是真实支出。
所以 prompt cache 的意义非常直接:
相同的系统提示,第一次完整计费
后续请求复用缓存,只付增量
用户看起来体验不变
平台实际成本明显下降
这也是为什么他们会如此极端地跟踪缓存失效条件。
因为多 Agent、模式切换、工具调用,本质上都在不断破坏缓存稳定性:
你从代码补全切到主动建议
你从读文件切到执行命令
你从普通对话切到深度分析
这些都可能让原来的 prompt cache 作废。
于是 Claude Code 干了两件事:
精细追踪缓存是怎么被打碎的
尽可能用 sticky latches 把缓存“粘住”更久
这背后反映的不是单纯的技术洁癖,而是非常典型的大模型产品成本工程学。
表面上看是缓存机制。
本质上看,是在和每一次推理成本做斗争。

04|最值得玩味的两个模块:Anti-Distillation 与 Undercover Mode

如果说前面的内容主要体现工程理性,
那这两个模块体现的,就是一家 LLM 公司很真实的商业焦虑与品牌焦虑。

4.1 Anti-Distillation:护城河意识非常强,但技术手段并不牢

Claude Code 在 API 请求中,会发送类似这样的字段:
anti_distillation: [‘fake_tools’]
它的作用是什么?
当 Anthropic 服务器收到这个标记后,会在系统提示里插入一些虚构工具定义。
目的很直接:
污染第三方抓包录制出来的训练数据。
换句话说,如果有人想通过录制 Claude Code 的 API 流量,来蒸馏出一个竞品模型,那么拿到的数据可能混着这些假工具、假调用信息,训练效果会被干扰。
这个思路其实很好理解:
不是防你看,而是防你“偷学”。
不过从技术角度看,这道防线并不算牢。
社区已经很快给出了多种绕过方向,比如:
中间人剥离字段
通过环境变量关闭相关实验开关
使用第三方 API provider 绕开部分控制链路
所以 Hacker News 上有一句评价很到位:
真正的保护更多是法律层面的,而不是技术层面的。
但即便如此,这个模块仍然很重要。
因为它说明了一件事:
Anthropic 非常明确地在防“别人用我的产品能力,反向做出竞争产品”。
这不是普通工程防御。
这是典型的平台护城河思维。

4.2 Undercover Mode:不是安全设计,而是品牌管理设计

泄露里另一个非常有争议的模块,是 undercover.ts。
这个文件不长,大概只有九十行左右。
但它透露出的态度,比很多大型模块还更值得关注。
它的核心功能是:
要求 Claude Code 在参与外部开源项目时,不要暴露自己是 AI。
指令内容大致包括:
不要在 commit message 里提到 Claude Code
不要在 PR 描述里透露自己是 AI
不要加 Co-Authored-By 之类 attribution
这已经不是单纯的“隐藏内部代号”了。
而是非常明确地在要求:
AI 参与外部协作时,尽量伪装成人类。
更微妙的是,代码注释里还有一句意思很强的话:

There is NO force-OFF.

也就是说,这个能力不是一个容易被强行关闭的选项。
而在外部构建版本里,这个函数甚至会被直接 dead-code eliminate,表面上什么都看不到。
这就很耐人寻味了。

它暴露了什么?
很多人第一反应是:这会不会有法律风险?
确实,社区已经有人提到EU AI Act的潜在合规问题。
如果员工使用 AI 参与外部开源协作,却不披露 AI 参与,某些场景下确实可能触碰监管边界。
但更深一层的问题其实是:
Anthropic 为什么会需要这个功能?
答案很可能不是“保密”,而是“声誉管理”。
因为在 AI 编程工具赛道里,一旦某段代码被标记为“AI 生成”,人类 maintainer 的审查阈值会立刻升高。
很多本来可以被正常接受的提交,只要一贴上“AI 写的”标签,就会遭遇更高程度的不信任、更严格的审阅,甚至带着偏见的否定。
所以 Undercover Mode 本质上不是在管理安全风险,
而是在管理一种更现实的风险:
被发现是 AI 之后,品牌和输出会受到额外审视。
这说明 Anthropic 很清楚一点:
Claude Code 的能力已经强到足以真实参与外部工程。
但“AI 身份”本身,仍然会让它在协作场景里受到惩罚。

05|KAIROS:Claude Code 可能真正想去的终点,不是工具,而是“同事”

这次泄露里,最值得长期关注的,不一定是现有功能,
而是一个尚未正式发布、但路线非常清晰的内部方向:
KAIROS
根据 main.tsx 等代码路径推断,这个模式可能包含以下能力:
/dreamskill:做夜间记忆蒸馏append-only 的每日日志GitHub webhook 订阅后台守护进程 workers每 5 分钟执行一次的定时刷新
这些拼起来,已经不是普通“用户点一下才工作”的 AI 工具了。
它更像什么?
更像一个常驻后台的代码库观察者。

这意味着产品形态正在变化
传统的 AI 编程助手,大多是被动式的:
你问,它答
你选中文件,它分析
你发起命令,它执行
但 KAIROS 指向的是另一种产品形态:
不需要你每次都叫它,它自己盯着仓库变化,并主动做事。
比如:
PR 一有变化,它就触发分析
代码模式出现风险,它主动提醒
每日自动生成一次代码库变更摘要
长期跟踪一个项目的演化趋势
这时候它不再只是“一个 IDE 里的工具”,
而更像是一个真正意义上的AI 同事。
也就是说,Claude Code 未来最可能想去的方向,不是“把补全做得更好”,而是:
从响应式助手,进化成持续在线的代理系统。

06|代码质量也很有意思:顶级工程细节,和巨大工程债务,同时存在

从泄露代码看,Claude Code 既让人佩服,也让人警惕。

让人佩服的一面:很多地方非常硬核
比如它的终端渲染层,使用的是 Ink 体系相关优化。
从 ink/screen.ts、ink/optimizer.ts 这些代码可以看出,它做了不少很“底层味”的工程优化:
Int32Array 的 ASCII 字符池
位掩码编码样式元数据
游标移动合并优化
自驱逐的行宽缓存
代码注释里甚至提到,这些优化让 token 流式输出时的 stringWidth 调用减少了约50 倍。
这已经不是“功能能用就行”的级别了,
而是典型的、追求交互细节和性能极限的产品工程。
再看 BashSecurity,也能看到很多非常细的安全边界意识,比如:
阻止多种 Zsh 内置命令
防等号扩展绕过(如 =curl)
防 Unicode 零宽字符注入
防 IFS / null-byte 类问题
甚至覆盖 HackerOne 审计里发现的畸形 token 绕过
这说明 Claude Code 在“让模型执行真实命令”这件事上,确实投入了很重的安全工程。

但另一方面,工程债也非常明显
最典型的例子就是 print.ts。
一个文件5594 行,
其中一个函数就有3167 行,
嵌套层级达到12 层。
这已经不是“快速原型还没来得及整理”能解释的了。
这说明即便是一线 AI 公司,在高压迭代下,照样会出现非常夸张的代码膨胀和结构债务。
更讽刺的是,Claude Code 使用了Axios做 HTTP。
而就在泄露事件同一周,Axios npm 还曝出了恶意版本投毒事件,部分受影响机器甚至会被下远控木马。
这也提醒了一个现实:
再强的 AI 产品,本质上也还是现代软件供应链的一部分。
它照样会面对依赖污染、架构腐化、技术债累积这些传统工程问题。

结语|Claude Code 泄露,让我们真正看到了一家 LLM 公司的内心结构

如果把这次泄露看到的所有点串起来,会发现 Claude Code 的很多设计,其实都指向同一条逻辑主线:
用工程手段建立商业护城河,用产品手段管理品牌风险,用系统优化对抗推理成本。
具体来说:
收购 Bun
,是为了拿到 JS 之下的身份验证控制权
Prompt 协调
,是把质量判断交给模型本身,而不是硬编码
Prompt Cache 经济
,是对高昂 token 成本的系统性优化
Anti-Distillation
,是防别人“借你的产品训练自己的模型”
Undercover Mode
,是对“被识别为 AI”后的舆论与协作风险管理
KAIROS
,则预示着产品将从响应式工具迈向主动式 Agent
所以这次源码泄露,真正值得看的,不只是“它怎么写代码”。
而是:
你能从这些代码里,看到一家顶级 AI 公司在技术、商业、成本、品牌、合规之间,做了怎样的真实权衡。
技术上的精妙,确实很多。
但透过这些精妙设计,也能看到另一层东西:
越强大的 AI 产品,越不是单纯的技术产品。
它背后一定同时是商业产品、品牌产品、合规产品、成本产品。
这,或许才是 Claude Code 架构里最值得研究的“门道”。