queryLoop
查询循环
Tools
工具系统
Bridge
远程桥接
Agent
智能体
Memory
记忆系统
Claude Code 2.1.88  ·  白皮书

Claude Code 2.1.88
白皮书

把 Claude Code 的每一寸电路板呈现给你

88 
39 万字
122 图表
185 Prompt 全收录
READY · PRESS ANY CTA TO BEGIN
88

从启动序列到安全架构的完整解析

40
个工具

逐一拆解每个内置工具的实现

122
张图表

交互式可视化辅助理解

一个终端里的聊天窗口,你打字、它回话。

一座完整的操作系统——40 个工具、9 层配置、4 层安全纵深,300ms 内启动就绪。

选择比喻视角
随时可在顶部切换

Claude Code 2.1.88

智慧城市 — 架构全景

88 章深度拆解 · 122 图表 · 185 prompt 全收录 · Claude Code 2.1.88 白皮书

点击任意组件深入探索 · 滚动查看详情

Terminal UI · 皮肤 QueryEngine 心脏 · 查询循环 1,295 行 · AsyncGenerator 提示词工厂 基因 · 六层三明治 15,000-34,000 token/次 工具运行时 双手 · 40 个工具 七步执行管线 Agent 编排 大脑 · 七种任务类型 配置治理 套娃 · 九层优先级 两套合并规则 状态与持久化 记忆 · 四级存储 JSONL + 硬链接复用 Token 经济学 血液 · 四种水价 Cache Hit 省 10 倍 安全架构 免疫 · 四层纵深防御 十步权限状态机 扩展生态 神经 · MCP + Hooks 8 种传输 · 27 事件 启动序列 BIOS · ~300ms 就绪 八种模式路由 代码地图 全景 · 1,884 文件 五区域 · 三条高速公路 终端 UI 皮肤 · React + Ink 389 组件 · 3 页面 TypeScript 源文件: 1,884 工具: 40 命令: 101 版本: 2.1.88 核心比喻: Agent OS 总章节: 88
滚动探索
0源文件
0工具
0命令
0章节
~300ms启动耗时
0配置层级
01

The Agent Loop

From keypress to rendered response, step by step through the source.

1
Input
2
Message
3
History
4
System
5
API
6
Tokens
7
Tools?
8
Loop
9
Render
10
Hooks
11
Await

User types a message or pipes input through stdin

● claude-code
$ Find all TODO comments in src/

Keyboard input comes from Ink's TextInput component. In non-interactive mode, it reads from piped stdin instead.

1 / 11
02

Architecture Explorer

1,884 files · 512,674 lines of TypeScript — interactive source code treemap

src/
点击模块进入查看子目录

Tool System — 40 个内置工具

AI 的双手:从读文件到操控屏幕,每个工具都是一种能力

Command Catalog — 斜杠命令全集

用户侧的完整控制面板:0 个公开命令 + 0 个内部命令

Hidden Features — 未公开的秘密武器

通过 feature() 门控的实验性功能——代码已就绪,开关未开启

03

Deep Dives

四个核心子系统的运行时数据流——从源码中提取的真实路径

用户输入keypress → TextInput
processUserInput()解析、拦截斜杠命令
System Prompt15K-34K tokens
API 请求messages + system + tools
SSE 响应流content_block_delta
📊 Token 四级计价
input
$3/M
cache_write
$3.75/M
cache_read
$0.30/M
output
$15/M
🎯 成本优化机制
Prompt Cache system prompt 缓存复用,节省 90%
DYNAMIC_BOUNDARY 将变化部分隔离在缓存线之上
softLimit 达到阈值时触发自动压缩
hardLimit 强制截断,防止单次请求超限
📂 关键源文件
src/cost-tracker.ts实时计费追踪
src/services/api/claude.tsAPI 请求构建
src/services/compact/压缩触发器
src/utils/messages.ts消息序列化
工具调用请求tool_use block from API
canUseTool()5 层权限检查
✓ 允许
YOLO 模式 (全部跳过)
已预批准的 glob 模式匹配
白名单命令 (ls, git status...)
✗ 拒绝
企业策略 (Policy) 禁止
文件路径在 deny 列表
危险命令检测 (rm -rf...)
? 询问用户
未知模式,需要确认
用户可选择 "允许/拒绝/永久允许"
🏗 5 层权限堆栈
1. Enterprise Policy(最高优先级)
2. 工具特定规则 (BashTool 危险命令表)
3. 文件系统规则 (glob 匹配)
4. 用户运行时决策缓存
5. YOLO 模式 (跳过全部)
📂 关键源文件
src/utils/permissions/24 文件, 9409 行
src/utils/bash/Bash AST 安全分析
src/tools/tools.tscanUseTool() 入口
src/hooks/toolPermission/UI 权限弹窗
1
监测触发
每次 API 响应后检查 usage.input_tokens
softLimit 上下文使用 > 70% → 建议压缩
hardLimit 上下文使用 > 95% → 强制压缩
2
消息切片
保留最近 N 条消息不压缩(preserveCount),其余进入压缩队列
3
Claude 摘要
调用 Claude API 将旧消息压缩为 <context_window_summary> XML 块
压缩后的摘要作为 system-reminder 注入,原消息删除
4
记忆提取
压缩时同时运行 extractMemories(),将重要信息写入 MEMORY.md
📂 关键源文件
src/services/compact/autoCompact.ts自动压缩触发器
src/services/compact/compactHistory.ts历史消息压缩
src/services/extractMemories.ts记忆提取
src/services/SessionMemory/会话记忆管理
System Prompt 组装流水线
每次 API 调用前实时组装,6 层三明治结构
🔒 Enterprise Policy ~2K tokens
企业管理员策略注入,最高优先级,不可被覆盖
getEnterprisePolicy()
── ⚡ DYNAMIC_BOUNDARY ── 以下内容被 Prompt Cache ──
📄 CLAUDE.md + Memory ~3K tokens
项目配置 + 用户记忆,通过 system-reminder 注入
getClaudeMdContent() + memoryFiles
🔧 Tool Descriptions ~8K tokens
40 个工具的 JSON Schema 描述,含参数定义和使用说明
tools.map(t => t.toToolDefinition())
📋 Base System Prompt ~6K tokens
核心行为指令:安全边界、输出风格、工具使用规范
BASE_SYSTEM_PROMPT 常量
🧬 Immutable Core ~2K tokens
不可修改的安全核心:身份声明、越狱防御、红线规则
IMMUTABLE_SYSTEM_PROMPT
总计 15K–34K tokens(取决于工具数量和 CLAUDE.md 大小)· 缓存命中率约 90%(仅 DYNAMIC_BOUNDARY 以上变化)

准备好深入了解了吗?

从 88 章完整解析中选择你最好奇的主题开始阅读