Claude Code 架构图阅读目录
2026/4/27大约 6 分钟
Claude Code 架构图阅读目录
基于页面:
https://www.waylandz.com/diagrams/claude-code-architecture.html
整理目标:
- 先按架构图建立阅读顺序
- 再把每个功能模块映射到当前恢复版仓库里的实际文件
- 优先覆盖主干链路,不追求一次穷尽所有边缘特性
说明:
- 这是恢复版源码树,部分图上的能力可能被拆散、降级或用 shim 替代。
- 下文的“核心文件”适合第一遍阅读;“延伸文件”适合第二遍追踪调用链。
总阅读顺序
- 启动入口与 CLI 分流
- Query Loop 对话主循环
- System Prompt 与 API 请求组装
- Tool Runtime 与工具调度
- 权限系统与安全边界
- 上下文压缩与恢复
- Commands / Skills / Plugins / MCP 扩展层
- Agent / Task 子系统
- Interactive UI / Headless / Remote / Bridge / Server
- 状态持久化、历史与记忆
- Feature Flag、实验能力与遥测
1. 启动入口与 CLI 分流
架构图对应:
- Interactive REPL
- Headless
- Remote / CCR
- Bridge
- Server Mode
核心文件:
src/bootstrap-entry.tssrc/entrypoints/cli.tsxsrc/main.tsxsrc/commands.ts
延伸文件:
src/dev-entry.tssrc/bootstrap/state.tssrc/dialogLaunchers.tsxsrc/replLauncher.tsx
阅读重点:
bootstrap-entry.ts只做最外层准备,然后进入真正 CLI。entrypoints/cli.tsx负责各种 fast-path 分流,例如--version、bridge、daemon、background session。main.tsx是主程序装配中心,负责初始化、命令行、配置、服务和主循环接线。commands.ts是 slash command 注册中心。
2. Query Loop 对话主循环
架构图对应:
- Query Loop
- 单次迭代
- API 流式
- tool_use 检测
- tool_result 回填
- 循环控制
核心文件:
src/query.tssrc/QueryEngine.tssrc/query/config.tssrc/query/deps.tssrc/query/transitions.tssrc/query/stopHooks.ts
延伸文件:
src/utils/messages.tssrc/utils/api.tssrc/utils/attachments.tssrc/utils/sessionStorage.tssrc/services/toolUseSummary/toolUseSummaryGenerator.ts
阅读重点:
query.ts是最关键文件,负责一次 turn 中的流式请求、工具执行、错误恢复和继续条件。QueryEngine.ts是会话级对象,通常承载消息数组、文件缓存、用量等更高层状态。query/config.ts和query/deps.ts体现主循环把“策略”和“依赖实现”拆开。
3. System Prompt 与 API 请求组装
架构图对应:
- System Prompt 组装
- DYNAMIC_BOUNDARY
- Claude API 流式
- prompt cache
核心文件:
src/services/api/claude.tssrc/constants/prompts.tssrc/utils/systemPromptType.tssrc/context.tssrc/query.ts
延伸文件:
src/services/api/bootstrap.tssrc/services/api/client.tssrc/services/api/withRetry.tssrc/services/api/errors.tssrc/services/api/promptCacheBreakDetection.tssrc/constants/systemPromptSections.ts
阅读重点:
services/api/claude.ts看请求体怎么组装、模型参数怎么下发、流式响应怎么处理。constants/prompts.ts和context.ts看静态前缀与动态上下文如何合并。promptCacheBreakDetection.ts对应架构图里“cache break detection”。
4. Tool Runtime 与工具调度
架构图对应:
- Tool Runtime
- tools.ts 注册中心
- toolOrchestration.ts
- toolExecution.ts
- Tool.ts 统一协议
- StreamingToolExecutor
核心文件:
src/tools.tssrc/Tool.tssrc/services/tools/toolOrchestration.tssrc/services/tools/toolExecution.tssrc/services/tools/StreamingToolExecutor.ts
代表性工具文件:
src/tools/BashTool/BashTool.tssrc/tools/FileReadTool/FileReadTool.tssrc/tools/FileEditTool/FileEditTool.tssrc/tools/FileWriteTool/FileWriteTool.tssrc/tools/GlobTool/GlobTool.tssrc/tools/GrepTool/GrepTool.tssrc/tools/WebFetchTool/WebFetchTool.tssrc/tools/WebSearchTool/WebSearchTool.tssrc/tools/AgentTool/AgentTool.tssrc/tools/SkillTool/SkillTool.tssrc/tools/MCPTool/MCPTool.tssrc/tools/SendMessageTool/SendMessageTool.ts
阅读重点:
Tool.ts先看统一接口,再看具体工具。tools.ts看工具清单、稳定排序、feature gate 和不同运行环境下哪些工具会启用。toolOrchestration.ts看并发调度与分组策略。toolExecution.ts看 schema、权限、hook、遥测接入点。
5. 权限系统与安全边界
架构图对应:
- 4 路权限竞争
- PermissionMode
- User / Hook / Classifier / Bridge
- allow / deny / ask
- ResolveOnce
- Tool 安全边界
核心文件:
src/utils/permissions/PermissionMode.tssrc/utils/permissions/permissions.tssrc/utils/permissions/PermissionRule.tssrc/utils/permissions/permissionRuleParser.tssrc/utils/permissions/PermissionResult.tssrc/utils/permissions/PermissionUpdate.tssrc/utils/permissions/bashClassifier.tssrc/utils/permissions/classifierDecision.ts
延伸文件:
src/utils/permissions/pathValidation.tssrc/utils/permissions/filesystem.tssrc/utils/permissions/dangerousPatterns.tssrc/utils/permissions/denialTracking.tssrc/utils/permissions/shellRuleMatching.tssrc/utils/permissions/autoModeState.tssrc/remote/remotePermissionBridge.tssrc/bridge/bridgePermissionCallbacks.tssrc/hooks/toolPermission/handlers/interactiveHandler.tssrc/hooks/toolPermission/handlers/swarmWorkerHandler.tssrc/hooks/toolPermission/handlers/coordinatorHandler.ts
UI 对应文件:
src/components/permissions/PermissionDialog.tsxsrc/components/permissions/BashPermissionRequest/BashPermissionRequest.tsxsrc/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsxsrc/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsxsrc/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx
阅读重点:
- 先理解 permission mode 与 rule model,再看 bash classifier。
- 再看 interactive UI、bridge、worker 这几路审批入口怎样汇合。
6. Shell、PowerShell 与沙箱
架构图对应:
- Shell / 子进程
- Bash / PowerShell
- sandbox
核心文件:
src/tools/BashTool/BashTool.tssrc/tools/BashTool/bashPermissions.tssrc/tools/BashTool/bashSecurity.tssrc/tools/PowerShellTool/PowerShellTool.tsxsrc/tools/PowerShellTool/powershellPermissions.tssrc/tools/PowerShellTool/powershellSecurity.tssrc/utils/Shell.tssrc/utils/ShellCommand.tssrc/utils/sandbox/sandbox-adapter.ts
延伸文件:
src/utils/bash/parser.tssrc/utils/bash/bashParser.tssrc/utils/bash/treeSitterAnalysis.tssrc/utils/bash/registry.tssrc/utils/shell/resolveDefaultShell.tssrc/tasks/LocalShellTask/LocalShellTask.tsx
阅读重点:
- Bash/PowerShell 工具层负责“如何暴露给模型”。
utils/bash/*负责命令解析和安全语义。sandbox-adapter.ts负责把命令落到实际沙箱执行层。
7. 上下文压缩与恢复
架构图对应:
- 5 层上下文压缩
- snip compact
- microcompact
- context collapse
- autoCompact
- reactive PTL
- compact boundary
核心文件:
src/services/compact/snipCompact.tssrc/services/compact/apiMicrocompact.tssrc/services/compact/compact.tssrc/services/compact/autoCompact.tssrc/services/compact/reactiveCompact.tssrc/services/contextCollapse/index.tssrc/services/contextCollapse/operations.tssrc/services/contextCollapse/persist.ts
延伸文件:
src/services/compact/postCompactCleanup.tssrc/services/compact/sessionMemoryCompact.tssrc/services/compact/prompt.tssrc/query.tssrc/utils/messages.ts
阅读重点:
- 这块最好直接从
query.ts里的调用点反向跳进去读。 - 图上的“五层压缩”在代码里分布在
services/compact/与services/contextCollapse/两个区域。
8. Commands / Skills / Plugins / MCP 扩展层
架构图对应:
- 四层扩展体系
- Commands
- Skills
- Plugins
- MCP Client
8.1 Commands
核心文件:
src/commands.tssrc/types/command.ts
延伸文件:
src/commands/*
阅读重点:
- 从
commands.ts看所有内建命令如何注册、按 feature 动态启用、和插件/skill 命令如何合并。
8.2 Skills
核心文件:
src/skills/loadSkillsDir.tssrc/skills/mcpSkills.tssrc/skills/bundled/
延伸文件:
src/utils/skills/skillChangeDetector.tssrc/components/skills/SkillsMenu.tsx
阅读重点:
- 动态发现本地技能目录。
- bundled skills 如何作为 Markdown prompt 资源接入。
8.3 Plugins
核心文件:
src/plugins/builtinPlugins.tssrc/services/plugins/PluginInstallationManager.tssrc/services/plugins/pluginCliCommands.tssrc/services/plugins/pluginOperations.tssrc/utils/plugins/loadPluginCommands.tssrc/utils/plugins/loadPluginHooks.tssrc/utils/plugins/loadPluginAgents.tssrc/utils/plugins/pluginLoader.ts
延伸文件:
src/utils/plugins/pluginDirectories.tssrc/utils/plugins/managedPlugins.tssrc/utils/plugins/validatePlugin.tssrc/utils/plugins/mcpPluginIntegration.tssrc/utils/plugins/lspPluginIntegration.ts
阅读重点:
- 插件并不只是命令,代码里还覆盖 skill、hook、agent、MCP 等接入面。
8.4 MCP
核心文件:
src/services/mcp/client.tssrc/services/mcp/config.tssrc/services/mcp/types.tssrc/services/mcp/MCPConnectionManager.tsxsrc/services/mcp/InProcessTransport.tssrc/services/mcp/SdkControlTransport.tssrc/tools/MCPTool/MCPTool.tssrc/tools/ListMcpResourcesTool/ListMcpResourcesTool.tssrc/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts
延伸文件:
src/services/mcp/auth.tssrc/services/mcp/officialRegistry.tssrc/services/mcp/normalization.tssrc/services/mcp/channelPermissions.tssrc/services/mcp/elicitationHandler.tssrc/services/mcp/claudeai.ts
阅读重点:
- 先看 MCP 配置与 client,再看连接管理和资源读取工具。
9. Agent / Task 子系统
架构图对应:
- AgentTool
- Task 统一壳
- local_agent / remote / bash / workflow
- SendMessageTool
- worktree / remote 隔离
- Coordinator
核心文件:
src/tools/AgentTool/AgentTool.tssrc/tools/SendMessageTool/SendMessageTool.tssrc/tasks/types.tssrc/tasks/LocalAgentTask/LocalAgentTask.tsxsrc/tasks/RemoteAgentTask/RemoteAgentTask.tsxsrc/tasks/LocalShellTask/LocalShellTask.tsxsrc/tasks/LocalWorkflowTask/LocalWorkflowTask.tssrc/tasks/LocalMainSessionTask.ts
延伸文件:
src/coordinator/coordinatorMode.tssrc/coordinator/workerAgent.tssrc/tasks/InProcessTeammateTask/InProcessTeammateTask.tsxsrc/tasks/MonitorMcpTask/MonitorMcpTask.tssrc/tasks/DreamTask/DreamTask.tssrc/utils/worktree.tssrc/tools/EnterWorktreeTool/EnterWorktreeTool.tssrc/tools/ExitWorktreeTool/ExitWorktreeTool.ts
阅读重点:
- 这块体现“Agent 是一级概念”。
- 先看
AgentTool如何派生任务,再看不同 task 类型怎样共享壳层与生命周期。
10. Interactive UI / Headless / Remote / Bridge / Server
架构图对应:
- Interactive REPL React/Ink
- Headless / SDK
- Remote / CCR WebSocket
- Bridge 工作节点
- Server Mode HTTP API
10.1 Interactive REPL / Ink
核心文件:
src/main.tsxsrc/replLauncher.tsxsrc/components/src/hooks/
阅读重点:
main.tsx决定何时进入交互模式。components/与hooks/是终端 UI 层。
10.2 Headless / SDK
核心文件:
src/query.tssrc/interactiveHelpers.tsxsrc/dialogLaunchers.tsx
说明:
- 当前恢复树里“headless”相关逻辑分散在主循环、输出渲染和命令分流,没有单独一个
headless.ts式总入口。
10.3 Remote / CCR
核心文件:
src/remote/RemoteSessionManager.tssrc/remote/SessionsWebSocket.tssrc/remote/sdkMessageAdapter.tssrc/remote/remotePermissionBridge.ts
10.4 Bridge
核心文件:
src/bridge/bridgeMain.tssrc/bridge/bridgeApi.tssrc/bridge/remoteBridgeCore.tssrc/bridge/sessionRunner.tssrc/bridge/createSession.tssrc/bridge/bridgeMessaging.tssrc/bridge/bridgeConfig.ts
延伸文件:
src/bridge/replBridge.tssrc/bridge/replBridgeTransport.tssrc/bridge/bridgePermissionCallbacks.tssrc/bridge/trustedDevice.ts
10.5 Server Mode
核心文件:
src/server/createDirectConnectSession.tssrc/server/directConnectManager.tssrc/server/types.ts
阅读重点:
- 这几块适合在理解 Query Loop 之后再读,否则会被传输层细节打散注意力。
11. 状态持久化、历史与记忆
架构图对应:
- bootstrap/state.ts
- AppStateStore
- sessionStorage.ts
- history.ts
- fileHistory
- memdir
核心文件:
src/bootstrap/state.tssrc/state/AppStateStore.tssrc/utils/sessionStorage.tssrc/utils/sessionStoragePortable.tssrc/history.tssrc/utils/fileHistory.tssrc/memdir/memdir.tssrc/memdir/findRelevantMemories.tssrc/memdir/teamMemPaths.tssrc/memdir/memoryScan.ts
延伸文件:
src/services/SessionMemory/sessionMemory.tssrc/services/SessionMemory/sessionMemoryUtils.tssrc/projectOnboardingState.ts
阅读重点:
bootstrap/state.ts是进程级状态。AppStateStore.ts是运行时 UI/应用状态。sessionStorage.ts与 transcript 恢复强相关。memdir/与SessionMemory/是“长期记忆/团队记忆”方向。
12. Feature Flag、实验能力与遥测
架构图对应:
- Feature-Flagged
- GrowthBook
- BUDDY
- KAIROS
- ULTRAPLAN
- analytics / OTel / Datadog
核心文件:
src/services/analytics/growthbook.tssrc/services/analytics/index.tssrc/services/analytics/datadog.tssrc/services/analytics/config.ts
与实验能力直接相关的目录:
src/services/autoDream/src/coordinator/src/tasks/DreamTask/src/bridge/src/tools/BriefTool/BriefTool.tssrc/tools/RemoteTriggerTool/RemoteTriggerTool.ts
阅读重点:
- 先看 GrowthBook 与 analytics,再回头看各 feature flag 如何在
main.tsx、commands.ts、tools.ts中控制模块挂载。
建议的第一轮阅读清单
如果你准备按“先主干、后扩展”的方式学,建议顺序如下:
src/bootstrap-entry.tssrc/entrypoints/cli.tsxsrc/main.tsxsrc/commands.tssrc/query.tssrc/QueryEngine.tssrc/services/api/claude.tssrc/Tool.tssrc/tools.tssrc/services/tools/toolOrchestration.tssrc/services/tools/toolExecution.tssrc/utils/permissions/permissions.tssrc/services/compact/compact.tssrc/services/contextCollapse/index.tssrc/services/mcp/client.tssrc/tasks/LocalAgentTask/LocalAgentTask.tsxsrc/bootstrap/state.tssrc/utils/sessionStorage.ts
图与仓库的名称差异
- 架构图写的是
sessionStorage.ts,当前仓库实际在src/utils/sessionStorage.ts。 - 架构图写的是
AppStateStore,当前仓库实际文件是src/state/AppStateStore.ts。 - 架构图写的是
Tool Runtime,代码里分散在Tool.ts、tools.ts、services/tools/和各src/tools/*下。 - 架构图把 “Bridge / Remote / Server” 画成独立块,恢复版代码里这三块的边界是清晰的,但很多权限、消息、状态逻辑会交叉复用。