Claude Code泄漏源码的核心架构与流程解析mermaid图
💡 颜色标记
-
🟢 绿色 (
#51cf66) – 成功/完成/正确做法 -
🟡 黄色 (
#ffd43b) – 重点/关键步骤 -
🔵 蓝色 (
#339af0) – 核心组件 -
🔴 红色 (
#ff6b6b) – 失败/错误/问题

分模块详细流程图
1. 核心工作引擎循环流程

2. 提示词五层装配系统
graph TB
subgraph 提示词动态装配
L1[Layer 1: 基础身份<br>面向软件工程的Agent]
L2[Layer 2: 运行时环境注入<br>Git状态/CLAUDE.md/日期/语言偏好]
L3[Layer 3: 用户附加规则<br>回复用中文/先给方案/目录限制]
L4[Layer 4: 角色与模式附加<br>Teammate模式/协作约束]
L5[Layer 5: 工具与后台提示词<br>工具使用说明/后台流程]
end
L1 --> L2
L2 --> L3
L3 --> L4
L4 --> L5
L5 --> Final[最终完整提示词]
style L2 fill:#ffd43b
style Final fill:#51cf66
3. 上下文压缩完整流程
graph TD
A[对话进行中] --> B{检测上下文}
B -->|currentTokens + 20000 > limit| C[触发压缩]
B -->|未达阈值| A
C --> D[开启独立新对话]
D --> E[发送压缩专用Prompt]
E --> F[模型生成analysis草稿]
F --> G[模型生成summary摘要]
G --> H{压缩成功?}
H -->|成功| I[提取summary内容]
H -->|失败| J{连续失败次数}
J -->|< 3次| E
J -->|>= 3次| K[电路熔断<br>停止重试]
I --> L[替换主对话旧消息]
L --> M[关闭压缩对话]
M --> N[回到主流程]
style D fill:#ffd43b
style K fill:#ff6b6b
style N fill:#51cf66
4. 工具系统架构图
graph TB
subgraph Claude Code Core
Engine[核心引擎]
subgraph 内置工具
File[📁 文件工具<br>Read/Edit/Write/Glob/Grep]
Env[🖥️ 环境工具<br>Bash/WebSearch/WebFetch]
Session[💬 会话工具<br>AskUser/Plan/Todo]
Collab[🤝 协作工具<br>Agent/Task/MCP/Skill]
end
MCP[MCP Client<br>统一接口]
end
Engine --> File
Engine --> Env
Engine --> Session
Engine --> Collab
Engine --> MCP
MCP --> Server1[MCP Server A<br>stdio]
MCP --> Server2[MCP Server B<br>http/sse]
MCP --> Server3[MCP Server C<br>WebSocket]
style Engine fill:#339af0
style MCP fill:#ffd43b
5. Skill 执行流程
graph TD
A[启动时扫描] --> B[读取SKILL.md文件]
B --> C[解析为command对象]
C --> D[加载到系统]
D --> E[用户发起任务]
E --> F[模型看到Skill简介列表]
F --> G{判断需要Skill?}
G -->|不需要| H[直接执行]
G -->|需要| I[调用SkillTool]
I --> J[找到对应Skill]
J --> K[检查可执行性]
K --> L{决定执行模式}
L -->|简单任务| M[inline模式<br>当前上下文直接执行]
L -->|复杂任务| N[fork模式<br>开子Agent独立上下文]
M --> O[返回结果给主流程]
N --> O
style M fill:#51cf66
style N fill:#ffd43b
6. MCP 集成流程

7. 双重熔断机制对比
graph LR
subgraph 只用轮次限制
A1[开始] --> A2{turns < maxTurns?}
A2 -->|是| A3[继续执行]
A2 -->|否| A4[停止]
A3 --> A5[❌ 每轮大量token<br>成本失控]
end
subgraph 只用预算限制
B1[开始] --> B2{cost < maxBudget?}
B2 -->|是| B3[继续执行]
B2 -->|否| B4[停止]
B3 --> B5[❌ 死循环小额消费<br>永不收敛]
end
subgraph 双重熔断
C1[开始] --> C2{turns < maxTurns<br>AND<br>cost < maxBudget?}
C2 -->|是| C3[继续执行]
C2 -->|否| C4[停止]
C3 --> C5[✅ 既防死循环<br>又防超支]
end
style A5 fill:#ff6b6b
style B5 fill:#ff6b6b
style C5 fill:#51cf66
夜雨聆风