第三章:工作原理 — 建立心智模型
你不需要了解一切
在我们深入之前,先给你一个保证:你不需要从工程层面理解 Claude Code 的工作原理,才能有效地使用它。你不需要理解汽车发动机的工作原理才能开车。
但拥有正确的心智模型——对正在发生的事情有一幅简洁、准确的图景——会让你用好任何工具的能力大幅提升。你会写出更好的提示词,在什么时候用哪种方法上做出更好的判断,在出错时也能更有效地排查问题。
本章给你这个心智模型。这里的一切都是真实准确的,但不带行话地解释。
对话模型
Claude Code 的核心是一段对话。你说些什么,Claude 回应并采取行动,你对发生的事情做出反应,如此循环。这不是一个新概念——你使用任何聊天界面都是这样。但在 Claude Code 里,回应不只是文字,而是行动。
当你说"创建一个名为 hello.txt 的文件,里面写上 Hello World",Claude Code 不会回复"当然!方法如下……"它会真正创建那个文件。当你说"跑一下我的测试",它会运行你的测试,读取输出,并告诉你发生了什么。
这让它感觉不像在跟一个工具说话,而更像是在跟一个人合作。你的自然本能——描述你想要什么、对发生的事情做出反应、提出后续问题——恰恰是与 Claude Code 互动的正确方式。
工具:Claude Code 实际能做什么
Claude Code 拥有一套工具——它可以在适当时机调用的特定能力。了解这些工具能帮助你理解 Claude Code 能做什么、不能做什么,以及如何有效地提问。
把工具想象成助手的双手和眼睛。没有它们,助手只能思考和说话。有了它们,他们可以伸出手去与世界互动。
以下是主要工具:
读取 — "眼睛"工具
Claude Code 可以打开并读取你电脑上的任何文件。它读取源代码、配置文件、文本文件等等。
类比: 想象把一叠实体文件交给你的助手,说"把这些都读一遍"。他们逐页翻看,然后可以回答关于他们所发现内容的问题。
当 Claude Code 读取你的文件时,它不只是扫描关键词。它理解代码的含义——函数做什么、文件之间如何关联、数据流向哪里。这就是为什么它能给出适合你特定代码库的回答,而不是关于代码"通常"如何运作的泛泛之词。
触发示例: 当你问"calculateTotal 函数是做什么的?"——Claude Code 读取该函数所在的文件,用普通语言解释它。
编辑 — "写作"工具
Claude Code 可以修改已有的文件。它进行精确、有针对性的改动——只编辑需要改变的那几行,不动其余部分。
类比: 想象把一份文件交给助手,说"把第 3 段改成这样"。他们打开文件、找到第 3 段、替换它、然后保存。他们不会重新打整份文件。
Claude Code 的编辑会在应用之前展示给你看。你能看到将要改变什么(以"diff"格式——被删除的行显示为红色,被添加的行显示为绿色)。你在改动发生之前确认。
触发示例: 当你要求"把 calculateTotal 函数重命名为 computeOrderTotal,在所有出现的地方都改"——Claude Code 找到使用该函数的每个文件,精确地进行重命名。
写入 — "创建"工具
Claude Code 可以从头创建全新的文件。一个新的 Python 脚本、一个新的 HTML 页面、一个新的配置文件——它写好内容并保存到磁盘。
类比: 让助手起草一份新文件并放入特定的文件夹。
触发示例: 当你要求"创建一个名为 utils.js 的新文件,里面有格式化日期和货币的辅助函数"——Claude Code 编写整个文件,包含可用的、结构良好的代码。
Bash — "双手"工具
这是最强大、也可能是最出乎意料的工具。Claude Code 可以在你的电脑上运行真实的终端命令。
类比: 想象你的助手不只能读文件、打字,还能真正在你的电脑上按按钮——启动程序、运行脚本、安装软件、检查正在运行的内容。
这就是 Claude Code 能做以下事情的原因:
- 运行你的测试套件(
npm test、python -m pytest等) - 启动开发服务器
- 安装库(
npm install some-library) - 运行构建流程
- 查询 git 历史
- 检查哪些文件有改动
因为这个工具如此强大,Claude Code 对它非常谨慎。它会向你展示想要运行的命令,在执行任何可能有破坏性或不可逆的操作之前请求你的批准。
触发示例: 当你要求"跑我的测试,告诉我是否通过"——Claude Code 执行你的测试命令,读取输出,并汇总结果。
网页搜索 — "调研"工具
Claude Code 可以实时搜索互联网。这一点很重要,因为软件开发中经常需要查资料——库文档、报错信息、API 的最新变更、安全公告。
类比: 你的助手可以暂时离开你的桌子,去图书馆或网上查某件事,然后带着他们找到的东西回来。
没有网页搜索,Claude Code 被限制在训练时学到的知识里——有知识截止日期。有了网页搜索,它可以找到上个月发布的库的信息、上周修复的 bug,或者最新版本中改变的语法。
触发示例: 当你问"React 的最新稳定版本是什么,与上一个版本相比有什么变化?"——Claude Code 搜索网络并返回当前、准确的信息。
上下文窗口:你们共享的白板
理解 Claude Code 最重要的概念之一是上下文窗口。
想象会议室里有一块实体白板。你在白板上写的所有内容对房间里的每个人都可见,可以随时被引用。但白板有固定大小——当它写满时,你必须擦掉旧的笔记来写新的。
Claude Code 的上下文窗口工作方式相同。它是你们对话的"工作记忆"——Claude Code 当前所知晓的关于你的会话的一切。这包括:
- 你的消息和 Claude 的回复
- Claude 已经读取的文件内容
- 已运行命令的输出
- 到目前为止所做更改的历史
上下文窗口有大小限制。在漫长复杂的会话中——尤其是涉及读取多个大文件的——你可能会接近这个限制。当这种情况发生时,Claude Code 可能会"忘记"你们对话的早期部分。
实用建议:
- 切换到完全不同的任务时,开始一个新对话(
/clear) - 指定哪些文件是相关的,而不是要求 Claude Code 一次读取整个代码库
- 如果 Claude Code 似乎忘记了它之前知道的某件事,重新说一遍
权限系统:Claude 在行动前先征询
Claude Code 设计中最让人放心的选择之一是其权限系统。Claude Code 的设计原则是:在采取任何可能产生重大影响的行动之前,先征求你的批准。
这对 Bash 工具(运行命令)和 Edit/Write 工具(修改文件)来说尤其重要。在 Claude Code 做这些事之前,它会展示计划并等待你的"同意"。
Claude Code 支持六种权限模式——从逐一询问每个操作,一直到完全自动化的流水线。以下是这个范围的快速概览:
默认(按需询问): Claude Code 在编辑文件和运行命令之前会询问。读取通常可以自由进行。这是大多数人的正确起点。
自动接受编辑: 文件编辑不经询问自动进行,但 shell 命令仍需批准。适合你信任 Claude 方向时的大型重构。
计划模式: Claude Code 读取并分析,但不能修改文件或运行命令。它为你的审查生成一个计划。你批准后才开始改动。
Auto 模式(Team 和 Enterprise 计划): Claude 在更强的自主性下运作,由 Anthropic 的内置安全分类器在后台屏蔽有害操作。适合需要 Claude 无人值守地运行更长任务的团队。
DontAsk 模式: 只允许明确预先授权的工具,其他一切都被拒绝。适用于你希望有精确允许列表的封闭环境。
绕过权限: 完全跳过所有权限检查。严格用于隔离容器、CI/CD 流水线和沙盒环境中的自动化——绝不用于主机器上的交互式使用。
第六章会深入介绍每种模式,包括如何在它们之间切换以及什么时候该用哪个。
换一种方式来想:Claude Code 是一个在你家里工作的承包商。一个好的承包商不会一到就开始拆墙。他们展示计划,确认你满意,并在遇到意外情况时核实。
智能体循环:Claude Code 如何思考
以下是从你按下 Enter 到 Claude Code 回应之间发生的完整图景:
你输入一条消息
|
v
Claude 读取你的消息并思考该做什么
|
v
Claude 决定使用一个工具(Read、Edit、Write、Bash 或 Search)
|
v
[如果该工具需要权限,Claude 展示给你并等待]
|
v
Claude 使用工具并得到结果
|
v
Claude 思考结果——这是预期的吗?
|
v
[如果需要更多工具,Claude 使用它们(重复循环)]
|
v
Claude 汇总发生了什么并回应你
|
v
你看到结果并做出回应这个循环可能因为你的一条消息而转很多圈。当你要求"修复失败的测试",Claude Code 可能会:
- 运行测试以查看哪些测试失败
- 读取失败的测试文件以了解它们的预期
- 读取被测试的源文件以了解当前实际情况
- 编辑源文件来修复问题
- 再次运行测试以确认它们现在通过
- 向你汇报
所有这些都在一次回应中自动按顺序发生。你问了一件事;Claude Code 处理了所有步骤。
整合起来:一张可视化总结
你的电脑
+------------------------------------------+
| |
| 你的文件 你的终端 互联网 |
| | | | |
| | | | |
| +----+----+ +------+---+ +---+----+ |
| | Read | | Bash | | Search | |
| | Edit | | (运行 | | (查找 | |
| | Write | | 命令) | | 信息) | |
| +---------+ +----------+ +--------+ |
| ^ ^ ^ |
| | | | |
| +------+-------+-----------+ |
| | |
| Claude Code(AI 大脑) |
| | |
| | (展示它在做什么, |
| | 请求权限) |
| | |
| 你(在终端里) |
+------------------------------------------+Claude Code 坐落在你和你电脑能力之间。它理解你的自然语言指令,把它们转化为正确的工具操作,执行这些操作(经过你的批准),然后用自然语言汇报结果。
核心心智模型:一个能干而诚实的合作者
如果你从这一章带走一个想法,让它是这个:
Claude Code 不是搜索引擎。它不是你复制粘贴代码的生成器。它不是魔法棒。
它是一个能干而诚实的合作者,能在你的环境里采取真实的行动,展示它正在做的事情,在不确定时提问,并像任何合作者一样会犯错。你的工作是清晰地指导它,审查它的工作,并在出错时纠正它。
你越是理解它能看到什么(你的文件)、它能做什么(这些工具)、以及它不知道什么(你项目之外的事情和训练数据之外的事情),你就越能与它合作。
下一章: 第四章 — 安装 — 在你的 Mac、Windows 或 Linux 机器上一步步运行起 Claude Code。