Faster Claude

Claude Code 如何工作

了解代理循环、内置工具以及 Claude Code 如何与您的项目交互。

Claude Code 是一个在您的终端中运行的代理助手。虽然它在编码方面表现出色,但它可以帮助您完成从命令行可以做的任何事情:编写文档、运行构建、搜索文件、研究主题等。

代理循环

当您给 Claude 一个任务时,它会经历三个阶段:收集上下文、采取行动和验证结果。这些阶段相互融合。Claude 始终使用工具,无论是搜索文件以了解您的代码、编辑以进行更改,还是运行测试以检查其工作。

循环会根据您的要求进行调整。关于您代码库的问题可能只需要收集上下文。错误修复会循环通过所有三个阶段多次。重构可能涉及广泛的验证。Claude 根据从前一步学到的内容决定每一步需要什么,将数十个操作链接在一起并沿途进行纠正。

您也是这个循环的一部分。您可以在任何时刻中断以引导 Claude 朝不同的方向发展、提供额外的上下文或要求它尝试不同的方法。Claude 自主工作但对您的输入保持响应。

代理循环由两个组件驱动:模型进行推理和工具采取行动。Claude Code 充当 Claude 周围的代理框架:它提供工具、上下文管理和执行环境,将语言模型转变为能够进行编码的代理。

模型

Claude Code 使用 Claude 模型来理解您的代码并推理任务。Claude 可以读取任何语言的代码、理解组件如何连接,以及找出需要改变什么来实现您的目标。对于复杂的任务,它将工作分解为步骤、执行它们,并根据学到的内容进行调整。

多个模型可用,具有不同的权衡。Sonnet 可以很好地处理大多数编码任务。Opus 为复杂的架构决策提供更强的推理能力。在会话期间使用 /model 切换或使用 claude --model <名称> 启动。

当本指南说「Claude 选择」或「Claude 决定」时,是模型在进行推理。

工具

工具是使 Claude Code 成为代理的原因。没有工具,Claude 只能用文本回应。有了工具,Claude 可以采取行动:读取您的代码、编辑文件、运行命令、搜索网络并与外部服务交互。每个工具使用都会返回信息,反馈到循环中,告知 Claude 的下一个决定。

内置工具通常分为五类:

类别Claude 可以做什么
文件操作读取文件、编辑代码、创建新文件、重命名和重新组织
搜索按模式查找文件、使用正则表达式搜索内容、探索代码库
执行运行 shell 命令、启动服务器、运行测试、使用 git
网络搜索网络、获取文档、查找错误消息
代码智能编辑后查看类型错误和警告、跳转到定义、查找引用(需要代码智能插件)

Claude 根据您的提示和沿途学到的内容选择使用哪些工具。当您说「修复失败的测试」时,Claude 可能会运行测试套件、读取错误、搜索源文件、编辑修复问题,然后再次运行测试验证。

您可以使用 skills、MCP、hooks 和 subagents 在核心代理循环之上扩展能力。

Claude 可以访问什么

当您在目录中运行 claude 时,Claude Code 可以访问:

  • 您的项目 — 目录及子目录中的文件,以及经您许可的其他位置文件
  • 您的终端 — 您能运行的任何命令:构建工具、git、包管理器、系统实用程序、脚本
  • 您的 git 状态 — 当前分支、未提交的更改和最近的提交历史
  • 您的 CLAUDE.md — 每个会话加载的项目说明、约定和上下文
  • 自动记忆 — Claude 自动保存的学习内容;MEMORY.md 的前 200 行或 25KB 在会话开始时加载
  • 您配置的扩展 — MCP 服务器、skills、subagents、Claude in Chrome 浏览器交互

因为 Claude 看到整个项目,它可以跨项目工作:搜索、阅读多个文件、协调编辑、运行测试,并在您要求时提交。

环境和界面

执行环境

环境代码运行位置用例
本地您的机器默认。完全访问文件、工具和环境
Anthropic 管理的虚拟机卸载任务、处理本地没有的仓库
远程控制您的机器,从浏览器控制使用 Web UI 同时保持一切本地

代理循环、工具和能力在各处相同;变化的是代码执行位置及交互方式。

使用会话

Claude Code 在本地保存对话。每条消息、工具使用和结果写入 ~/.claude/projects/。在代码更改前,Claude 会对受影响文件快照以便恢复。

会话相互独立。每个新会话以新的上下文窗口开始。Claude 可通过自动记忆跨会话保持学习;在 CLAUDE.md 中添加持久说明。

使用 claude --continueclaude --resume 恢复。使用 --fork-session/branch 将历史复制到新会话 ID。

上下文窗口

Claude 的上下文窗口保存对话历史、文件内容、命令输出、CLAUDE.md、自动记忆、已加载 skills 和系统说明。工作时上下文会填满。Claude 会自动压缩,但对话早期的说明可能丢失。将持久规则放在 CLAUDE.md 中,运行 /context 查看占用。

上下文满时,Claude 先清除较旧的工具输出,必要时再总结。持久规则应写在 CLAUDE.md 而非仅依赖对话历史。用 /compact 并指定焦点(如 /compact focus on the API changes)控制压缩后保留的内容。

对手动调用的 skill 使用 disable-model-invocation: true;长调研用 subagents,避免撑爆主会话。

使用检查点和权限保持安全

使用检查点撤销更改

每个文件编辑都可逆。Claude 编辑前会快照当前内容。连按两次 Esc 回退,或要求 Claude 撤销。检查点限于当前会话且仅涵盖文件更改。

控制 Claude 可以做什么

Shift+Tab 循环权限模式:

  • 默认 — 文件编辑和 shell 命令前询问
  • 自动接受编辑 — 编辑文件及 mkdirmv 等常见文件系统命令时不询问
  • 计划模式 — 仅只读工具;执行前先出计划
  • 自动模式 — 后台安全检查后评估操作(研究预览)

.claude/settings.json 中允许特定命令以免每次询问。参见 权限配置权限模式

有效使用 Claude Code

向 Claude Code 寻求帮助

可问「如何设置 hooks?」或「如何构建 CLAUDE.md?」。内置命令:/init/agents/doctor

这是一个对话

从目标开始再细化。第一次不对就迭代,无需重来。

中断和引导:Esc 立即停止。输入纠正并按 Enter 可在不停止当前工具的情况下发送;当前操作完成后 Claude 会读取并调整。

预先具体

指明文件、约束与示例模式:

结账流程对于持有过期卡的用户来说已损坏。
检查 src/payments/ 中的问题,尤其是令牌刷新。
首先编写一个失败的测试,然后修复它。

给 Claude 验收依据

提供测试用例、预期 UI 截图或明确输出。视觉工作可贴截图要求对照实现。

在实现之前探索

先用计划模式(连按两次 Shift+Tab)分析代码库,审查计划后再实现。

委派,不要指示

给出上下文与方向,让 Claude 自行选择文件与命令:

结账流程对于持有过期卡的用户来说已损坏。
相关代码在 src/payments/ 中。您可以调查并修复它吗?

On this page