关于Claude Code 泄漏事件的愚人节思考

我们第一次近距离看清了一个前沿 coding agent 的完整“骨架”和细节

这几天 Claude Code 的 TypeScript 源码泄漏 让整个 AI 圈都有一种很奇特的兴奋感。原因并不只是“顶流产品翻车了”这么简单 更重要的是 这次泄漏意外把一个真正跑在生产一线的 coding agent 体系结构摊在了公众面前。公开信息显示 这次事故来自 @anthropic-ai/claude-code 的一个 npm 发布包 其中误带了一个约 60MB 的 sourcemap 文件 由此暴露出约 1900 个文件和 51.2 万行以上的 TypeScript 源码。Anthropic 对外确认这是发布打包过程中的人为失误 不是入侵事件 也没有客户数据或凭证泄漏。

这件事最值得研究的地方 不在八卦 也不在“谁会抄谁” 而在于它让我们第一次以接近解剖学的方式 看到一个前沿 agent 产品到底是怎样从“大模型会写代码” 走到“能持续数十分钟甚至更久 代表你执行长程软件任务”的。官方研究文章本身已经反复强调 评价一个 agent 时 不能只看模型本体 还要看 harness 也就是那套负责处理输入 组织工具调用 管理上下文 执行与返回结果的脚手架系统。Anthropic 甚至直接把 Claude Code 描述成一种 flexible agent harness。

换句话说 这次泄漏真正暴露出来的 不是“Claude 会不会写 TS” 这种无聊问题 而是 agent 时代最关键的一层:模型之上的操作系统级执行框架。

一 先把事实说清楚 这次到底泄漏了什么

目前可以比较稳地确认三点。

第一 这次泄漏的是 Claude Code 产品层源码 不是底层大模型权重 也不是训练配方。媒体和 Anthropic 的对外表态都很清楚 这是 Claude Code 内部源码被误打进包里 不是模型本身外流。

第二 泄漏媒介不是传统意义上的“代码仓被黑” 而是一个 sourcemap 打包错误。BleepingComputer 报道指出 被发布的 2.1.88 版本 npm 包里包含了 cli.js.map 从而让完整源代码可被还原。社区汇总仓库则给出更具体的数字 约 59.8MB sourcemap 约 1900 个文件 约 51.2 万行 TypeScript。

第三 这次暴露的是一个已经相当成熟的工程系统 不是一个“prompt 套壳 demo”。官方文档显示 Claude Code 早已覆盖终端 IDE 桌面 Web 等入口 具备读写代码 运行命令 搜索网页 编辑文件 使用子代理 hooks 技能 memory 与权限模式等完整能力栈。官方还明确说 Claude Agent SDK 提供的就是“与 Claude Code 同样的 tools agent loop 和 context management”。

也正因为如此 这次泄漏之所以震动行业 不是因为“原来也用 TypeScript” 而是因为行业第一次比较完整地看到了一个 production-grade coding agent 的产品层装配方法。

二 这次泄漏最有价值的部分 不是功能彩蛋 而是它证明了 agent 真正难的不是模型 是 harness

很多人第一次看这类泄漏 目光会被彩蛋吸走。比如 The Verge 报道提到 社区在泄漏代码中发现了类似 Tamagotchi 的宠物功能 以及一个名为 KAIROS 的 always-on agent 模式。社区镜像仓库也声称在 assistant/ 目录看到了被编译开关控制的 “KAIROS / PROACTIVE” 持续运行模式。这里我建议把兴奋值先降下来:这些特性至少目前都不是 Anthropic 官方公开发布并确认可用的产品能力 只能说它们在泄漏代码镜像与媒体报道中被观察到。

真正重要的是 这次泄漏把一个行业事实照得很亮:前沿 agent 的核心竞争力 早已不只是模型答得好不好 而是模型被放进怎样的一套执行系统中。 这和 Anthropic 自己过去一年多的公开表述完全一致。2024 年底他们就强调 成功的 agent 系统通常不是靠复杂框架取胜 而是靠简单可组合的模式;2025 年开始 又进一步把重心从 prompt engineering 推向 context engineering 以及 harness design;到了 2026 年 更是直接把长程应用开发能力的提升归因于 harness design。

说白了 模型像大脑 harness 才是神经系统 骨骼 肌肉 感觉器官 和记忆器官的总成。没有这套总成 再强的模型也很难可靠地长时间工作。

三 Claude Code 暴露出的其实是一套“agent 操作系统”雏形

如果把今天主流 agent 的工程栈往抽象层面提一层 我觉得可以把它看成五层。

第一层是认知层。这里是大模型本体 负责理解目标 分解任务 做局部推理 判断何时该调用何种工具。Anthropic 对 agent 的定义也强调 agent 与 workflow 的差别 在于前者由 LLM 动态地主导自己的过程与工具使用 而不是由固定代码路径预先编排。

第二层是上下文层。它决定模型“此刻脑子里装了什么”。Anthropic 在 context engineering 一文里给出的说法很到位:工程问题已不再只是“怎么写 prompt” 而是“在有限 token 预算下 该把什么状态送进模型 以最大概率得到想要行为”。这里面不仅包括 system prompt 还包括工具说明 MCP 外部数据 消息历史等。

第三层是能力层。也就是 tools skills subagents MCP servers hooks 这些可执行部件。官方文档明确说明 Claude Code 支持自定义 skills hooks 和 subagents 并且 SDK 将 Claude Code 的 tools agent loop 和 context management 暴露给开发者。

第四层是执行与安全层。Claude Code 的权限模式 自动审批 分类器 沙箱 文件系统隔离 网络隔离 都在这里。官方文档说明 auto mode 用一个后台分类器替代手工 permission prompt;而 2025 年的 sandboxing 文章则更进一步 直接把文件系统隔离与网络隔离落到 OS level primitives 上 如 Linux bubblewrap 与 macOS seatbelt。

第五层是持续性层。也就是 long-running task 最难的那部分:会话间记忆 断点续跑 状态压缩 项目长期上下文 以及人机交接。官方 memory 文档写得非常明确:每个 Claude Code 会话都从一个全新的上下文窗口开始 但知识可以通过 CLAUDE.md 和 auto memory 跨会话带入 subagents 也可以有自己的 auto memory。Anthropic 关于 long-running harness 的文章进一步指出 真正的难点是 agent 工作在离散 session 中 而每个新 session 一开始都“不记得”前一班发生了什么。

把这五层放在一起 你会发现它已经很像一个轻量操作系统了。模型并不是“应用” 它更像调度核心。工具不是普通 API 更像 device driver 和 syscalls。hooks 像中断和策略注入点。memory 像持久状态。sandbox 与权限模式像内核安全边界。subagents 则像用户态的并发 worker。

所以 我现在越来越倾向于一个判断:agent 的未来不是“多一个聊天框” 而是“多一层执行操作系统”。

四 从官方文档反推 Claude Code 的主干工作流 其实已经非常清楚

虽然泄漏代码的很多细节还带着社区拆解的二手性质 但就算完全不看泄漏 只看 Anthropic 官方文档 Claude Code 的主干工作流也已经能拼起来。

它的起点是一个会话。用户以终端 IDE 或 Web 入口给出目标后 Claude Code 启动 agentic loop。这个 loop 的基本元素包括读取项目上下文 载入 CLAUDE.md 载入 auto memory 解析可用工具或子代理 然后在多轮推理中交替进行“思考 读文件 搜索 编辑 运行命令 检查结果 再修正”。官方 quickstart 和 SDK 文档都把这个 loop 描述为 Claude Code 的核心。

权限控制贯穿其中。官方 permission mode 文档给出几种模式:监督编辑 只读计划 以及 auto mode。auto mode 的关键思想很重要:不再靠用户在每个危险点手工点批准 而是用后台分类器在不中断流程的情况下做判断。Anthropic 在 2026 年关于 auto mode 的文章中甚至强调 auto mode 的目标 是替代 --dangerously-skip-permissions 而不是把人再拉回每一步审批。

同时 安全不是只靠分类器嘴上判断。Anthropic 在 sandboxing 文章里说得很清楚 真正能让 agent 少打扰人而又不至于失控的关键 是 OS-level isolation。Claude Code 在其 sandboxed bash 模式下 通过文件系统隔离限定可访问目录 通过网络隔离限定可连接域名 甚至所有子进程和脚本都会一起被约束。这意味着“少审批”并不是靠信任模型 而是靠把模型关进一个跑不出边界的执行盒子里。

这个设计非常关键。因为 agent 的真正瓶颈一直不是“想不出来” 而是“你敢不敢让它持续做”。你一旦敢让它持续做 它才有可能完成长程任务。而你之所以敢 不是因为它变成圣人了 而是因为你给它戴上了 harness。

五 真正前沿的地方 不是单轮工具调用 而是长程任务中的状态管理

Anthropic 在 2025 年和 2026 年关于 long-running agents 的几篇文章 其实已经把核心难题说透了。长程 agent 最大的问题从来不是单步做对 而是跨 session 不走形。上下文窗口有限 任务却可能持续几十分钟 几小时 甚至更多。如果没有状态桥接 你每次恢复 agent 都像换了个失忆工程师接班。

这也是为什么我一直觉得 现在很多人把“长上下文”吹得过于神奇。长上下文当然有用 但它更像一块更大的工作台 不是长期记忆本身。Claude Code 官方 memory 文档反而更诚实:每次 session 还是 fresh context 只是通过 CLAUDE.md 和 auto memory 把重要规则与 learnings 再装进来。并且 auto memory 还是有大小限制的 例如每个 session 只自动载入前 200 行或 25KB 的 auto memory。

这意味着一个成熟 harness 至少要解决四个连续性问题。

第一 任务状态要可序列化。做到哪一步了 哪些测试跑过了 哪些问题还没修 哪些文件是脏的 这些不能只存在模型当前脑子里。

第二 过程要可压缩。你不能把整个对话历史原样永远背着走 必须学会把历史提炼成面向后续行动的工作摘要。

第三 规则要可注入。也就是 CLAUDE.md 这种长期可读的项目规则层。它不像 runtime transcript 那样短期 易噪声 而更像“团队作业守则”。

第四 学习要可沉淀。auto memory 的意义就在这里。它不是项目文档 也不是对话历史 而是“Claude 自己学到的有效做法”。

长程 agent 真正的 sophistication 其实就藏在这四件事里。不是多会聊天 而是多会接班。

六 subagents 的意义不在“多智能体炫技” 而在“把复杂任务拆成互不踩踏的工种”

现在圈里一提多智能体 很多人要么神化 要么嗤之以鼻。Anthropic 的公开经验反倒很务实。其 multi-agent research system 一文指出 orchestrator 真正难的是学会 delegation。主代理如果只给子代理一句含糊命令 子代理就会重复劳动 误解目标 或者留下空白。为此 每个子代理都需要清晰的 objective 输出格式 工具与来源约束 以及明确边界。

Claude Code 官方文档也表明 它已有 built-in subagents 而且不同子代理有不同工具限制。比如 Explore 是只读 快速 检索型子代理 主要做代码库发现和分析。父代理在 claude --agent 模式下可以通过 Agent 工具生成子代理。

这恰恰说明 多智能体的价值从来不在“多开几个脑子看起来很酷” 而在于把一个大任务分配给不同工种。一个只读探索代理负责扫代码图谱 一个计划代理负责列步骤 一个通用代理负责具体执行 人类则在关键节点做批准或重定向。它更像施工总包体系 不像几个聊天机器人开圆桌会。

我甚至觉得 未来最有效的 multi-agent 形态 大概率都不是“平权群聊” 而是“有明显上下游边界的分层工种体系”。主代理像项目经理 子代理像专业工人 hooks 像质检点 sandbox 像工地围栏 memory 像施工日志。

七 这次泄漏让人真正震撼的一点 是 Claude Code 已经非常“产品化”而非“研究原型”

很多人对 agent 还停留在这样一种印象:无非就是让模型自己调 API 然后循环几步。Claude Code 这次无论从官方文档 还是从泄漏镜像暴露出的迹象看 都已经远远超过这个阶段。

官方文档里 你能看到的就包括 CLAUDE.md 规则体系 auto memory hooks subagents skills permission modes sandboxing Agent SDK 这些都不是研究演示用的一次性拼装件 而是被文档化 产品化 可配置化的稳定模块。甚至 release notes 还暴露出更多“工程打磨痕迹” 例如 CLAUDE_CODE_NO_FLICKER=1 提供 flicker-free alt-screen rendering with virtualized scrollback PermissionDenied hook 允许 auto mode 分类器拒绝后让模型重试 以及 named subagents 的类型提示。这些东西不性感 但它们极其说明问题:这不是一个会写代码的聊天模型 这是一个正在变成开发环境基础设施的系统。

官方关于 agent autonomy 的研究也给出了一个很有意思的事实:2025 年 9 月到 2026 年 1 月 Claude Code 交互会话里 99.9 分位的单 turn 工作时长 从不到 25 分钟涨到 45 分钟以上;同时内部最难任务的成功率翻倍 而平均人工干预次数从 5.4 次降到 3.3 次。经验更丰富的用户 反而更愿意用自动批准 但也更懂得在中途打断重定向。

这里面传递出的信号非常大:真正的 agent 产品不是让人彻底放手 而是把监督方式从“每步点同意” 迁移到“让它先跑 关键时刻我再介入”。这其实就是现代操作系统与自动化控制系统的发展逻辑:人不是从回路里消失 而是从微观控制转向例外管理。

八 泄漏代码让行业学到的第一课 是 tool 不等于 API skill 也不等于 plugin

Anthropic 在 2025 年那篇《Writing effective tools for agents》里有一句我非常认同:工具是 deterministic systems 与 non-deterministic agents 之间的一种新契约。也就是说 工具不再只是给程序员写的 API 它要写给会误解 会走偏 会选择策略的模型来用。

这句话看似简单 但含金量极高。因为很多团队今天还在用“人类软件工程接口”的思维给 agent 造工具 结果就是工具说明含糊 输入输出不稳 返回上下文不利于下一步推理 token 消耗还高。Anthropic 给出的原则很务实:工具应该有清晰边界 合理命名 返回有意义的上下文 对 token 友好 并且工具描述本身也要做 prompt engineering。

这直接导向一个更大的判断:未来 agent 生态真正的护城河 很可能不是“谁家有多少 API” 而是“谁家有多少 agent-friendly capabilities”。同样一个能力 做成给人调的 API 和做成给 agent 规划调用的 skill 完全不是一回事。前者重参数完整性与程序员心智一致性 后者重意图可理解性 错误可恢复性 返回可继续推理性。

因此 我一直觉得 app 时代的“插件”概念 在 agent 时代会被重写。不是插件消失了 而是它被更细粒度的能力单元替代。一个成熟的 skill 既要像 API 一样可靠 又要像文档一样易懂 还要像系统调用一样可审计 可受限 可回滚。

九 OS-level harness 才是 agent 规模化的真正门槛

这次看 Claude Code 泄漏 很多人讨论的是“Anthropic 会不会被抄”。我觉得这事有 但没那么大。真正难抄的不是“写个 terminal agent 界面” 甚至也不是“写一堆工具包装器” 真正难抄的是一整套 OS-level harness。

为什么这么说。因为只要 agent 要接触真实世界 它就立刻会面对三组老问题。

第一组是权限边界问题。模型想做事 就得访问文件 命令 网络 浏览器 Git 凭据 第三方服务。只要边界一模糊 它就可能被 prompt injection 带偏 或把不该带出的东西带出去。Anthropic 的做法是把文件系统和网络边界都下沉到 OS 级。

第二组是执行连续性问题。长程任务不可能永远在一个上下文窗口里完成 必须会暂停 恢复 压缩 续跑。Anthropic 直接把 long-running harness 拿出来单独讲 可见这不是“锦上添花” 而是 agent 工程最核心的痛点之一。

第三组是监督方式问题。人类如果继续逐步点批准 agent 就永远跑不起来。可如果粗暴 dangerously-skip-permissions 又不现实。所以他们一边做 auto mode 分类器 一边做 sandbox 一边做 hooks 允许企业或团队把策略外插。

把这三组问题放在一起 你就会明白:agent 规模化的门槛根本不在聊天框 在“有没有一个足够像操作系统的执行平面”。谁先把这层做扎实 谁才有资格谈企业级长程任务。

十 对整个 agent 行业来说 这次泄漏最具启发性的宏观结论是什么

我觉得至少有五条。

第一 领先 agent 产品的秘密已经不再主要藏在 prompt 里 而藏在系统装配里。prompt 当然重要 但它只是 context engineering 的一个子集。真正的竞争来自上下文组织 能力装配 安全边界 和记忆续航。

第二 coding agent 已经在逼近“可持续工作者”而不是“即时问答器”。Anthropic 自己的公开数据表明 交互工作时长在拉长 人类干预方式在变化 用户对 autonomy 的容忍与利用都在上升。

第三 多智能体不是宗教问题 是组织设计问题。主代理如何分工 子代理如何限定边界 工具如何面向 agent 设计 这些比“是不是 multi-agent”本身重要得多。

第四 安全不是事后加个审核按钮 而是从 OS primitives 到 permission policy 到 proxy 到 hook policy 的分层体系。只靠模型“听话”不够 只靠人“勤快审批”也不够。真正可扩展的解法是边界先行。

第五 所谓 agent 时代的“操作系统机会”是真实存在的。不是指传统意义上重新做 Windows 或 macOS 而是指在应用和模型之间 长出一层面向意图 面向能力 面向安全 面向长期任务状态的中间系统。Claude Code 暴露出来的东西 其实已经非常接近这层雏形。

十一 对这次泄漏的技术判断 既不用神化 也别低估

先说不用神化。泄漏代码不等于泄漏护城河全部。模型权重没泄 训练数据没泄 线上运维经验没泄 评测体系没泄 团队持续迭代速度更没泄。更何况 很多真正决定产品强度的东西 可能本就不在某次 CLI 仓库里。Anthropic 自己长期强调的 harness evals context engineering 等能力 其很大价值就来自持续调参与经验沉淀。

但也别低估。因为一个成熟产品层系统被如此大规模暴露 对行业的示范价值是巨大的。竞争对手当然不能直接合法照搬 但他们可以从架构取向 模块划分 权限边界 memory 组织 子代理分工 UI/CLI 工作流等方面获得非常高密度的启发。Axios 与多家媒体也都指出 泄漏暴露了未发布功能与架构细节 相当于给竞争者送出了一张 blueprint。

更重要的是 它会加速一个行业共识:agent 不是一个 prompt 技巧 而是一套系统软件工程。

十二 最后给一个更直白的结论

如果你把这次 Claude Code TypeScript 泄漏只看成一次尴尬的发布事故 那就看小了。

它真正的历史意义在于 让整个行业突然看见了这样一个事实:

今天最强的 agent 产品 早就不是“一个会写代码的大模型”
而是“一个以大模型为核心 以 context 为燃料 以 tools 和 skills 为四肢 以 subagents 为工种分化 以 memory 为持续性 以 sandbox 和 permission policy 为边界 以 hooks 和 SDK 为扩展口 的微型操作系统”。

大模型负责理解与决策
harness 负责让理解变成可持续 可审计 可中断 可恢复的现实执行

真正会改变软件世界的 不是模型会说话
而是模型终于长出了手脚 但这些手脚不再直接裸奔
它们被一整套系统级 harness 驯化成了可以长期工作的“数字工程体”

这才是 Claude Code 泄漏最值得研究的地方。

发布者

立委

立委博士,多模态大模型应用咨询师。出门问问大模型团队前工程副总裁,聚焦大模型及其AIGC应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理