今天是 2026 年 4 月 1 日愚人节。昨天深夜Anthropic 最热门的产品 Claude Code 的全部源代码因为一个 .map 文件的打包失误被上传到了公开的 npm 注册表。几个小时内这份将近 50 万行的 TypeScript 代码就被镜像到 GitHubfork 数超过四万一千次Hacker News 沦陷整个开发者社区彻夜未眠。但在这场安全事故的喧嚣里有一个发现安静地让所有人愣了一下。在 buddy/ 目录下有人藏了一只小动物。它本来不该被任何人看见按照原计划Buddy 的预热窗口是 4 月 1 日到 7 日正式上线锁定在 2026 年 5 月。先给 Anthropic 内部员工试用再逐步铺开。这意味着昨晚之前世界上几乎没有任何用户知道 Buddy 的存在。它被编译期 feature flag BUDDY 完整地隔离在公开构建之外。你下载的 Claude Code和这只小动物之间只隔着一个 false。然后一个没有被加进 .npmignore 的 source map 文件把一切提前交代了。讽刺的是Claude Code 源码里还有一套叫 Undercover Mode 的机制专门防止 Claude 在 git commit 信息等场合里意外泄露内部代号。他们考虑过 AI 会说漏嘴但没有料到人会手抖。每个用户的命中注定都在注册那天就算好了Buddy 不是随机生成的。它是确定性的。你的宠物物种由一个叫 Mulberry32 的伪随机数生成器决定种子来自你的用户 ID 哈希加上固定的盐值friend-2026-401。这串盐值不是随便写的。401 对应 April 01就是今天——他们甚至在代码里埋了愚人节的梗。算法保证了同一个用户无论何时触发 Buddy 系统都会得到同一只动物。你的那只在你注册账号那一天就定好了只是你不知道。从这个意义上说所有 Claude Code 用户现在都可以去算一算自己命中注定的小动物是谁。目前已知的 18 个物种包括鸭子、龙、蝾螈、水豚Capybara也是 Anthropic 新模型的内部代号、蘑菇、幽灵……物种名称在代码里用 String.fromCharCode() 数组做了混淆显然是有意不想让人在字符串搜索里找到它们。但计划赶不上变化。它有灵魂这是让人觉得有点怪异的部分。每只 Buddy 在第一次孵化时会由 Claude 生成一段灵魂描述soul description。这段文字是专属的人格档案写在角色里。它的 5 项属性分别是调试能力DEBUGGING、耐心PATIENCE、混乱度CHAOS、智慧WISDOM、贱嘴程度SNARK每项 0 到 100。还有 6 种眼型、8 种帽子部分需要稀有度解锁。传说级的闪光 Nebulynx掉率是 0.01%。它的 ASCII 像素形象是 5 行高、12 字符宽的小动画有待机帧、反应帧浮在你的输入框旁边的气泡里。系统 prompt 对 Claude 说了这样一段话A small {species} named {name} sits beside the users input box and occasionally comments in a speech bubble. Youre not {name} — its a separate watcher.Claude 被告知你不是那只小动物它是独立的旁观者。但如果你用名字叫它它会回答你。这说明了什么有人第一反应是嘲讽一家年营收 190 亿美元、自我标榜AI 安全第一的公司在最严肃的编程工具里偷偷养了一套抽卡游戏。但换个角度看这恰恰是最难得的信息。源码里到处是这样的痕迹动物代号天狗 Tengu、沙狐 Fennec、水豚 Capybara、玩耍性质的功能名企鹅模式、梦境系统、187 个加载动画用语有人在认真研究转圈圈时说什么最好玩、以及这只命运早就写好、却从未亮过相的小动物。一家公司真正的产品哲学从来不只活在发布会的 PPT 里。它活在那些永远不会被用户看见的代码里——那些工程师写完之后也没有人会来审核有没有必要性的角落。Buddy 是一个信号。它说明有人相信一个让人每天打开的工具不只要有用还应该有陪伴感。让用户对一个命令行工具产生情感连接不是 KPI是某个人认为值得做的事然后就做了。