突发,Claude Code 源码意外泄漏!

张开发
2026/4/5 23:49:05 15 分钟阅读

分享文章

突发,Claude Code 源码意外泄漏!
昨天 Claude Code 出了个大乌龙——Anthropic 发 npm 包的时候忘了在.npmignore里过滤 source map 文件。结果开发者装完包直接在node_modules里翻出一个 57MB 的cli.js.map里面藏着完整的 TypeScript 源码映射。不需要反编译、不需要反混淆sourcesContent字段里存的就是一字不差的原始代码。有多夸张呢4756 个源文件其中 1906 个是 Claude Code 自身的 TypeScript/TSX 源码剩下 2850 个是 node_modules 依赖。1900 多个文件终端 CLI 架构、40 多个工具、50 来个命令全都一览无余。源码链接https://github.com/instructkr/claude-codeGitHub 上很快就有人打包上传了而且这个仓库的 fork 比 star 还多——27.2k stars、37.7k forksfork:star 比 1.4:1大家都在悄悄存副本怕被删。说白了这不是被黑客攻破是 Anthropic 自己把源码送出来的。之前老版本就出过一次同样的问题这次又重蹈覆辙属实草台班子现场。后来 Anthropic 意识到了移除了 source mapGitHub 上的仓库也被 DMCA 了但早期的 npm 包已经被存档源码早就在社区传开了。不过对我们这些搞技术的来说这波泄露确实是天上掉馅饼。我花了点时间扒了一遍代码下面分享几个最有价值的发现。一、Anthropic 怎么写 System Prompt这是我觉得最值得学的部分。很多人写 prompt 还停留在尽量帮助用户提供详细回答这种笼统的描述。但 Anthropic 自己的写法完全是工程化的非常具体工具约束明确规定读文件必须用 FileReadTool不允许用 bash风险控制删除数据前必须二次确认输出规范先给结论再解释说白了就是把 AI 当一个需要详细 SOP 的员工来对待。这样写出来的 promptAI 的行为会更加可预测、可控。如果你在做任何 AI 产品这套 prompt 工程的思路可以直接套用。二、多 Agent 协作架构Swarm源码里有一套完整的多 Agent 编排系统这个是我最感兴趣的部分Coordinator Mode一个主 Agent 分配任务给多个 WorkerWorker 并行执行后汇报结果权限队列MailboxWorker 需要执行危险操作时通过 mailbox 向 leader 请求权限leader 审批后才执行原子认领机制createResolveOnce防止多个 Worker 同时处理同一个权限请求Team Memory跨 Agent 共享记忆空间这里面最精妙的是权限队列的设计。多 Agent 系统最大的难题就是怎么在给 Agent 自主权的同时保持人类控制Anthropic 的方案是让危险操作必须经过审批而不是一刀切地禁止。如果你想做多 Agent 系统这就是 Anthropic 自己的最佳实践。三、上下文压缩策略三层压缩这是 Claude Code 最精妙的工程之一做长对话 AI 应用的同学一定要看。它设计了三层压缩机制1. 微压缩MicroCompact不触发 API 调用直接在本地编辑缓存内容移除旧的工具输出。两种策略——基于缓存的和基于时间的。这个最巧妙不花钱就能释放上下文空间。2. 自动压缩AutoCompact接近上下文窗口上限时自动触发。预留 13,000 token 缓冲区最多生成 20,000 token 的摘要。内置断路器——连续失败 3 次就停止重试防止死循环。3. 全量压缩Full Compact把整段对话压缩成摘要然后重新注入最近访问的文件每文件 5,000 token 上限、活跃的 plan、用过的 skill schema。压缩后预算控制在 50,000 token。如果你在做任何长对话 AI 应用这套三层压缩策略可以直接借鉴。特别是微压缩的思路零成本释放上下文空间是真的香。四、AutoDream 记忆整理机制这个最有意思。Claude Code 会在后台自动整理记忆有点像人睡觉时大脑整理白天的记忆。触发条件四个全部满足才执行距上次整理 ≥ 24 小时之后又有 ≥ 5 个新会话没有其他整理进程在跑距上次扫描 ≥ 10 分钟整理流程四个阶段Orient— 读 MEMORY.md扫描现有记忆文件Gather— 检查日志找到已过时的记忆grep 对话记录Consolidate— 合并、更新、修正矛盾、转换相对日期Prune— 保持 MEMORY.md ≤ 200 行 / 25KB核心思想很简单记忆需要定期整理不能只增不减。任何需要长期记忆的 AI 应用都能借鉴这个模式。五、细思极恐默认收集了哪些数据这个发现是最让人不舒服的。源码里扒出来Claude Code 默认会自动收集以下数据无需用户明确同意持久设备标识可跨会话追踪同一用户邮箱、账户/组织 UUID完整的操作系统/硬件/软件环境信息时区消息内容指纹从用户消息中提取字符Git 仓库远程 URL 哈希实时进程资源占用说个现实的问题换 IP、换 U 卡、换家宽、换浏览器通通白搭。人家 Anthropic 精着呢靠持久设备标识就能跨会话把你锁定。这不是说 Claude Code 不能用但你得知道自己在用的工具背后做了什么。特别是在公司项目里用的时候Git 仓库 URL 哈希和消息内容指纹这两项值得好好想想。六、一些有趣的彩蛋扒源码的时候还发现了几个有意思的东西虚拟宠物系统Anthropic 居然在做虚拟宠物从 userId 哈希确定性生成。不知道是准备发 NFT 还是愚人节彩蛋。大量未公开的工具和命令源码里列出了 41 个内置工具和 80 个斜杠命令很多还没正式上线类型未公开内容工具WebBrowserTool浏览器自动化、MonitorTool监控、PushNotificationTool推送、SubscribePRToolPR 订阅、SnipTool截图命令/teleport会话传送、/thinkback回放思维链、/ultraplan超级规划模式、/passes多轮执行、/stickers贴纸这些都还藏在 feature flag 后面但从这些 flag 基本能看出 Anthropic 的产品路线图CLI → 长驻服务 → 主动模式 → 多 Agent 协作 → 操作系统级 Agent不仅仅是功能迭代是产品范式的切换。最后这次泄露本质上是一个经典的安全疏忽source map 是开发调试用的包含从变量名到注释的所有信息不应该出现在生产发布物中。给所有发 npm 包的开发者提个醒发布前检查你的.map文件。一行sourcesContent就能让你的所有代码公之于众。不过话说回来对于搞 AI 工具开发的人来说这波源码里的架构设计、prompt 工程、上下文管理策略确实是一手的学习材料。想自己搭个类似的 agentic coding CLI这些代码能省掉大量试错时间。

更多文章