乐于分享
好东西不私藏

从源码泄露看 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 架构里最值得研究的“门道”。