了解 Claude Code 的智能代理循环、内置工具,以及它如何与你的项目交互。
Claude Code 是什么
Claude Code 是一个运行在终端中的智能代理(Agentic Agent)。虽然它擅长编程,但它能帮你做任何命令行能做的事情:编写文档、运行构建、搜索文件、研究课题等。
智能代理循环(The Agentic Loop)
当你给 Claude 一个任务时,它会经历三个阶段:
- 收集上下文 — 读取文件、搜索代码、理解现状
- 采取行动 — 编辑文件、运行命令、创建新内容
- 验证结果 — 运行测试、检查输出、确认改动正确
这三个阶段是交织在一起的。Claude 在整个过程中持续使用工具——无论是搜索文件来理解代码,还是编辑文件来做修改,还是运行测试来验证工作。
代理循环会根据你的问题灵活调整:
- 一个关于代码库的问题可能只需要收集上下文
- 一个 Bug 修复会反复循环所有三个阶段
- 一次重构可能需要大量验证工作
Claude 根据上一步学到的信息决定下一步需要什么,将数十个操作串联在一起,并在过程中调整方向。
模型(Models)
Claude Code 使用 Claude 模型来理解代码和推理任务。Claude 能读懂任何编程语言的代码,理解组件之间的连接方式,并确定需要修改什么来实现你的目标。
- Sonnet:适合大多数编程任务,速度快、效果好
- Opus:提供更强的推理能力,适合复杂的架构决策
在会话中用 /model 切换模型,或启动时用 claude --model <名称> 指定。
工具(Tools)
工具是 Claude Code 具备"代理能力"的关键。没有工具,Claude 只能输出文字;有了工具,Claude 可以行动:
| 工具类别 | Claude 能做什么 |
|---|---|
| 文件操作 | 读取文件、编辑代码、创建新文件、重命名和重组 |
| 搜索 | 按模式查找文件、正则搜索内容、探索代码库 |
| 命令执行 | 运行 Shell 命令、启动服务、运行测试、操作 Git |
| Web 访问 | 搜索网页、抓取文档、查找错误信息 |
| 代码智能 | 查看类型错误和警告、跳转到定义、查找引用 |
Claude 根据你的提示和沿途学到的信息选择使用哪些工具。例如,当你说"修好失败的测试"时,Claude 可能会:
- 运行测试套件查看哪些失败了
- 读取错误输出
- 搜索相关源文件
- 读取文件以理解代码
- 编辑文件修复问题
- 再次运行测试验证
每次工具使用都给 Claude 带来新信息,这些信息又指导下一步行动。这就是智能代理循环的运行方式。
Claude 能访问什么
当你在目录中运行 claude 时,它可以访问:
- 你的项目 — 目录和子目录中的文件,以及经你许可的其他位置的文件
- 你的终端 — 任何你能运行的命令:构建工具、Git、包管理器、系统工具、脚本
- 你的 Git 状态 — 当前分支、未提交的更改、最近的提交历史
- CLAUDE.md — 你放在项目根目录的 Markdown 文件,Claude 每次会话开始时都会读取,包含项目指令和规范
- 自动记忆 — Claude 在工作中自动保存的经验和偏好,如构建命令和调试心得
- 扩展功能 — MCP 服务器(连接外部服务)、技能(封装工作流)、子代理(委托任务)
因为 Claude 能看到整个项目,它可以跨文件工作。当你说"修好认证 Bug"时,它会搜索相关文件、读取多个文件理解上下文、跨多个文件协调修改、运行测试验证修复,并按你的要求提交更改。这与只能看到当前文件的行内代码助手不同。
会话(Sessions)
Claude Code 会将你的对话本地保存。每条消息、每次工具使用和结果都以纯文本 JSONL 格式存储在 ~/.claude/projects/ 目录下。
会话是独立的
每个新会话都从全新的上下文窗口开始,不包含之前会话的对话历史。Claude 可以通过自动记忆跨会话持久化经验,你也可以通过 CLAUDE.md 添加自己的持久化指令。
继续或分支会话
claude --continue或claude --resume:继续同一个会话claude --fork-session或/branch:复制历史到新会话,保留原始不变
上下文窗口
Claude 的上下文窗口包含:对话历史、文件内容、命令输出、CLAUDE.md、自动记忆、加载的技能和系统指令。
当上下文满了
Claude Code 会在接近上限时自动管理上下文:
- 首先清除较早的工具输出
- 然后压缩对话摘要
- 你的请求和关键代码片段会被保留
- 早期对话中的详细指令可能会丢失
建议:将持久化规则放在 CLAUDE.md 中,而不是依赖对话历史。运行 /context 可以查看上下文使用情况。
用技能和子代理管理上下文
- 技能:按需加载。会话开始时只加载描述,完整内容仅在使用时加载
- 子代理:获得独立的上下文,与主会话完全隔离。工作完成后返回摘要,不会膨胀你的上下文
安全机制:检查点和权限
检查点(Checkpoints)
每次文件编辑都是可逆的。在 Claude 编辑任何文件之前,它会保存当前内容的快照。如果出了问题,按两次 Esc 回滚到之前的状态,或直接让 Claude 撤销。
检查点与会话本地绑定,与 Git 分开。它们只覆盖文件更改。影响远程系统的操作(数据库、API、部署)无法被检查点,这就是为什么 Claude 在运行有外部副作用的命令前会先询问你。
权限模式
按 Shift+Tab 切换权限模式:
| 模式 | 行为 |
|---|---|
| 默认 | Claude 在编辑文件和运行 Shell 命令前会询问你 |
| 自动接受编辑 | Claude 可以不经询问编辑文件和运行常用命令(如 mkdir、mv),其他命令仍需确认 |
| 计划模式 | Claude 只使用只读工具,创建计划等你批准后再执行 |
| 自动模式 | Claude 通过后台安全检查评估所有操作(研究预览版) |
高效使用 Claude Code 的技巧
让 Claude Code 教你
Claude Code 可以教你如何使用它。问诸如"如何设置钩子?"或"组织 CLAUDE.md 的最佳方式是什么?",Claude 会解释。
/init:引导你为项目创建 CLAUDE.md/agents:帮助配置自定义子代理/doctor:诊断安装问题
这是一个对话过程
你不需要完美的提示词。从你想要什么开始,然后逐步完善:
修好登录 Bug
如果第一次尝试不完全正确,你不需要重新开始。直接指出问题,Claude 会调整方法。
随时中断和调整方向
你可以在任何时候打断 Claude。如果它走错了路,直接输入你的纠正并按回车。Claude 会停止当前操作并根据你的输入调整方向。