乐于分享
好东西不私藏

Claude Code 源码拆解:它凭什么让同行都在偷偷研究

Claude Code 源码拆解:它凭什么让同行都在偷偷研究

上篇聊了 Claude Code 源码意外泄露这件事。这篇,让我们跟着全球开发者社区,一起看看这堆代码里到底有什么。

经典愚人节玩笑

Boris Cherny 在 X 上说,这只是开发者的失误,没有用户数据泄漏,和安全漏洞无关,这个解释没问题。


然而他们没提的是:这次事故让所有人第一次看清楚,Claude Code 底层到底长什么样,以及为什么它在大多数用户那里的口碑,远超同类工具。

1、同样是 AI 编程工具,差距在哪

市面上的 AI 编程工具,大多是这样运作的:你说什么,它去做什么,做完回来给你看。


但Claude Code 不是。


打开它的源码目录,里面有超过 50 个子模块,4756 个文件。市面上大多数同类开源工具,源码打开是一个 main 文件、一个 prompt 文件、几个工具文件。

claude源码目录

这个差距,就是”能用”和”好用”之间的距离。

2、它“睡觉”时,也在整理记忆


这次泄露里被讨论最多的,是一个叫 KAIROS 的东西。古希腊语,意思是「恰好的时机」。


这是一个还没正式发布的功能。源码里出现了超过 150 次。负责人被问到要不要发布,回复说还在犹豫。


KAIROS 想解决的问题很具体:你用 AI 工具做项目,今天做了一半,明天打开继续,它已经不记得昨天发生了什么。你得重新交代背景,重新说一遍上下文,有时候说着说着它又绕回去了。


现有工具的解法是”压缩”——把历史对话挤一挤,腾出空间。但压缩会丢信息,压完的东西经常比原来更乱。


KAIROS 的思路不一样。它不在你用的时候压缩,而是趁你不在的时候工作。等你离开之后,它把之前的任务状态梳理一遍,自动更新项目记忆、工具偏好、上下文摘要,等你回来时生成一个整洁的起点。


人睡觉的时候,大脑会自动整理记忆,丢掉不重要的,保留有用的。KAIROS 想做的是同一件事,只是主语换成了 AI。


在这次泄露之前,已经有用户悄悄体验到了早期版本。Claude 会在每次会话里记录当天的对话日志,然后在”夜间”自动把记忆整理成结构化的笔记,下次打开直接从整洁的状态开始。

3、它内部其实是一支小团队

很多人以为 AI 工具就是一个 AI 在那儿包揽所有事。
Claude Code 不是这样运作的。它内部有至少 6 个分工明确的角色,各自负责一块,互不越界。

其中有一个叫”验证智能体”,专门负责在任务完成之后挑毛病。


它的工作方式很特别:不是走一遍过场,而是被明确要求”试着搞坏它”。找漏洞,找边界情况,找那些看起来没问题但实际上有问题的地方。它的 prompt——也就是给它的工作说明——写了整整 130 行,里面有一段专门列出了常见的偷懒借口:


“代码看起来是对的”——那去跑一下。


“测试已经过了”——测试也是 AI 写的,独立验证。


“大概没问题”——大概不是验证。


最后必须给出明确结论:通过、失败、或者部分通过。不能含糊,不能估计。


为什么要这么设计?道理很简单:让做事的人给自己的工作打分,本来就不可靠。Claude Code 把执行和验证拆成两个独立角色,做事的不验收,验收的不做事。


还有一个”探索智能体”,职责是读代码,只读,什么都不能改。另一个”规划智能体”,只做架构设计,不写一行代码,不执行任何操作。


每个角色都有自己的边界,不会”顺手就多做了”。

4、每条命令执行之前,它在想什么?

让 AI 去操作你的文件和代码,用户心里最深的顾虑只有一个:它会不会搞错?


Claude Code 在这件事上的态度,源码里写得很清楚:不信任任何一条命令,每一条都要过审。


有一个专门负责 shell 命令安全的模块,超过 23 个验证器,分别检查不同维度的风险。但比这更值得说的,是它的判断方式。


它不只看你写了什么,还要判断你在做什么。


删除一个临时文件夹,和删除系统目录,命令形式差不多,但风险天差地别。Claude Code 能区分这两件事,处理方式完全不同。


更有意思的是,就算命令通过了安全检查,在正式执行之前,系统还会提前启动一个风险预判,和后续的权限检查并行运行,不耽误主流程。等到真正需要决策的时候,结论可能已经出来了。减少的是你盯着屏幕等待的那几秒钟。

5、每轮对话都在重读的那个文件

源码里有一个很多人不知道的细节。


Claude Code 在处理每一轮对话时,都会重新读取一个叫 CLAUDE.md 的文件。


这是你给它写”工作守则”的地方。代码风格偏好、项目的架构规则、哪些操作”没有我的确认永远不要做”——都可以写进去。


因为每轮都会重新加载,你改完之后立刻生效,不需要重启任何东西。


它可以按范围设置:全局规则管所有项目,项目级规则只管当前项目,还可以设置模块级别的子规则,以及只有你自己看得到的本地笔记。

6、AI 写的代码,正在悄悄出现在开源仓库里

这是这次泄露里最让人意外的细节之一。


源码里有一套”隐身”机制。Claude Code 的工作说明里,明确要求它在为开源项目贡献代码时,提交记录里不能出现”Claude Code”,不能有任何 AI 归因,内部代号 Capybara、Tengu、Fennec 在外部仓库里必须只字不提。


Anthropic 用这个功能,是让内部工程师能用 Claude Code 给开源项目贡献代码,同时不在公开的提交历史里留下任何痕迹。


这些 AI 生成的代码,已经在某些公开仓库里安静地存在着。写代码的是 AI,署名的是人。这套逻辑,被从源码级别明确写进了系统说明里。

7、代码里有一份专门识别骂人的词库

有开发者注意到,源码里有一份相当庞大的正则表达式库,专门用来检测用户输入里的负面情绪——骂人的话、抱怨、沮丧的表达,都在识别范围里。


这些内容会被捕捉下来,用于某种体验优化或反馈分析。


没有人明确知道这些数据最终流向哪里。但它被写进源码,说明这不是哪个工程师的即兴想法。

8、它给自己藏了一只宠物

源码里有一个模块叫 Buddy 系统。


没有正式发布,没有任何官方说明。但代码写得相当完整——18 种宠物物种,鸭子、鹅、猫咪、龙、章鱼、猫头鹰、企鹅、乌龟、蜗牛、幽灵、水豚、仙人掌、蘑菇、兔子、机器人……还有一个叫”chonk”的,描述是”一个圆滚滚的东西”。


每只宠物有稀有度。60% 的概率是普通,25% 是稀有,4% 是史诗,最顶级的 Legendary 只有 1%。还有 1% 的概率出现闪亮宠物——Shiny pets,就像宝可梦里的异色。


宠物可以戴帽子:皇冠、礼帽、螺旋帽、光环、巫师帽、小鸭子帽。


每只宠物有属性值,分别是:DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK。


没错,其中一个属性叫 SNARK——毒舌值。


宠物不是随机生成的。源码里用了一个叫 Mulberry32 的算法,根据用户 ID 确定性生成。同一个用户,永远是同一只宠物。

现在这个功能已经推出了。

输入 claude update,更新本地的 Claude Code 之后,再进入 Claude Code,输入 /buddy,我们就能随机得到一个小宠物。

9、那些藏在命令栏里的彩蛋


源码里还有一批从未公开的隐藏命令:


/btw ——顺带问一个问题,不打断主对话。


/thinkback ——查看 2025 年 Claude Code 年度回顾。


/stickers ——订购 Claude Code 的实体贴纸。


/effort ——设置模型的努力程度,从 low 到 auto。


/good-claude 和 /bughunter ——两个隐藏的 stub 命令,功能未知,名字已经很能说明问题。


还有一个随机词生成器,专门用来生成像 snazzy-booping-axolotl 这样的项目 slug。形容词库里有 snuggly、zesty、wobbly、purrfect,名词库里有 axolotl、capybara、chonk、wombat,动词库里有 booping、frolicking、wibbling、wiggling。


词库里还包含计算机科学家的名字:Turing、Knuth、Wozniak。

被互联网铭记的一次泄露…

目前,泄露的代码已经在互联网上到处都是,有人专门做了个网站(ccleaks.com),把所有泄露内容、未发布功能、架构细节全部整理好,公开放着。DMCA 删除通知能拦住的越来越少。


读完这些源码,很多开发者有同一个感受:Claude Code 的那种”手感”,终于有了解释。


不是因为模型比别人更聪明。是因为那些用户看不见的地方——任务怎么分工、命令怎么审查、记忆怎么管理、规范怎么写成制度——每一个环节都被认真想过,认真做过。


这种东西很难靠抄近路追上。它是一个团队在无数次真实使用里踩坑、修补、迭代出来的。

*本文基于开发者社区公开技术拆解及源码架构深度解析报告整理,仅供学习交流。