《从Claude Code泄露源码看工程架构:导读》
这一次我们终于能把 Claude Code 拆开看了2026 年 3 月 31 日凌晨安全研究员 Chaofan Shou 在 X 上发了一条很短的消息Claude Code source code has been leaked via a map file in their npm registry。事情的起点并不复杂。anthropic-ai/claude-code2.1.88 这个版本里包进去了一个不该出现在生产包里的cli.js.map。顺着这个 Source Map社区很快摸到了对应的 TypeScript 源码。不是模型权重不是训练数据也不是 Anthropic 后端的核心系统而是 Claude Code 这套客户端和 Agent 外壳本身。我觉得这件事最值得看的地方恰好也在这里。过去大家聊 Claude Code经常只能围着现象打转为什么它能在终端里连续干活为什么它既能改文件、跑命令又没有彻底失控为什么它能把工具、权限、上下文、多 Agent、IDE 集成这些东西缝在一起而且还真能跑起来现在源码摊开了很多问题终于不用靠猜。这个专栏的文章就是想把这件事讲清楚。1. 先说清边界这次泄露了什么没有泄露什么先把话说死免得后面越写越飘。这次公开出来的主要是 Claude Code 的应用层实现也就是我们平时真正接触到的那一层CLI 入口、React Ink 界面、QueryEngine、工具系统、权限控制、记忆机制、MCP 接入、多 Agent 调度、IDE 桥接等等。没有公开出来的是 Claude 模型本身最核心的那部分能力模型权重、训练数据、后端推理基础设施。这些东西并不在这次事件里。换句话说这不是一次把“模型内部秘密”全部掀开的泄露它更像是把一套成熟 AI Agent 产品的工程骨架突然摆在了桌面上。而对工程视角的读者来说这个骨架已经很有价值了。2. 为什么这套源码值得认真看如果你只是把 Claude Code 理解成“一个会调用大模型 API 的命令行工具”那看源码时大概率会有点意外。因为它真正难的地方不在于把 prompt 发出去而在于把一个会聊天的模型改造成一个能长期执行任务的终端代理。这里面至少有几件事几乎每一件都绕不开工程细节它怎么组织一次完整的 Agent 循环决定什么时候继续问模型什么时候停下来执行工具。它怎么给 40 多个工具接上统一的注册、鉴权、执行和结果回填链路。它怎么处理权限避免模型一句话就直接把危险命令落到用户机器上。它怎么在上下文窗口有限的前提下维护跨会话记忆和工作状态。它怎么把 IDE、终端、MCP 服务和多 Agent 协作塞进同一套运行框架里。这些问题单靠产品演示视频是看不出来的。只有进源码你才会发现所谓“AI Agent 体验”背后其实是一层一层的壳把模型包成了一个能工作的系统。我自己最关心的也正是这件事Claude Code 到底是怎么把“大模型”变成“工程工具”的。3. 这系列的文章准备回答什么这套系列不会把 50 多万行代码从头抄一遍。那样没有意义。更现实的做法是沿着几条真正重要的主线把结构一点点拆出来。所以后面的文章重点会围着下面这些问题展开Claude Code 的启动链路是什么样的从 CLI 入口到 REPL再到真正进入 Agent 循环中间经过了哪些层。一次请求是怎么跑完的用户输入、模型响应、工具调用、结果回填这条链怎么串起来。工具系统是怎么搭起来的为什么它能同时容纳文件编辑、命令执行、网页访问、任务分派这些完全不同的能力。权限系统怎么工作哪些地方是硬闸门哪些地方只是软提示。多 Agent 协作为什么没有把上下文搅烂任务怎么拆结果怎么收主代理又怎么保持可控。MCP 接入层为什么重要它到底解决的是“协议兼容”问题还是“能力扩展”问题。整个项目的目录结构和模块边界是怎么安排的哪些目录一看就知道这是核心骨架哪些更像适配层和外围设施。你会发现这些问题都很具体。因为真正有用的源码分析不是喊一句“架构很先进”而是把关键连接点一个个找出来。如果你想深入阅读完整的源码也可将该系列文章作为项目的脉络梳理依据这条脉络阅读可以事半功倍。4. 这系列的文章怎么读如果你只是想先抓住全局我建议按这个顺序读《项目架构总览》《CLI 启动链路》《一次请求的完整生命周期》《工具框架的三层装配线》写作中《权限系统的四道闸门》写作中《多 Agent 协作为什么没有把上下文搅烂》写作中《MCP 接入层如何把六种传输揉成一个入口》写作中这基本就是一条从外到内的路线。先看整体目录和模块分层知道仓库是怎么摆的再看程序从哪里起跑接着看一次真实请求怎样在系统里流动最后再拆工具、权限、多 Agent 和 MCP 这些真正决定产品能力上限的部分。如果你更偏工程实现可以直接从《一次请求的完整生命周期》开始。那篇最接近“Claude Code 到底怎么跑起来”的核心问题。如果你更偏安全视角那就优先看《权限系统的四道闸门》和《MCP 接入层如何把六种传输揉成一个入口》。这两块最能看出 Anthropic 在“给模型放权”这件事上到底有多谨慎也能看出它哪里做得细哪里还留着工程上的妥协。5. 为什么这事不只是八卦和炒作源码泄露当然有新闻性但如果只把它当成一场热闹能留下来的东西其实不多。我更在意的是另一层Claude Code 把很多原本散落在论文、Demo 和创业项目里的想法做成了一套真的能交付给用户的系统。它未必每个设计都新也未必每个实现都漂亮但它足够完整。完整到你可以顺着目录树往下走看到一个生产级 AI Agent 产品到底由哪些零件拼出来。这很少见。更少见的是它不是一个专门拿来“展示架构理念”的教学项目而是一套真正在服务真实用户的商业产品。正因为如此里面很多设计不是“最优雅”的而是“能落地”的。对工程分析来说这种东西反而更有参考价值。6. 带着重点阅读读这组文章时你可以重点带着这几个判断去看第一Claude Code 的核心不只是模型调用而是围绕模型搭起来的执行系统。第二真正决定体验上限的往往不是 prompt 写得多花而是工具、权限、状态和上下文怎么编排。第三所谓“AI 原生应用”的门槛很多时候不在模型层而在外面那层厚厚的工程壳。如果后面的源码能把这三件事说明白这组文章就算没有白写。7. 最后说一句这套系列只讨论已经公开传播后的技术线索和工程实现不提供泄露文件的获取方式也不鼓励传播原始代码包。我们关心的是架构分析不是二次分发。如果你准备开始读正文最合适的第一站就是《从Claude Code泄露源码看工程架构项目架构总览》。先把地图摊开后面再往每一条链路里钻会轻松很多。