Claude Code 学习站

深度解析 Claude Code 工作原理:Agentic 循环、工具与高效实践

系统梳理 Claude Code 的核心架构——三阶段 Agentic 循环、五类内置工具、会话管理、上下文控制、安全机制与高效使用技巧,帮助中文开发者快速掌握 Claude Code 底层逻辑。

本页目录11
AI 摘要 · 已核查整理于 2026-06-22原文:How Claude Code Works(Anthropic)子代理与多 Agent
要点速览
  • 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 testgit status),让 Claude 不再每次询问。

高效使用技巧

  1. 迭代对话:不需要完美提示词,先说需求再逐步细化;按 Esc 立即打断,或直接输入纠正信息。
  2. 开头越具体越好:指明文件路径、约束条件和示例模式,可显著减少来回次数。
  3. 给 Claude 可验证的标准:提供测试用例、UI 截图或期望输出,Claude 能自我检验。
  4. 先探索再实现:用计划模式(按 Shift+Tab 两次)先让 Claude 读懂代码并制定方案,审查后再实施。
  5. 委托而非指挥:给出目标和上下文,不必指定每一步操作,Claude 会自行判断读哪些文件、跑哪些命令。
  6. 善用内置命令:/init 创建 CLAUDE.md,/agents 配置子代理,/doctor 诊断安装问题。