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 是同一个母题:省着用上下文窗口。