# 序章：当你打开一个"聊天助手"的引擎盖

---

想象你在手机上打开计算器，按下 `1 + 1 =`，屏幕显示 `2`。

简单吧？但如果你拆开计算器 App 的源代码，你会发现里面有浮点精度处理、本地化数字格式、无障碍语音播报、撤销历史栈、单元测试框架——远比"做加法"复杂得多。

Claude Code 也是这样。

当你在终端输入 `claude`，看到的是一个友善的对话界面。你说一句话，它回一句话，偶尔帮你改改代码。"不就是个终端里的 ChatGPT 吗？"

不是。差远了。

> 🌍 **行业背景**：2026 年，AI 编程助手已完成从"帮你补全一行代码"向"自己动手完成整个任务"的根本转变。这个领域有多热闹？简单列几个名字你就能感受到：GitHub Copilot、Cursor、Kimi Code、OpenAI Codex、Devin、Google 的 AI 编程工具（产品名以官方为准）……每家都在做自己的 AI 编程助手，竞争激烈程度堪比智能手机大战。
>
> 在这个群雄并起的格局中，Claude Code 选择了一条独特的道路——不做 IDE 插件（IDE 是程序员写代码的专用编辑器，类似于设计师的 Photoshop），不做 Web 应用，而是在**终端**（那个黑底白字的命令行窗口）里构建一个完整的 AI 智能体运行时。这个选择让它成为少数可以在纯远程服务器上工作、可以完全通过键盘操作、可以与任何编辑器无缝集成的 AI 编程助手之一（本书未对所有竞品的这三项能力做穷举核实，写"少数"而非"唯一"是把比较口径留出余地）。代价是：它必须自己解决界面渲染、文件管理、进程隔离等一系列在 IDE 环境中本来"免费"的问题。这本书要解剖的，正是这个雄心勃勃的工程选择背后的全部技术细节。
>
> <details><summary>📋 <b>2026年AI编程助手竞争全景（点击展开）</b></summary>
>
> | 产品 | 公司 | 特色 |
> |------|------|------|
> | GitHub Copilot Agent Mode | 微软/GitHub | 全面正式发布（GA），内置多个专职AI智能体 |
> | Cursor Background Agents | Anysphere | 在云端虚拟机中并行执行代码重构 |
> | Kimi Code | 月之暗面 | 基于万亿参数模型，最多100个并发子智能体 |
> | OpenAI Codex | OpenAI | Rust重写底层，引入并行Agent工作流 |
> | OpenCode | 开源社区 | 11万+ GitHub Star，支持75+模型提供商 |
> | Devin | Cognition | 从"全自主"转向人机协作管控模式 |
> | Z Code (GLM) | 智谱AI | 7440亿参数，专注国产芯片和私有化部署 |
> | Google 的 AI 编程工具（产品名以官方为准） | Google | Mission Control架构，重新定义工程协作 |
>
> </details>
>
> 行业对这类系统的认知经历了三个阶段的演进：**提示工程**（Prompt Engineering, 2023-24）→ **上下文工程**（Context Engineering, 2025）→ **套控工程**（Harness Engineering, 2026）。LangChain 创始人 Harrison Chase 在多次公开演讲和博客中推广的 **Model + Runtime + Harness** 三层划分框架被行业较广泛采纳（具体出处以 LangChain 官方博客和 Harrison 个人演讲为准，本书未逐条核实原文链接）——本书比较的主要 AI Agent（Claude Code、OpenClaw、Manus 等）底层大体可以按这种三层框架理解，而 harness（套控层）的设计差异往往决定了产品表现的差异。本书解剖的 Claude Code，正是一个 harness 设计的完整案例。

### 源码公开催化的生态爆发

源码公开不仅引发了技术讨论，更催生了一场开源生态的集中爆发。据社区观察（GitHub Trending 页面截图与中文 AI 社区帖子存档，截止日期约为源码公开后第 7 天），GitHub Agent Skills 方向的热门项目前 10 中有数个是 CC 相关项目，下表 6 个项目的星数合计约 9,000（星数随时间变化，以下为抓取快照；精确来源 & 日期可在本书附录的"数据复现"清单中查阅）：

| 项目 | 星标 | 定位 |
|---|---|---|
| byterover-cli | 3,638 | Agent 记忆层 |
| open-agent-sdk-typescript | 1,822 | SDK 替代方案 |
| taches-cc-resources | 1,731 | 配置合集 |
| claude-reviews-claude | 988 | 自我审查工具 |
| how-claude-code-works | 808 | 机制剖析 |
| claude-code-from-scratch | 472 | 从零教学 |

加上 claw-code（源码公开后涌现的复刻项目，GitHub Star 短时间内累积到较高量级 —— 具体星数和增速因项目成熟期而变化，请以 GitHub 当前页面为准）和 open-agent-sdk 等项目，源码公开事件催生了一个围绕 CC 架构的开源生态系统。社区衍生项目不仅限于代码工具——**ccunpacked.dev** 构建了一个英文可视化导览站，将 Agent Loop 的多步流程做成交互动画，成为非中文社区理解 CC 架构的首选入口；**harness-books** 则从中文视角出发，尝试建立系统性的套控工程框架书，与本书形成互补（具体 Star 数随时间变化不再给出精确数字）。这些项目共同表明：一次源码公开，意外地为整个行业提供了一份"AI Agent 架构参考实现"。

> 🌍 社区视角 | @idoubicc — "Claude Code家后院起火，我让CC把桌椅搬出来盖了新房，大家免费住。"

> 🌍 社区视角 | @IceBearMiner — "越花时间vibe coding，越觉得软件工程的重要性"
>
> 💡 **通俗理解**：Vibe coding 是指让 AI 根据"氛围感"直接生成代码，自己不太深入理解细节。这位开发者的感悟是：越是让 AI 写代码，越发现**人类的工程设计能力**才是决定最终产品质量的关键——AI 能写代码，但架构设计、安全边界、性能权衡这些"软件工程"的活，还得人来把关。

你打开的是一个拥有 **1,884 个 TypeScript 文件**[^1] 的工程系统。它有自己的进程调度器、安全沙箱、文件版本管理、多实例协调器、遥测管线、插件生态——如果你非要用一个词来描述它，最准确的说法是：

[^1]: **关于 "1,884" 这个数字的口径**：这是 `src/` 目录下 `.ts` + `.tsx` 后缀的 TypeScript 源文件总数（用 `find src/ -name '*.ts' -o -name '*.tsx' | wc -l` 可重现）。如果把 `src/` 目录下的所有文件都算上（含 `.json` / `.proto` / `.css` 等其他类型），总数是 1,902。本书统一使用 **1,884（TypeScript 源码口径）**——因为本书分析的对象是 TS 源代码本身，非源码文件不在分析范围内。两个数字的差额（18 个）是配置和资源文件，不影响对系统架构的理解。

**一个为 AI 智能体设计的操作系统。**

> **[图表预留 0.1-A]**：CC 源码全量统计仪表盘——476,875 行有效代码、1,884 个 TS 文件、40 个 AI 工具、101 个斜杠命令的穷举式全景数字。

只不过它管理的不是硬件进程，而是 AI 智能体的生命周期。当然，"操作系统"是一个帮助理解的类比，不是精确的技术定义——Claude Code 运行在 Node.js 之上，本身仍是一个用户态应用程序。但它承担的**职责**（资源调度、安全隔离、生命周期管理、扩展机制）确实和操作系统高度同构。这个类比的价值不在于字面准确，而在于它提供了一个你已经熟悉的思维框架来理解一个全新的系统。

> **[图表预留 0.1-B]**：Claude Code 英雄架构图——9 节点主链路（CLI→权限→Prompt→Query Loop→API→工具→输出）与 6 个支撑子系统（权限/配置/MCP/Hooks/沙箱/上下文）的全局俯瞰。

---

## 这本书要做什么

本书基于 Claude Code **2.1.88 版本的源代码**进行源码级架构分析（源码分析截止日期：**2026 年 4 月**，Claude Code 后续版本的变更不在本书覆盖范围内）。我们不猜测，不臆断——所有结论都标注了源文件路径和行号。

> **⚠️ 研究边界声明**
>
> 这份源代码来自 2026 年 3 月 31 日在社区公开流传的 Claude Code 2.1.88 `cli.js.map`，是**脱离 git 谱系的源码快照**——没有 `.git` 目录、没有版本历史、没有完整的构建产物链。它不是 Anthropic 主动开源的完整仓库，而是从 `cli.js.map` 中恢复的 1,884 个 TypeScript 源文件。
>
> 这意味着两件事：
>
> 1. **行为级分析已经完备。** 系统如何启动、query 主循环如何运转、工具如何被选择和执行、多 Agent 如何协作、跨环境如何恢复——这些核心行为链在当前快照中完整存在，全书的所有架构结论都基于可验证的源码证据。
>
> 2. **少量源码模块在当前快照中缺失。** 具体包括：`SendUserFileTool` 执行宿主目录、`UserCrossSessionMessage` 渲染组件、`peerSessions.js` 完整实现、`fireCompanionObserver` 定义宿主（`src/buddy/observer.ts`）、`setReplBridgeActive` 的调用方、`@anthropic-ai/sandbox-runtime` 闭源沙箱包。这些缺失不影响对系统行为的理解，但本书不会对其具体实现做未经证实的推测——凡涉及分析断裂处，正文中会明确标注。
>
> 💡 **通俗理解**：就像考古学家研究出土的陶器碎片——我们能还原器物的形状、工艺和用途，但不能声称还原了窑匠的每一道工序。这份源码让我们看清了 Claude Code 的完整架构蓝图，只是少数几块"碎片"还埋在地下。

你会在书中看到：

- 系统如何在你按下 Enter 之后，经历数十个步骤才把问题送到 AI 面前
- 为什么一条看似简单的回复背后，可能有**多个 AI 实例**在同时工作（主对话 + 若干 forked agent + 若干 Worker 子任务，具体数量取决于场景，见 Part 4"Agent 编排"与"协调器模式"章节）
- 一个"编辑文件"操作如何穿越权限检查、沙箱隔离、文件快照三道关卡
- Token（词元）如何像货币一样被精打细算，缓存命中率如何像汇率一样影响所有决策
- 企业管理员如何通过九层配置体系，远程控制每一台开发者机器上的 Claude Code

> **[图表预留 0.2-A]**：数据流完整旅程图——从"帮我重构这个函数"到最终输出，一次交互穿越 10 个处理阶段（阶段数指管线节点数，不是数据形态数）。在这 10 个阶段之间数据**主要以 5 种形态**存在（string → object → JSON → SSE → ReactNode）。"10 个阶段"与"5 种数据形态"是两个维度，不是同一数字的不同写法。

**这不是使用指南。** 你不会在这里学到怎么用 Claude Code——官方文档已经做得很好了。

**这是工程解剖。** 我们要搞清楚它*为什么*这样设计、这些设计背后做了*什么取舍*、以及你能从中*学到什么*可以用在自己项目里的工程智慧。

> **[图表预留 0.2-B]**：Claude Code 技术栈全景——从 L2 语言层（TypeScript）到 L8 沙箱层（Seatbelt/Namespace）的 8 层技术栈分布，一张图看清这个系统依赖的每一块砖。

---

## 为什么用"操作系统"来理解 Claude Code

这不是为了修辞好看——Claude Code 的架构**真的**像一个操作系统。

当你的电脑开机时，操作系统做三件事：管理硬件资源、调度应用程序、执行安全策略。Claude Code 做的事几乎一样，只不过"硬件资源"变成了 token 预算和 API 配额，"应用程序"变成了 AI 智能体实例，"安全策略"变成了权限规则和沙箱限制。

> 📚 **课程关联**：本书的分析框架大量借鉴**操作系统**（Operating Systems）课程的核心概念。如果你正在或即将学习这门课，Claude Code 是一个绝佳的"现代操作系统"案例研究——它把教科书中的抽象概念（进程调度、内存管理、安全模型、文件系统）投射到了 AI 应用的全新领域。同时，本书涉及的工程分析方法对应**软件工程**（Software Engineering）课程中的源码级架构分析（Source-Level Architecture Analysis）实践。

这个类比能帮你建立直觉。下面这张表是全书的"翻译对照表"——每当你在后续章节中遇到一个 Claude Code 的概念，你可以在这里找到它在操作系统世界中的对应物：

| 操作系统概念 | Claude Code 对应物 | 为什么这个类比成立 |
|---|---|---|
| **内核 (Kernel)** | QueryEngine + queryLoop（核心循环——接收请求、调用工具、返回结果） | 所有请求都经过它调度——调用 API、分发工具、管理上下文，就像内核管理 CPU 时间片和内存分配 |

> 💡 **通俗理解**：QueryEngine 就像**快递分拣流水线**——收件（接收用户输入）→ 分拣（判断需要什么工具）→ 装车（调用 API）→ 送达（执行工具）→ 签收（返回结果）→ 等下一单（继续循环）。
| **系统调用 (Syscall)** | 工具调用 (Tool invocation) | AI 不能直接读写文件——它必须通过工具系统发出"系统调用"，就像用户态程序必须通过 syscall 访问硬件 |

> 💡 **通俗理解**：工具就像**员工的工作技能证书**——读文件证书、写代码证书、搜索证书，每个技能需要考核通过（权限检查）才能用。Claude 不是万能的，它需要"持证上岗"。

> **[图表预留 0.3-A]**：40 个内置工具目录完整清单——按 6 个类别（File / Search / Execute / Agent / Web / Other）分组，标注每个工具的权限要求、输入 schema 与适用场景。

| **进程调度器 (Scheduler)** | Agent/Task 系统 | 7 种任务类型、Coordinator 编排模式——管理多个并发 AI 实例的优先级和资源，就像 OS 调度进程 |

> 💡 **通俗理解**：Agent 系统就像**外卖调度中心派出骑手**——主 Claude 是调度中心，每个 Agent 是一个骑手，各自独立送不同订单（子任务），完成后回报结果。
| **文件系统 (Filesystem)** | File History + JSONL（JSON Lines——每行一条记录的日志格式）会话 | 快照、版本号、rewind 回滚——比 OS 文件系统还多了"时间旅行"能力 |
| **安全模型 (Security)** | 权限系统 + 沙箱 + 企业策略 | 十步权限状态机、seatbelt/bwrap 进程隔离、bypass-immune 规则——多层防御纵深 |

> 💡 **通俗理解**：权限系统就像**小区门禁**——业主（已批准操作）= 自动放行，访客（未知操作）= 要登记确认，外卖（沙箱内命令）= 扫码进，可疑人员（危险操作）= 直接拒绝。

> **[图表预留 0.3-B]**：安全模型全景图——四层纵深防御（权限 / 沙箱 / 命令预检 / 企业策略）× 三种威胁向量（Prompt 注入 / 文件越权 / 命令逃逸）的全景对照。

> **[图表预留 0.3-C]**：权限模型对照表——6 种权限模式（plan / default / acceptEdits / autoAccept / bypass / dontAsk）在各类工具（Read / Edit / Bash / Agent）上的"自动/确认/禁止"矩阵。

| **设备驱动 (Drivers)** | MCP 服务器 | 标准化协议（JSON-RPC）接入外部能力，就像驱动让 OS 操控不同厂商的硬件 |

> 💡 **通俗理解**：MCP 就像**MacBook 的 USB 转接口**——MacBook 只有 Type-C 口，想接鼠标键盘投影仪都需要转接器。MCP 就是 Claude 的万能转接器，让它能连接各种外部工具和服务。

> **[图表预留 0.3-D]**：MCP 传输方式对比矩阵——在延迟 / 吞吐 / 安全 / 复杂度 / 可靠性五个维度上对比 8 种 MCP 传输方式，给出每种方式的适用场景。

| **Shell** | REPL 终端界面（Ink/React——用网页技术 React 驱动终端界面的框架） | 用户和"内核"之间的交互层——React 组件树渲染在终端里 |
| **/etc/ 配置** | 设置系统（5 层 + 4 子层） | 从企业策略到用户偏好的九层配置合并，就像 /etc/ 下的系统配置覆盖用户 ~/.config |

> 💡 **通俗理解**：配置系统就像**穿衣服的层次**——贴身内衣 = 默认配置 → 衬衫 = 项目配置 → 外套 = 用户配置 → 防弹衣 = 企业策略。外层覆盖内层，但防弹衣（企业策略）最高优先级，谁也脱不掉。
>
> 此处比喻**仅为示意**，用 4 层"衣服"来传达"层层覆盖 + 外层优先"的直觉——真实的"九层配置体系"在 Part 4「设置系统完全解析」里会展开全部 9 层结构（5 个主层 + 4 个子层），本节只是建立直觉，不做精确对齐。

> **[图表预留 0.3-E]**：配置文件完整地图——`~/.claude/`（全局）→ `.claude/`（项目）→ 工作区 `CLAUDE.md` 的三层配置树、优先级链与每个文件的用途说明。

| **进程间通信 (IPC)** | Scratchpad（共享白板——多个 Agent 之间传递信息的临时文件） + Task Notification | Agent 之间不共享内存——通过文件（Scratchpad）和 XML 消息格式通信 |
| **开机引导 (Boot)** | main.tsx → init.ts → launchRepl | 三阶段启动：性能 I/O 预取、系统初始化、UI 渲染——和 BIOS → Bootloader → Kernel 一样 |

> 📚 **课程关联**：上面的对照表几乎覆盖了**操作系统**课程的完整大纲。建议对照学习：内核与系统调用 → 课本第 2-3 章；进程调度 → 第 5-6 章；文件系统 → 第 11-12 章；安全模型 → 第 14-15 章（以 Silberschatz《Operating System Concepts》为参考）。

> 💡 **通俗理解**：启动序列就像**早上起床流程**——闹钟响 = CLI 启动 → 洗漱 = 加载配置 → 穿衣 = 初始化模块 → 出门 = 就绪等待输入。每一步都不能跳过，但可以趁刷牙的时候热早餐（并行优化）。
| **内核模块 (Modules)** | Hooks 系统 | 在系统运行的 27 个关键节点注入自定义逻辑，就像 Linux 的可加载内核模块 |

> 💡 **通俗理解**：Hooks 就像**快递柜的短信通知**——快递到了自动通知你 = 事件钩子。你可以设置"到了通知我"或"直接放门口" = 自定义 Hook 行为。系统在关键时刻自动触发你预设的动作。

> **[图表预留 0.3-F]**：Hook 事件完整目录——27 个事件 × 4 个生命周期阶段（Session / Query / Tool / Agent）的完整挂载点清单，每个事件标注参数与典型用途。

| **包管理器 (apt/npm)** | 插件系统 + Skills | 第三方扩展的安装、验证、沙箱化执行——和 OS 的包管理器做同样的事 |

> **[图表预留 0.3-G]**：扩展生态地图——CLAUDE.md / Custom Commands / Skills / Hooks / MCP 五种扩展机制按"范围×复杂度"二维铺开，并标注它们之间的交汇点（MCP+Hooks、CLAUDE.md+Skills 等）。

> **[图表预留 0.3-H]**：模块依赖网络图——按集群（Tools / Commands / API / MCP / Config / Utils）染色的模块依赖图，标注 Tool.ts（in-degree 43）等枢纽节点与循环依赖。

> 在后续章节中，我们会在每个主要概念首次出现时，用 `🔑 OS 类比：` 标注它在操作系统中的对应物。你不需要记住这张表——它会在你需要时自然出现。

---

## 阅读路线

> **[图表预留 0.4-A]**：本书知识图谱——88 个章节按 5 个内容主题集群（Architecture / Engine / Tools / Security / Advanced）染色，用网络图呈现章节之间的引用与跳读路径，帮你在全书里找到最短路径。**注意**：这里的 "5 个集群" 是按内容主题做的图着色分组，不等于全书的 6 个 Part 分部（Part 1-6 是按阅读路线组织的大结构），两套划分是正交的，详见本节"阅读路线"正文。

> 📚 **关于章节编号的小说明**：本书在文件系统中的目录用 `part0_序章` / `part1_认识这个系统` / `part2_*` / `part3_*` 这样的命名（part0 是序章，part1-part5 是正文 5 个目录）。但下面"阅读路线"里讲的 **Part 1 / Part 2 / ...** 是从序章之后的"正文部分"开始算起的——因此正文里的 "Part 3 好奇心驱动的深度问答" 在文件系统中实际位于 `part2_好奇心驱动的深度问答/` 目录下（与 `part2_代码架构完全解构/` 同属"代码架构"和"问答"两个相邻目录）。这个看起来略微错位的命名是历史演化的结果，不影响阅读——只要记住"序章是 part0，后续目录从 part1 开始数；而本书叙述用的 Part 1-6 是正文的逻辑分组"就可以了。

全书分为六个部分，你可以按顺序读，也可以根据兴趣跳读：

### Part 1：认识这个系统
*从零开始建立认知。* 用五分钟看懂整体架构，学会阅读后续内容所需的全部概念。适合所有读者。

### Part 2：代码架构完全解构
*系统性地拆解整个代码库。* 从启动序列到终端 UI，按架构层次逐层解剖每一个子系统的设计、实体、组件和逻辑。这是本书的"地基"——如果你想真正理解这个系统是怎么搭起来的，这一部分不能跳。

### Part 3：好奇心驱动的深度问答
*27 个你可能好奇的问题。* "那三行在 import 之前的代码是什么把戏？""Claude 在你打字的时候偷偷在做什么？" 每个问题深入一个具体的工程细节，发现让人拍案叫绝的设计。适合随机翻阅。

### Part 4：子系统完全解析
*技术参考手册。* 30+ 个核心子系统的逐行深度解析（权限、MCP、Hooks、插件、沙箱、遥测、记忆、Bash AST、Cron、团队同步、Prompt Cache 可观测性、Peer/Session 发现层、assistant=viewer、Brief/Viewer 通道等），适合需要精确细节时查阅。

### Part 5：工程哲学
*从代码中提炼的设计原则。* "在等待时间里藏工作""Token 是一等公民""把 AI 当乐高积木"——六条可以带走用在你自己项目里的工程哲学（含 Prompt 八大设计智慧）。

> **[图表预留 0.4-B]**：性能优化全景——Prompt Cache、流式执行、投机执行等五大加速策略的 Before/After 对比，Part 5"工程哲学"章节将逐一拆解这些数字背后的工程取舍。

### Part 6：批判与超越
*诚实的代价分析。* 这个系统的复杂度代价是什么？如果我们从头设计会怎么做？怎么把这些思想用在你自己的项目里？

### 三条阅读路线：找到适合你的入口

**如果你是 CS 学生**（或刚学编程不久）：从序章 → Part 1"认识这个系统"开始，建立全局印象。遇到不懂的术语别焦虑，直接跳过——Part 3 的问答式章节更适合随机探索，每个问题自成一体。重点关注操作系统类比表（就在上面），它会帮你把课堂概念和真实系统对接。

**如果你是高级工程师**（已经在用 Claude Code 或类似工具）：直接跳到你关心的子系统——Part 4 是按模块组织的技术参考手册，每章开头有源码位置和关键数据结构索引。Part 5 的工程哲学章节提炼了可以直接用在你项目里的设计原则。Part 2 的架构解构适合需要理解全局数据流的场景。

**如果你是 AI 工具创业者或产品经理**（想理解 Agent 架构决策）：Part 6"批判与超越"是你的核心章节——它分析了这个系统的复杂度代价和替代方案。序章的行业背景和竞品全景提供了市场坐标系。Part 5 的设计哲学章节可以作为你自己产品的架构参考。

---

## 关于比喻

这本书会大量使用比喻和类比。这不是为了"通俗化"——是因为 Claude Code 涉及的很多概念（投机执行、提示词缓存边界、权限状态机、Token 预算）本身就很抽象。**好的比喻不是降低精度，是提供另一个入口。**

我们遵循一个原则：

> **比喻先行，精确随后。** 先用你已经懂的东西（操作系统、机场安检、城市财政）建立直觉，再用源代码和行号确认这个直觉是否准确。如果比喻和现实有出入，我们会明确指出哪里类比不成立。

你会在书中看到几个反复出现的比喻家族：

- **操作系统**（全局框架）：内核、系统调用、文件系统、进程调度……
- **机场安检**（安全模型）：安检通道、PreCheck、登机牌、海关……
- **城市财政**（Token 经济学）：预算、税收、基础设施复用……
- **三明治组装线**（提示词构建）：食材顺序、配方固定部分、个性化配料……
- **游戏存档**（文件历史）：自动存档、存档点、读档回滚……

每个比喻第一次出现时都会完整展开，后续引用时只用简称。

> **[图表预留 0.5-A]**：Claude Code 概念速查表——核心概念分 5 组（循环与执行 / 工具与 Agent / 安全与权限 / 上下文与 Token / 扩展与配置），阅读后续章节时可随时回这里查对。具体条目以 Part 1「读懂本书需要的全部概念」章节（定稿时 14 条核心概念 + 多个辨析条目，生成图表前以该章最终定稿数字为准，不要写死"25"）为准。

---

## 一个声明

本书的分析基于 Claude Code 2.1.88 版本在社区公开流传的源代码。我们对 Anthropic 的工程团队怀有真诚的敬意——这是一个设计精良的系统，很多决策在深入分析后让人由衷佩服。我们的批评同样真诚：指出设计取舍和潜在问题不是贬低，而是工程分析应有的态度。

代码会演进，版本会更新。书中的行号和具体实现可能在你阅读时已经改变。但设计理念和架构决策的生命力远比具体代码长——这才是本书试图传递的核心价值。

让我们开始。

---

## 快速导航：源码入口

本书分析的核心源码入口：

```
src/main.tsx          — 启动入口（4,684 行的巨型文件）
src/query.ts          — 查询循环核心（queryEngine AsyncGenerator，约 1,729 行）
src/tools/            — 40 个内置工具目录
src/utils/permissions/ — 权限系统（约 1,500 行）
src/memdir/           — 记忆系统
```

---

*→ 翻到 Part 1 第一章：[这不是聊天机器人](../part1_认识这个系统/01_这不是聊天机器人.md)*
