Skip to content

Latest commit

 

History

History
142 lines (100 loc) · 8.18 KB

File metadata and controls

142 lines (100 loc) · 8.18 KB

English

Claude Code 源码解剖

License docs-check Docs Language Lines PRs Welcome

📖 在线阅读: https://anneheartrecord.github.io/claude-code-docs/

2026 年 3 月 31日,有人发现 Anthropic 发布在 npm 上的 Claude Code 客户端包里带了 sourcemap 文件。

Sourcemap 是前端构建工具生成的调试辅助文件,记录了编译后代码和原始源码之间的映射关系。正常发布时应该把它排除掉,但 Anthropic 的构建流程里漏了这一步。

于是完整的 TypeScript 源码被反向还原了出来,有51.5 万行代码,2,766 个文件。

需要明确的是:泄露的只是客户端侧的代码。 Claude Code 是典型的客户端-服务端(Client-Server)分离架构。客户端跑在你的终端里,负责用户交互、工具执行、权限管理、上下文组装。服务端是 Anthropic 的 API,负责模型推理,模型本身和服务端逻辑没有泄露。

但客户端的这部分代码已经足够有价值了。因为 Agent 产品的核心竞争力不只在模型调用侧,也在于怎么通过设计 Agent 将模型的能力安全、高效、稳定地释放出来

有意思的是,从 git 历史看,这份代码本身很可能就是 AI 写的:20 个 commit 全部来自同一个账号 claude-code-best,其中三个带着 Co-Authored-By: Claude Opus 4.6。51.5 万行代码一次编译零报错。AI 把功能写得挑不出毛病,却栽在一个基础的发布配置细节上。

这个仓库做了什么

我用 Claude Code 对这份源码做了系统化的技术分析,逐模块拆解,写了 13 篇技术文档,中英双语。

从架构设计到 Agent 循环的六阶段实现,从三层消息压缩体系到权限校验系统,从四种指令作用域与自动记忆到工具的执行流水线。

同时从 2026 年 3 月快照的 82 个 feature flag 里挖出了 Anthropic 当时探索的未来功能蓝图:Kairos 自主运行模式、Context Collapse 上下文折叠、Voice Mode 语音交互。

最后几篇是我自己的思考:这份代码到底值不值钱、AI Coding 时代工程师怎么做 Code Review、以及从源码里能看到 Claude 封号机制的哪些线索。

目标读者: 正在做 Agent 产品的工程师、对 AI Agent 架构感兴趣的开发者、想了解顶级 Agent 系统如何工程化落地的技术人,非技术背景的同学也能从中了解到 Agent 产品的运作方式和行业趋势。

文档目录

概览篇

文档 内容
01-架构总览 整体架构、技术栈、核心文件、一次请求的完整旅程
02-源码泄露的价值之争 产物 vs Harness 能力,两派观点分析,代码是快照能力是动态的

核心模块篇

文档 内容
03-Agent 循环 六阶段 ReAct 循环、AsyncGenerator 设计、状态管理、思维链保留
04-上下文工程 System Prompt 构建、CLAUDE.md 加载、分层优先级、预取缓存、Prompt Cache 优化
05-消息压缩系统 三层压缩:微压缩、Session Memory、Full Compact,熔断器、递归保护
06-权限系统 六种权限模式、YOLO 分类器、历史快照中的 42 条规则、文件沙箱、Dangerous Rule Stripping
07-记忆管理 四种指令作用域、自动记忆、@include 指令、MEMORY.md 管理、Session Memory
08-工具与 Skill 系统 40+ 工具注册、执行流水线、Pre/Post Hook、Skill fork 机制
09-MCP 集成 四种传输类型(CLI 支持三种)、OAuth、三种安装作用域

前瞻篇

文档 内容
10-未来功能蓝图 历史快照中的 82 个 feature flag、Kairos 自主模式、Context Collapse、已发布的语音模式
11-AI Coding 时代的 Code Review 个人/团队/CICD 三层 Review 范式、Review Agent 设想
12-从权限系统学 Agent 安全设计 三层防御体系拆解、L0-L4 安全成熟度模型、落地建议
13-啃完源码之后的一些发现 AI 工程化短板、生产事故、Claude 封号机制分析

上手复现

被还原出来的源码仓库可以直接跑:

git clone https://github.com/anthropics/claude-code.git
cd claude-code

bun install
bun run build
# ✓ Bundled 5344 modules in 554ms
#   cli.js  25.89 MB

bun run dev --version
# 2.1.888 (Claude Code)

关键数据

指标 数据
代码总量 515,498 行 TypeScript/TSX
文件数 2,766
构建产物 25.89 MB,5,344 模块
内置工具 40+
Feature Flag 82 个
权限拦截规则 42 条硬编码危险模式
消息压缩阈值 上下文窗口 - 13,000 token
npm 依赖 583 个包

版本覆盖范围

源码解读一定会过时,所以这里把「分析基于哪个快照」写清楚,而不是让读者去猜。

源码快照 2026-03-31 的 sourcemap 还原产物
该构建自报版本 2.1.888
章节内容最近复核 2026-08-11(Claude Code 2.1.227,上游提交 54cc51a
仓库最近维护 2026-08-11(v1.1.0,链接与工具链,未改章节结论)

这次复核以 npm 发布的 Claude Code 2.1.227 和 Anthropic 的公开仓库提交 54cc51a 为基线。章节中关于 2026-03-31 sourcemap 的源码路径、行数和 feature flag 数量仍然是历史快照,不代表当前内部实现。

章节 复核结果
01 架构总览 历史源码快照保留;当前版本差异见 04、05、06、07、09、10
02 价值之争 分析性内容,无需版本修正
03 Agent 循环 核心循环分析保留为快照内容
04 上下文工程 更新当前模型上下文和记忆说明
05 消息压缩系统 更新当前可配置的自动压缩窗口
06 权限系统 更新当前六种权限模式;42 条规则标注为快照数据
07 记忆管理 更新自动记忆已在当前版本启用
08 工具与 Skill 系统 保留 40+ 这一保守下限,补充当前工具变化说明
09 MCP 集成 更新当前公开的传输类型和配置范围
10 未来功能蓝图 标出自动记忆、语音和 1M 上下文已落地
11 AI Coding 时代的 Code Review 分析性内容,无需版本修正
12 Agent 安全设计 同步第 06 章的当前权限模式说明
13 源码发现 将 feature flag、依赖数和自动记忆预测标注为快照或已落地

上游改动导致某章描述失效,请开 版本漂移 issue。这是本仓库最欢迎的一类 issue。

参与贡献

最有价值的贡献不是加内容,是指出哪里写错了。事实纠错优先级最高,issue 7 天内首次回应。

  • 纠错与提议:见 贡献指南(事实纠错必须带证据)
  • 变更记录:见 CHANGELOG.md
  • 本地自检:python3 scripts/check_links.py && python3 scripts/check_bilingual.py

License

MIT,覆盖本仓库的原创内容:13 篇分析、插图、站点配置与 scripts/

本仓库不再分发 Claude Code 源码本身;引用的代码片段、商标归属与准确性声明见 NOTICE.md