本页目录11
- Claude Code 围绕「收集上下文→执行操作→验证结果」三阶段循环运作,可随时打断并调整方向
- 内置五类工具(文件操作/搜索/执行/Web/代码智能),可通过 Skills、MCP、Hooks、Subagents 进一步扩展
- CLAUDE.md 和 auto memory 是跨会话持久化知识的核心机制,重要规则应写入 CLAUDE.md 而非依赖对话历史
- 每次文件编辑前自动快照(Checkpoints),按 Esc 两次可回滚;Shift+Tab 循环切换四种权限模式
- 上下文接近上限时自动压缩,可用 /compact 指定焦点,或借助 Subagents 独立上下文主动管理
- 高效提示三要素:开头具体说明约束、给出可验证标准、先探索后实现
本文是对官方文章《How Claude Code Works》的中文要点摘要,完整内容以原文为准。原文链接:https://code.claude.com/docs/en/how-claude-code-works
核心架构:三阶段 Agentic 循环
Claude Code 围绕一个**自主循环(Agentic Loop)**运作,每次任务分三个阶段:
- 收集上下文:搜索文件、读取代码、理解结构
- 执行操作:编辑文件、运行命令、调用工具
- 验证结果:跑测试、检查输出、按需修正
三个阶段并不严格分离——Claude 根据每步结果决定下一步,一个 bug 修复任务可能循环多轮。你随时可以按 Esc 打断并给出新方向,或直接输入纠正信息让 Claude 在当前操作完成后调整。
循环由两个引擎驱动:模型负责推理,工具负责行动。Claude Code 本身作为「agentic harness」,提供工具、上下文管理和执行环境。
模型选择
支持多个模型,用 /model 在会话中切换,或用 claude --model <name> 启动时指定。Sonnet 适合大多数编码任务;Opus 提供更强推理能力,适合复杂架构决策。
内置工具(五大类)
| 分类 | 能力 |
|---|---|
| 文件操作 | 读文件、编辑代码、新建/重命名文件 |
| 搜索 | 按模式查找文件、正则搜索内容 |
| 执行 | 运行 shell 命令、启动服务器、跑测试、使用 git |
| Web | 联网搜索、抓取文档、查错误信息 |
| 代码智能 | 类型错误提示、跳转定义、查找引用(需插件) |
此外还有生成子代理、向用户提问等编排工具。内置工具是基础,可通过 Skills、MCP、Hooks、Subagents 进一步扩展。
Claude 能访问什么
在某个目录下运行 claude 后,Claude 可访问:
- 你的项目:当前目录及子目录下的所有文件
- 你的终端:任何你能跑的命令(构建工具、git、包管理器、脚本等)
- git 状态:当前分支、未提交变更、近期提交历史
- CLAUDE.md:你维护的项目专属指令文件,每次会话都会加载
- Auto memory:Claude 自动积累的项目规律和偏好(MEMORY.md 前 200 行或 25KB)
- 已配置的扩展:MCP 服务、Skills、子代理、Claude in Chrome
由于 Claude 看到的是整个项目,它可以跨文件协作——这与只能看到当前文件的行内代码助手有本质区别。
运行环境与界面
| 环境 | 代码在哪里运行 | 适用场景 |
|---|---|---|
| 本地(Local) | 你的机器 | 默认,完整访问本地文件和工具 |
| 云端(Cloud) | Anthropic 托管 VM | 卸载任务、操作本地没有的仓库 |
| 远程控制(Remote Control) | 你的机器,从浏览器操控 | 用 Web UI 同时保持本地执行 |
界面支持终端、桌面应用、VS Code / JetBrains 插件、claude.ai/code、Slack、CI/CD 管道等,底层 agentic 循环完全一致。
会话管理
对话历史以 JSONL 格式保存在 ~/.claude/projects/ 下,支持回滚、恢复和分叉。
claude --continue/claude --resume:在同一会话 ID 下继续--fork-session//branch:复制历史到新会话 ID,原会话不变- 会话彼此独立:每次新会话都有全新上下文窗口;跨会话的「记忆」靠 auto memory 和 CLAUDE.md 持久化
如需并行多个 Claude 会话,可使用 git worktrees 为每个分支创建独立目录。
上下文窗口管理
上下文窗口装着对话历史、文件内容、命令输出、CLAUDE.md、auto memory、已加载的 Skills 和系统指令。
自动压缩机制:接近上限时,先清理旧工具输出,再摘要对话。早期的详细指令可能丢失——因此要把持久规则写进 CLAUDE.md 而非依赖对话历史。
控制压缩行为:
- 在 CLAUDE.md 里加「Compact Instructions」章节指定压缩焦点
- 运行
/compact focus on the API changes手动压缩并指定重点 - 运行
/context查看上下文占用情况
借助 Skills 和 Subagents 控制上下文:
- Skills 按需加载,设置
disable-model-invocation: true可让描述也不占用上下文 - Subagents 拥有独立的全新上下文,其工作不会污染主会话,完成后返回摘要
- MCP 工具定义默认延迟加载,只有工具名占用上下文
安全机制:Checkpoints 与权限
检查点(Checkpoints)
每次文件编辑前,Claude 都会自动快照原始内容。如果出错,按 Esc 两次可回滚,或直接告诉 Claude「撤销」。检查点是本地的、独立于 git 的,且仅覆盖文件变更——数据库、API、部署等远程操作无法被检查点覆盖。
权限模式
按 Shift+Tab 循环切换四种模式:
| 模式 | 行为 |
|---|---|
| 默认(Default) | 文件编辑和 shell 命令前都会询问 |
| 自动接受编辑(Auto-accept edits) | 文件编辑和常见文件系统命令无需确认,其他命令仍询问 |
| 计划模式(Plan mode) | 只探索和制定计划,不修改源文件 |
| 自动模式(Auto mode) | 后台安全检查评估所有操作(研究预览版) |
可在 .claude/settings.json 中白名单化可信命令(如 npm test、git status),让 Claude 不再每次询问。
高效使用技巧
- 迭代对话:不需要完美提示词,先说需求再逐步细化;按
Esc立即打断,或直接输入纠正信息。 - 开头越具体越好:指明文件路径、约束条件和示例模式,可显著减少来回次数。
- 给 Claude 可验证的标准:提供测试用例、UI 截图或期望输出,Claude 能自我检验。
- 先探索再实现:用计划模式(按
Shift+Tab两次)先让 Claude 读懂代码并制定方案,审查后再实施。 - 委托而非指挥:给出目标和上下文,不必指定每一步操作,Claude 会自行判断读哪些文件、跑哪些命令。
- 善用内置命令:
/init创建 CLAUDE.md,/agents配置子代理,/doctor诊断安装问题。