INDEX · Claude Code
Claude Code 架构解读索引
阅读方法:架构解读,非源码转录。 基于 Claude Code 2.1.88 的 TypeScript 源码,只引签名级片段,实现细节用文字描述。 整份源码不进本仓,笔记只讲设计。 按下面顺序读,从「一个工具是什么」到「主循环怎么驱动」再到「权限与子代理」。
篇目
| 篇 | 一句话 |
|---|---|
| 01-Tool 抽象 | Tool<Input,Output,P> 接口统一 src/tools/ 下 40 个工具目录,buildTool fail-closed 默认,schema 一处定义三处复用 |
| 02-内置工具全景 | src/tools/ 下 40 个工具目录按文件/搜索/命令/任务/协作/扩展分六类,懒加载(defer+ToolSearch)、并发安全分流、结果落盘阈值 |
| 03-agent 主循环 | query() async generator:循环「调模型 → 跑工具 → 结果回灌」,流式 fallback、上下文 compact |
| 04-权限系统 | 七种 PermissionMode,Tool.checkPermissions 四态(allow/deny/ask/passthrough),auto 模式安全分类器,fail-closed |
| 05-任务与子代理 | 七种 TaskType,generateTaskId 防碰撞,createSubagentContext 克隆派生子代理、复用 prompt 缓存 |
主线
模型只认识”工具”这个统一概念 → 01-Tool 抽象 定义接口、02-内置工具全景 是它的 40 个工具目录实例。
主循环 03-agent 主循环 把模型输出里的 tool_use 翻译成真实执行,每次调用前过 04-权限系统 这道闸。
复杂多步任务丢给 05-任务与子代理 隔离上下文并行跑,只把结论回灌主对话。
这和 Read 落盘、主循环 compact 是同一个母题:省着用上下文窗口。