less
> 本文已收录到 [AI编程一站式导航](https://ai80.net)。本文链接:[03.9 2026 年最佳 AI 编码工具完全指南]
(https://code.ai80.vip/ai-tool-guides/03.9 2026 年最佳 AI 编码工具完全指南)
> 强烈推荐:AI编程巴士网站:[稳定纯净的ClaudeCode套餐供应](https://code.ai80.vip/home);
1900 个文件一把漏光:Claude Code 这次不仅泄了源码,还顺手暴露了 Anthropic 的下一步
写在前面
很多人今天刷到这个消息,第一反应可能都是一句话:又有大厂翻车了。
但如果你是开发者,这事真正值得看的,不只是"Anthropic 把 Claude Code 源码漏出去了",而是一个已经被很多人当成最强 AI 编程 Agent 的产品,内部到底是怎么搭起来的。平时这些东西只能靠猜,这次几乎是把机箱盖直接掀开了。
更扎心的是,泄露规模不是"漏了几个脚本"这种小事故,而是 1900 个 TypeScript 源文件、51.2 万行代码、一个 59.8MB 的 source map 文件 ,外加一堆没正式公开的功能线索。一个小时内,GitHub 上最大的备份仓库就冲到了 11,300 star、17,300 fork、568 个 issue。fork 比 star 还多,说明大家的共识非常统一:先存一份再说。
这件事对开发者的提醒很直接:AI 编程已经不是补全几个函数那么简单了,真正拉开差距的是谁能把"读代码、调工具、管权限、拆任务、长期记忆"做成一套完整系统。 Claude Code 这次意外暴露出来的,恰恰就是这套底盘。
逐行手写代码这件事,正在被重新定义
这次泄露最有冲击力的地方,不是"源码外泄"本身,而是它让外界第一次比较完整地看到:今天最强的一批 AI 编程工具,内部已经卷到了什么程度。
从公开信息看,Claude Code 表面上只是一个终端里的 AI 编程助手:你在命令行里输入一句自然语言,它帮你读代码、改文件、跑命令、管理 Git 工作流。
但泄露出来的内部结构说明,它根本不是一个"命令行包装壳",而是一套完整的 Agent 系统:
- 40 多个独立工具模块
- 一个 46,000 行的查询引擎
- 多 Agent 编排能力
- 持久化记忆整理机制
- 若干尚未对外发布的模式和功能
这意味着什么?
意味着开发效率的差距,已经不只是"会不会用补全"了,而是你有没有把 AI 当成一个可以被调度、被约束、被持续喂上下文的工程执行体。还在把 AI 工具当聊天框的人,和已经把它当项目协作者的人,接下来只会越拉越开。
更典型的是社区反应。源码一出来,大量开发者不是围观吐槽,而是立刻备份、分析、拆功能。因为大家都知道:你很少有机会直接看到一家头部 AI 公司怎么把编程 Agent 做到产品级。
这不是"npm 出事"四个字就能概括的:同一天其实发生了两件完全不同的事
这波讨论里最容易混淆的一点,是很多人把"Claude Code 源码泄露"和"axios 供应链攻击"混成了一件事。
其实不是。
同一天,npm 生态里确实连续发生了两起大事,但性质完全不同。
第一件事,是 axios 遭遇供应链攻击。作为 JavaScript 生态最常用的 HTTP 客户端之一,它的周下载量超过 1 亿次 。攻击者劫持了主要维护者的 npm 账号,把邮箱改成 ProtonMail 地址,然后发布了两个带毒版本:1.14.1 和 0.30.4。
这两个版本本身没有直接塞入恶意主体,而是在依赖里新增了一个叫 plain-crypto-js 的包。这个包会在安装阶段自动执行脚本,在 macOS、Windows、Linux 三个平台上投放 RAT,执行后再删除自身、替换成干净的 package.json,伪装痕迹做得相当深。
更值得警惕的是这条时间线:
- 先发布一个干净的
plain-crypto-js@4.2.0,建立可信度 - 18 小时后发布带毒的
4.2.1 - 再过 20 分钟发布带毒的
axios@1.14.1 - 又过 39 分钟发布
axios@0.30.4
安全公司 StepSecurity 直接把它称为针对 npm Top 10 包中"操作精密度极高的一次供应链攻击"。不过这些带毒版本大约存活了 2 到 3 小时就被移除了。
而第二件事,才是 Claude Code 的源码泄露。它和 axios 投毒没有直接关系,不是被攻击者植入,也不是同一条攻击链上的延续,更像是一次典型的工程配置失误。
一句话总结就是:同一天,同一个包管理器,一个是被人打了,一个是自己把门忘了关。
Claude Code 到底是怎么把自己漏出去的
泄露路径其实不复杂,反而因为"太基础"才更让人后背发凉。
前端和 Node 开发者都熟悉 source map。当你用 JavaScript 或 TypeScript 构建 npm 包时,打包工具通常会生成 .map 文件,方便你在调试压缩产物时还能映射回原始源码。
问题在于,这类文件里往往不只是"映射关系",还可能包含一个非常敏感的字段:sourcesContent。这个字段会直接把原始源文件内容塞进去。只要 .map 跟着生产包一起发布,别人理论上就能把源代码完整还原出来。
正常做法一般有两个:
- 在
.npmignore里把.map排掉 - 或者在构建配置里直接关闭 source map 生成
而这次社区分析认为,Claude Code 的问题大概率出在构建流水线没有把 .map 清干净。它使用 Bun 作为打包工具,而 Bun 的打包器默认会生成 source map,除非你显式关闭。结果就是,一个 59.8MB 的 source map 文件被一起发到了 npm registry,顺着这个入口,完整源码就被扒了出来。

从结果看,这次暴露的具体版本是 @anthropic-ai/claude-code v2.1.88。研究者发现后,社区几乎是秒级开始备份。
这里有个特别现实的提醒:到了 AI Agent 这种复杂产品阶段,真正容易出事故的未必是"最难的模型能力",反而可能是最普通的工程发布链路。 你模型再强、Agent 再聪明,只要发布配置少一行排除规则,照样一把漏光。
源码里真正让开发者上头的,不是事故本身,而是这些内部设计
如果只把这件事当八卦看,那最有价值的部分反而会错过。
因为泄露出来的内容,基本把 Claude Code 作为一个工程 Agent 的底层结构暴露了个七七八八。下面这些发现,才是最值得开发者重点看的部分。
1)它不是一个会跑 Shell 的小工具,而是 40 多个能力模块拼出来的工具系统
Claude Code 的能力不是一锅炖出来的,而是拆成了独立工具模块,放在 tools/ 目录下。每个工具都有自己的输入格式、权限模型和执行逻辑。
已公开的核心能力包括:
- 文件读取、写入、编辑
- Shell 执行,而且支持沙箱
- 文件搜索
- 网页访问
- Jupyter 笔记本编辑
- 子 Agent 调度
- LSP 通信
- MCP 资源访问
更关键的是权限系统。泄露内容显示,它把工具调用分成了四种模式:
default:交互式逐次询问用户auto:通过 ML 分类器自动决策bypass:跳过检查yolo:拒绝所有
同时,每个工具动作还会被标成低、中、高三个风险等级。
这套设计说明一件事:Claude Code 的重点不只是"能不能调用工具",而是怎么在不同风险下决定让不让它调、需不需要人确认、以及把权限粒度拆多细。这才是 Agent 真正能落地的关键,不然就只是一个危险的自动脚本执行器。
2)最重的不是界面,而是查询引擎
泄露信息里,query/ 目录是整个代码库最大的单一模块,规模达到 46,000 行。它负责的不是某一个小功能,而是所有 LLM API 调用、流式传输、缓存和整体编排。
这里有两个点特别有意思。
第一,它的系统提示词是模块化设计,不是把一整坨 prompt 硬塞进上下文,而是拆成静态段和动态段。静态段可以跨用户缓存,动态段则按每次会话生成。
第二,源码里甚至出现了一个函数名:DANGEROUS_uncachedSystemPromptSection()。
光看名字你就知道,团队在 prompt 缓存和动态拼接这件事上肯定踩过坑。对外界来说,这其实也从侧面说明了:今天顶级 AI 编程产品拼的已经不是"写几个提示词",而是上下文工程、缓存策略和编排稳定性。
3)它真的在做"长期记忆",而且做得很工程化
services/autoDream/ 目录里有一个名为 autoDream 的后台记忆整合引擎。这个名字听起来有点玄,但机制非常务实。
它会在三个条件同时满足时启动后台子 Agent:
- 距上次执行超过 24 小时
- 至少经历了 5 次会话
- 成功获取整合锁
这个子 Agent 只有只读权限,不能改项目文件。它会做四件事:
- 读取记忆目录和现有记忆文件
- 从最近日志和会话里提取新信息
- 更新、合并记忆文件,把相对日期转成绝对日期,删除过时内容
- 做裁剪,控制在 200 行以内
换句话说,Claude Code 不是简单把会话记录越堆越长,而是在做一种"定期整理、保留高价值信息、主动删除过时上下文"的长期记忆系统。
这点特别重要。因为真正好用的编程 Agent,核心从来不是记住得越多越好,而是能不能把对项目长期有用的信息留住,同时不把上下文拖成垃圾场。
4)多 Agent 编排已经不是概念验证,而是正经架构层的一部分
coordinator/ 目录里暴露了一整套多 Agent 编排系统。开启以后,Claude Code 不再是一个单线程助手,而是一个调度器,同时管理多个工作 Agent 并行处理任务。
它的流程被拆成四个阶段:
| 阶段 | 作用 |
|---|---|
| Research | 多个 Agent 并行调查代码库 |
| Synthesis | 汇总发现,制定方案 |
| Implementation | 按方案执行修改并提交 |
| Verification | 验证修改是否真正生效 |
这套结构非常像一个小型软件团队的工作流,而不是一个"更聪明的补全插件"。
更细的一点是,调度器提示词里有一条规则:不要说"根据你的发现",而是去读实际发现,然后精确说明该做什么。
这说明 Anthropic 在压制一种常见的 Agent 幻觉:上层调度器不能只复述下属 Agent 的模糊总结,而要基于真实结果做明确指令。这已经不是 prompt 小技巧了,而是多 Agent 质量控制问题。
5)还没公开的东西,比已经公开的更值得玩味
除了现有能力,源码里还露出了一堆"未来方向"的痕迹。
KAIROS:像值班同事一样常驻后台的 Claude
assistant/ 目录里有一个外部版本完全看不到的模式,叫 KAIROS。
从代码描述看,它像一个持续运行的后台助手,不需要你主动发指令,会根据定时信号决定是否采取行动,并维护一个只追加的每日日志,记录自己的观察、决策和操作。
它还有一个 15 秒阻塞预算:任何可能打断用户工作流的主动操作,如果预计超过 15 秒,就延后执行。
更夸张的是,KAIROS 还有三个普通 Claude Code 没有的专属工具:
SendUserFilePushNotificationSubscribePR
你可以把它理解成:Anthropic 正在尝试把 Claude Code 从"你问它答"的即时工具,推进到"它在旁边持续待命、必要时主动出手"的常驻型 Agent。
ULTRAPLAN:把复杂规划扔到远程云端去想
另一个很有意思的模式是 ULTRAPLAN。它会把复杂规划任务卸载到远程云容器,启动一个运行 Opus 4.6 的远程会话,最长给 30 分钟 思考时间。
本地终端每 3 秒轮询结果,用户还能在浏览器界面里实时查看和审批规划。
这个设计本质上是在承认一件事:复杂规划和本地即时交互,不一定应该由同一个执行环境承担。 对开发者来说,这个方向非常值得关注,因为它意味着未来的编程 Agent 很可能会进一步分裂成"本地执行体"和"远程思考体"。
Buddy:连电子宠物都不是彩蛋那么简单
buddy/ 目录下还有一个完整的电子宠物系统。它使用 Mulberry32 伪随机数生成器,根据你的 userId 哈希值生成确定性宠物。
细节多到离谱:
- 18 个物种
- 5 个稀有度等级
- 额外 1% 的闪光概率
- 5 项属性:
DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK - 用 5 行高、12 字符宽的 ASCII 动画渲染在输入框旁边
从代码里的时间引用看,这功能计划在 2026 年 5 月 上线。
表面上看它像个玩具,但从产品视角看,这其实是在强化"终端 Agent 的陪伴感和人格感"。AI 编程产品接下来拼的,很可能不只是能力,还有持续使用的体验黏性。
Undercover Mode:内部员工也得防提示词泄密
utils/undercover.ts 里还有一个更微妙的功能:防止 Anthropic 内部员工在公共仓库工作时暴露内部信息。
开启后,系统提示词会额外注入限制,要求 Claude 在 commit message 和 PR 描述中,不要出现:
- 内部模型代号,比如 Capybara、Tengu
- 未发布版本号
- 内部项目名称
- 甚至连"Claude Code"这个名字本身都避免暴露
这其实很能说明问题。一个 AI 编程 Agent 如果真被员工深度用于内部开发,那么"提示词层面的保密"就不再是边角功能,而是实际生产需求。
6)顺着细枝末节,能看到它未来一段时间的路线图
源码里还有不少零碎但很有信号量的发现:
- Claude Code 的内部项目代号是 Tengu ,很多特性开关以
tengu_为前缀 - Fast Mode 的内部名字是 Penguin Mode ,API 端点里直接写着
claude_code_penguin_mode - Computer Use 的内部代号是 Chicago ,基于
@ant/computer-use-mcp,仅限 Max/Pro 用户 - 还有若干未发布 Beta 头信息,比如
redact-thinking、afk-mode、advisor-tool - 每个 API 请求都带
x-anthropic-billing-header,用于验证请求来自正版 Claude Code 安装
这些东西单独看都像碎片,但拼在一起,方向已经很清楚了:
Claude Code 正在从一个终端工具,继续向"常驻型、多 Agent、可远程规划、可接更多执行能力"的编程操作系统演化。


五天两次事故,这事对 Anthropic 真正危险的地方在哪
如果只看这一次源码泄露,你可能会觉得是个偶发工程事故。
但放到时间线上看,就没那么轻松了。
3 月 26 日,Fortune 报道 Anthropic 的 CMS 因配置错误,导致约 3000 个未发布资产 可以被公开访问。里面甚至包括未发布模型 Claude Mythos 的草稿内容,以及一些面向欧洲 CEO 的活动细节。Anthropic 后来承认 Mythos 确实存在,并称它会带来"能力上的阶跃变化"。
5 天后,Claude Code 又因为 source map 问题把整套源码漏了出来。
这两起事件的共同点非常刺眼:
- 都不是传统意义上的"黑客攻陷"
- 都更像配置层面的失误
- 都发生在本该最容易被忽视的工程边界上
这对任何做 AI 产品的团队都是提醒。模型时代大家很容易把注意力全放在训练、推理、能力评测上,但真正把产品推向生产环境后,发布链路、内容系统、权限配置、构建产物管理,这些看似"不性感"的环节,反而最容易决定你会不会在一夜之间翻车。
Claude Code 到底是什么,为什么它现在会被这么多人盯着看
如果你之前只听过名字,这里可以顺手把背景讲清楚。
Claude Code 是 Anthropic 官方推出的终端 AI 编程 Agent。它不是 Copilot 那种"你打字,它补几行"的模式,而是更接近一个能自主干活的工程助手:你给它一个目标,它会去读项目、找文件、执行命令、修改代码、跨文件重构,必要时还会继续调试和验证。
它之所以被很多开发者高看一眼,原因就在于"自主性"。你可以把它理解成:传统代码补全工具解决的是'下一行写什么',Claude Code 试图解决的是'这件开发任务怎么完整做完'。
从这次泄露里暴露出来的结构也能印证这一点:它背后不是单一模型加命令行壳,而是一整套围绕工具调用、权限控制、记忆管理、任务编排搭起来的 Agent 基建。
官方使用方式也比较直接:通常通过 npm 安装,在项目目录中运行后,就能在终端里让它参与开发工作流。官方订阅主要依赖 Anthropic 自家的套餐和 API 体系,常见认知里会和 Max/Pro 订阅、API 调用额度一起使用。
不过说实话,官方订阅对国内用户不太友好------需要海外信用卡,网络环境也得折腾。如果嫌麻烦想找个更省事的渠道,可以看看 Code80,真实订阅帐号转 API,换个 endpoint 就能直接用,体验跟官方一样。详情可以到官网了解:code.ai80.vip
常见问题
Q1:这次 Claude Code 泄露,最严重的到底是什么?
A:不是"丢了一个包",而是通过 source map 直接暴露了 1900 个 TypeScript 文件、51.2 万行代码,而且还包含未发布功能和内部实现细节。对外界来说,这是一次极其少见的高价值工程样本泄露。
Q2:它和 axios 供应链攻击是一回事吗?
A:不是。axios 那件事是维护者账号被劫持后发布带毒版本,属于供应链攻击;Claude Code 这件事更像构建和发布配置失误,导致 .map 文件被一并发布。两件事只是恰好发生在同一天。
Q3:source map 为什么会严重到把源码全漏出去?
A:因为 .map 文件里不只是映射关系,很多情况下还包含 sourcesContent,也就是原始源文件正文。一旦生产包里把这个文件带出去,别人就可能顺着映射把源码完整还原。
Q4:从这次泄露里,开发者最值得学到什么?
A:一是 AI 编程 Agent 的核心竞争力已经转向工具系统、权限控制、记忆和多 Agent 编排;二是再先进的产品,也会死在发布链路这种基础工程问题上。模型能力和工程纪律,缺一不可。
Q5:Claude Code 和普通 AI 代码补全工具的差别到底在哪?
A:代码补全工具主要帮你写"下一段代码",Claude Code 这类 Agent 更像帮你推进"下一件任务"。它不只补代码,还会主动读仓库、调用工具、执行命令、跨文件改动并验证结果。
Q6:国内开发者如果想更方便地用上 Claude Code,有没有省事一点的方式?
A:如果不想折腾海外支付和网络环境,国内用户可以通过 Code80 更方便地使用。
less
> 本文已收录到 [AI编程一站式导航](https://ai80.net)。本文链接:[03.9 2026 年最佳 AI 编码工具完全指南]
(https://code.ai80.vip/ai-tool-guides/03.9 2026 年最佳 AI 编码工具完全指南)
> 强烈推荐:AI编程巴士网站:[稳定纯净的ClaudeCode套餐供应](https://code.ai80.vip/home);