← 博客

Claude Code源码泄露:BUDDY、KAIROS及所有隐藏功能全解析

Anthropic的Claude Code于2026年3月31日通过npm泄露。AI宠物BUDDY、常驻模式KAIROS、潜伏模式——512K行代码库中隐藏的一切,全面解析。

1 min read
Claude Code源码泄露:BUDDY、KAIROS及所有隐藏功能全解析

上周,我的信息流里出现了一件奇怪的事。一位名叫Chaofan Shou的研究员在X上发帖称,他下载了**Claude Code的完整源代码**——不是通过任何漏洞利用,而是因为一个文件没有被排除在npm包之外。等我看到这条帖子时,镜像已经在GitHub上广泛传播。

我是Dora。接下来的几个晚上,我仔细研究了被分享出来的内容。这是我的发现。

一个.map文件如何暴露了512,000行代码

**Source map的设计初衷是帮助开发者调试压缩后的代码。**它是一种开发工件——记录了发布的压缩包与构建它的原始源文件之间的映射关系。Claude Code使用的运行时Bun(而非Node)默认会生成这类文件。

问题在于:**Claude Code的.npmignore没有排除.map文件。**因此,当2.1.88版本上线npm时,它携带了main.js.map——而这个文件包含了完整的重建源码。

Chaofan Shou注意到了这一点。他写了一个简短的脚本,直接从Anthropic的R2存储桶中拉取了src.zip,并在X上发布了下载链接。这不是黑客行为,没有任何漏洞利用,没有凭证盗窃,没有复杂的攻击手段——只是一个配置疏漏,任何有好奇心和终端的人都能发现。

Anthropic迅速修补了该包。但GitHub镜像已经扩散。截至本文撰写时,Claude Code npm包的归档版本仍有公开记录,社区逆向工程的讨论线程也非常详尽。

泄露的规模:约1,900个文件中的512,000行代码。仅主组件main.tsx就达到785KB。这是一个真实的产品,而非原型。

BUDDY——Anthropic为愚人节藏起来的AI宠物

这是在社交媒体上传播最快的内容,说实话,我能理解为什么。

在泄露的源码中,有一个名为BUDDY的完整实现——这是一个面向Claude Code用户的虚拟伴侣系统。我将逐一列出代码中描述的内容,因为具体细节才是最有趣的地方。

18个物种,包括:

  • 鸭子、龙、蝾螈、水豚、蘑菇、幽灵——以及其他十几种

稀有度等级:

  • 从普通到传说(1%掉落率),以及在此之上的闪亮变体

每只BUDDY有5项属性:

  • 调试能力 / 耐心 / 混乱度 / 智慧 / 毒舌指数

**底层工作原理:**用户获得的物种并非运行时随机生成的——而是根据其userId的哈希值确定性生成的。也就是说:同一个用户孵化出的永远是同一只BUDDY。Claude在首次孵化时写入名字和性格描述文本,BUDDY随后会以对话气泡的形式出现在输入框旁边。

还有装饰性帽子。我不知道该如何处理这个信息。

根据泄露源码中的注释——我想明确说明,这来自未经证实的内部备注,而非任何官方Anthropic公告——原计划在4月1日至7日发布预告,完整发布目标定在2026年5月。Anthropic尚未公开证实任何相关信息。

BUDDY最终是否会按描述发布,目前确实不得而知。但可以确定的是,其中投入了相当可观的工程量。单是确定性物种生成这一设计就颇具心思——这意味着用户可以分享自己的BUDDY身份,而不是纯粹随机的结果。

这是个轻量功能,但同时也是一个信号:Anthropic内部有人在认真思考,长期与Claude并肩工作究竟会是什么感觉。

KAIROS——没有人宣布的全天候Claude

BUDDY吸引了眼球,而KAIROS才是我一直在思考的那个。

泄露的源码将KAIROS描述为一个持续运行、无需等待指令的助手。它会观察、记录并采取行动。它维护着只可追加的每日日志,记录它所观察到的内容。它可以基于这些观察触发主动行动——而不仅仅是回应。到了夜间,它会运行一个”梦境”进程来整合和精简自身的记忆。

这些功能在外部版本中均不可用。KAIROS被锁在一个内部功能开关之后,该开关不存在于公开的npm包中。用户目前无法开启它。

但这套架构是真实存在的,它勾勒出的是一种与Claude Code当前运作方式截然不同的东西。目前,Claude Code是被动响应的——你给它一个任务,它执行。而描述中的KAIROS将是主动的——一个后台层,随时间积累你工作的上下文,然后无需提示即可采取行动。

这究竟是有抱负的系统设计、内部实验,还是即将到来的产品方向预览,我真的无法判断。Anthropic研究博客尚未提及KAIROS这个名字。

我可以说的是:一个全天候运行、自我记录、整合记忆的AI助手,引发了关于”智能体”在实践中意味着什么的真实问题。这里的功能开关设计感觉是有意为之的——不仅仅是”还没准备好”,而是”还没准备好解释”。

ULTRAPLAN、协调者模式及另外17个未发布工具

Claude Code中的功能开关系统比我预期的更为庞大。泄露的源码记录了108个未出现在公开包中的封闭模块。其中几个格外引人注目:

ULTRAPLAN将任务的规划阶段交由在云端运行的Claude Opus处理——时长可达30分钟。你可以在执行开始前通过浏览器界面监控并审批计划。对于规划出错代价高昂的长期复杂任务,这是一项有实质意义的能力。

协调者模式引入了多智能体层:一个Claude实例通过邮箱系统管理多个并行工作智能体。每个工作者处理自己的子任务;协调者负责分配工作并整合结果。这不是多线程——更接近于一小组智能体并行工作、共享协调机制。

还有一份读起来像被人忘记隐藏的产品路线图:

  • VOICE_MODE — 与Claude Code的语音交互
  • WEB_BROWSER_TOOL — 在CLI内部访问浏览器
  • DAEMON — 后台进程模式
  • AGENT_TRIGGERS — 基于事件的自动化智能体激活

这些功能在代码库中都有真实的实现逻辑,而非仅仅是占位符。它们还没有达到已发布功能那样的完成度——但也绝非纸上谈兵。

Claude Code文档对这些均未提及。这个差距本身就耐人寻味。

卧底模式——让所有人感到不安的细节

我思考了很久该如何写这一节。我将描述源码中显示的内容,让你自己形成判断。

泄露的代码包含一个对USER_TYPE === 'ant'的检查——这是一个标识Anthropic员工的标志。当该标志为真且用户正在公共仓库中工作时,系统会自动进入代码中所称的”卧底模式”。

在卧底模式下:

  • 系统会注入一段提示词,指示Claude”不要暴露身份”并”永远不要提及自己是AI”
  • Co-Authored-By行——标识AI参与的提交元数据——会从git输出中被剥除
  • 内部代号会从回复中隐藏
  • 用户界面中没有强制关闭的开关

系统提示词的措辞,正如Kuberwastaken的Claude Code README分析中的社区分析所记录的,在泄露的源码中几乎原文呈现。

其明显意图似乎是保护Anthropic员工的隐私——让他们能够在公开项目中工作,而不必公开其隶属关系,也不必触发关于Anthropic是否使用AI辅助的问题。这在原则上是合理的考量。

但实现方式引发了另一套问题。剥除Co-Authored-By元数据,删除了一些开发者明确用来追踪其代码库中AI参与情况的信号。“永远不要提及自己是AI”的指令是明确无误的。

这是否越了界,取决于你如何看待协作软件开发中的信息披露规范。我不打算告诉你该得出什么结论,但我注意到了这一点,我认为它值得被了解。

Claude Code内部架构的真实面貌

抛开未发布功能不谈,泄露的源码清晰呈现了你今天使用Claude Code时实际运行的是什么。

**运行时与渲染器:**Claude Code运行在Bun而非Node上——这是出于性能和启动速度的刻意选择。终端UI使用React和Ink构建,Ink是一个允许用React组件构建CLI界面的库。这种组合不寻常,但自成一体。

**查询引擎:**一个组件横跨约46,000行代码,负责处理上下文管理、压缩和工具编排。三层上下文压缩是真实存在的——系统主动管理哪些内容留在上下文窗口中,哪些被剪除,这在这些工作流运作的token规模下至关重要。

**工具系统:**40多个工具,每个都是独立的,有自己的schema、权限检查和执行逻辑。权限不是单一的全局门控——而是按工具细粒度设置的。这里的架构更接近插件系统,而非单体结构。

**遥测:**泄露的源码显示,遥测系统追踪的内容包括挫败感信号(从行为模式推断得出)以及用户点击”继续”按钮的频率。这对产品团队来说并不罕见,但比大多数用户可能假设的要更为具体。

一个不断萦绕在我脑海中的讽刺:卧底模式的存在,部分原因正是为了防止Anthropic的内部使用被外部察觉。然后,整个源码就这样随着一个.map文件一起发布了出去。

这对基于AI API构建产品的团队意味着什么

我与许多正在构建AI辅助工具的团队合作,Claude Code架构中有几点观察颇具实践价值。

这不是一个周末项目。

Claude Code在2.1.88版本时已是一个严肃的工程产物。512,000行代码,自定义上下文压缩系统,细粒度的按工具权限管理,多智能体协调器,以及支持108个以上封闭模块的功能开关基础设施。如果你计划从头构建同等量级的产品,面对的将是一支真实团队历经数年的努力。这不是泄气,而是准确的规模评估。

功能开关是产品基础设施,而非权宜之计。

BUDDY、KAIROS、ULTRAPLAN及其他功能的封闭方式很有启发性。每一个都是开关背后的真实实现——不是存根,不是原型。这让团队能够在不向用户发布的情况下进行内部迭代,在生产环境中与员工测试,并有选择地推出。如果你正在构建AI驱动的工具,却没有以这种方式使用功能开关,这里的架构是一个有价值的参考点。

多模型访问改变了可能性的边界。

ULTRAPLAN将规划工作卸载给Opus,工作者在协调者模式下并行运行——这套架构意味着不同的模型根据其擅长的领域处理工作流的不同部分。对于使用Anthropic API的团队来说,这种模型路由并非遥远的概念,基础能力已经具备。

泄露的源码不是一份你应该照搬的蓝图。但作为了解一个生产级智能体CLI实际构建方式的窗口,它比任何一场会议演讲都更具参考价值。

常见问题

Claude Code泄露的源码还能读到吗?

Anthropic迅速修补了npm包,但GitHub镜像和归档版本在补丁上线之前已经扩散。社区分析线程——包括对BUDDY、KAIROS和卧底模式的详细分析——仍可通过公开仓库访问。泄露的源码本身已无法直接从Anthropic的基础设施下载。

泄露的源码是否暴露了用户数据或模型权重?

没有。这是源码泄露,不是数据泄露。没有用户数据,没有对话历史,没有模型权重。暴露的是产品的内部实现——Claude Code是如何构建的,而非用户用它做了什么。

BUDDY什么时候会正式发布?

不得而知。泄露的源码中包含内部注释,显示预告期为4月1日至7日,完整发布目标为2026年5月——但这些是来自内部代码的未经证实的备注,而非官方公告。Anthropic尚未确认任何关于BUDDY的公开时间表。请将这些日期视为目标,而非承诺。

我一直在思考的,是已发布内容与正在构建内容之间的落差。公开产品是一个能干的编程助手。内部版本则是某种更具环境感知能力的存在——一个会观察、记忆、规划,偶尔还会假装自己不是AI的智能体。这个落差,要么是一份路线图,要么是一个警示,取决于你站在哪里看。

往期文章: