工作原理
理解 Claude Code 的底层机制,能帮助你更高效地使用它、减少意料之外的行为、写出更好的提示。
Agent Loop:核心运转模型
Claude Code 的一切行为都围绕 Agent Loop(代理循环)展开:
每一轮对话中,Claude Code 会:
- 理解意图:解析你的消息,结合当前项目上下文
- 制定计划:决定用什么工具、按什么顺序执行
- 调用工具:执行 Read / Write / Edit / Bash / Agent 等操作
- 观察结果:读取工具返回的结果,判断是否达到目标
- 迭代:如果结果不理想或需要更多操作,回到步骤 2
这个循环是 自主进行 的——你只需要在关键节点(权限确认、结果审查)介入。
工具系统
Claude Code 拥有一套完整的工具来操作你的项目。以下是核心工具及其用途:
文件工具
| 工具 | 作用 | 典型场景 |
|---|---|---|
| Read | 读取文件内容 | 理解现有代码、查看配置文件 |
| Write | 创建或覆写文件 | 新建文件、完全重写 |
| Edit | 精准文本替换 | 修改文件中特定位置 |
| Bash | 执行 Shell 命令 | 运行构建、测试、Git 操作 |
高级工具
| 工具 | 作用 | 典型场景 |
|---|---|---|
| Agent | 启动子代理 | 并行执行独立任务 |
| WebFetch | 抓取网页内容 | 查阅在线文档 |
| WebSearch | 搜索网络 | 获取最新信息 |
| TodoWrite | 管理任务列表 | 跟踪复杂任务进度 |
| TaskOutput | 获取后台任务结果 | 查询异步任务状态 |
工具调用机制
每次 Claude Code 决定使用工具时,会经历以下流程:
- 模型输出工具调用请求(JSON 格式)
- CLI/IDE 层解析请求,在本机执行
- 执行结果返回给模型
- 模型分析结果,决定下一步
对于 高风险操作(如 Bash 中的 rm -rf、Git push --force 等),系统会先弹出权限确认弹窗,由你决定是否允许。
上下文管理
Claude Code 的智能很大程度上来自它的上下文管理系统。每次对话,它都能访问:
1. System Prompt(系统提示词)
每次对话都附带一个预置的系统提示词,它定义了 Claude Code 的:
- 行为准则(安全性、编码风格)
- 工具使用说明
- 当前平台信息(操作系统、Shell 类型)
- Git 状态快照
你无法修改系统提示词,但可以通过 CLAUDE.md 追加指令。
2. CLAUDE.md(项目上下文)
项目根目录下的 CLAUDE.md 文件是 最重要的上下文来源。它在每次对话启动时被自动读取,内容可以包括:
- 项目架构说明
- 常用命令
- 编码规范
- 特定约定和注意事项
# CLAUDE.md
## Commands
- `pnpm dev` — 启动开发服务器
- `pnpm test` — 运行测试
## Architecture
- `src/` — 前端源码
- `api/` — 后端 API
- 使用 React + TypeScript + Tailwind3. Memory(持久化记忆)
Memory 系统会在项目目录 .claude/projects/<path>/memory/ 下存储持久化信息:
- 用户角色:你的技术背景、偏好
- 项目上下文:当前目标、已知问题
- 反馈记录:你之前的纠正和确认
这种记忆是跨会话的——下次打开 Claude Code 时,它会记得之前的约定。
4. 对话上下文窗口
每个模型都有上下文窗口限制:
| 模型 | 上下文窗口 |
|---|---|
| Opus 4.7 | 200K tokens |
| Sonnet 4.6 | 200K tokens |
| Haiku 4.5 | 200K tokens |
当对话接近窗口上限时,Claude Code 会自动压缩(compact)历史消息,保留关键信息,释放空间。你也可以手动执行 /compact 命令。
权限模型
Claude Code 的权限系统分为三个层级:
Level 1: 自动允许 — 读文件、搜索代码(无副作用)
Level 2: 按需确认 — 写文件、执行测试命令
Level 3: 始终确认 — rm、sudo、force push(高风险)你可以在 settings.json 中自定义权限规则:
{
"permissions": {
"allow": ["Bash(npm:*)", "Bash(git:status)", "Bash(git:diff)"],
"deny": ["Bash(rm:*)", "Bash(sudo:*)", "Bash(curl:*)"]
}
}安全沙箱
Claude Code 默认运行在一个受限环境中:
- 文件访问:限制在项目目录内
- 网络请求:需要通过 WebFetch/WebSearch 工具(可审核)
- Shell 命令:在子进程中执行,不影响主 Shell 状态
- 环境变量:不会自动读取
.env等敏感文件
模型选择与 Thinking 机制
可用模型
Claude Code 使用 Claude 4 系列模型:
- Opus 4.7:最强推理能力,适合复杂重构和架构设计
- Sonnet 4.6:平衡性能与速度,日常开发首选
- Haiku 4.5:最快响应,适合轻量任务
Thinking 模式
Claude Code 支持 Extended Thinking(深度思考模式),模型在进行复杂操作前会进行额外的推理:
- 默认自动激活,当任务需要深度分析时
- 你可以在指令中明确要求:"用 thinking 模式分析这个架构"
- 思考过程不占用输出 token
Fast Mode
VSCode 扩展支持 Fast Mode——在 Opus 模型上获得更快的输出速度,适合需要 Opus 推理能力又不想等待的场景。通过 /fast 命令切换。
关键设计原则
了解 Claude Code 的几条设计原则,有助于预测它的行为:
- 宁可不做也不错做:对于高风险操作,默认需要确认
- 上下文优先:先读文件理解,再动手修改
- 渐进式变更:倾向于小步迭代而非一次性大改
- 可逆性考量:优先选择可撤销的操作路径
- 透明化:所有工具调用和结果对你可见