# ClaudeCode 代码解读：从请求到工具执行

本篇作为快速上手章节，聚焦 ClaudeCode 在一次请求中的关键执行链路，帮助你先建立“读源码的主地图”。

## 1. 主流程总览

你可以把一次请求理解为四步：

1. 解析输入与上下文
2. 构建系统提示词（System Prompt）
3. 触发模型推理并决定是否调用工具
4. 写回会话状态并产出响应

## 2. 建议优先阅读的模块

- `query.ts`：主循环入口，串联一次请求执行
- `QueryEngine`：会话状态与消息编排核心
- `tool` 相关模块：工具定义、权限判断、执行与结果回填
- `hooks` 相关模块：用户侧扩展能力，介入请求生命周期

## 3. 阅读顺序建议

- **第一遍**：只看函数调用关系，画出流程图
- **第二遍**：关注状态结构（消息、上下文、工具结果）
- **第三遍**：关注异常处理与边界（超时、权限、失败回滚）

## 4. 你可以重点回答的三个问题

- ClaudeCode 在哪里决定“继续对话”还是“调用工具”？
- 工具执行失败后，错误如何反馈给模型继续推理？
- 会话上下文如何压缩，避免 token 爆炸？

---

继续阅读建议：先看 `query.ts` 主循环，再看工具系统与上下文压缩章节，会更容易建立完整认知。
