现在位置: 首页 > Claude Code 教程 > 正文

Claude Code 如何工作

简单来说:Claude Code 就像一个超级聪明的编程搭档,它能在你的电脑上自动帮你写代码、改 bug、运行命令、搜索文件……几乎所有你在终端里能做的事,它都能干!

本节带你彻底搞懂它的底层原理(代理循环、模型、工具等),看完你就知道它为什么这么强大,以及怎么用得更顺手。


Claude 的工作流程

当你给 Claude 一个任务时,它会像人类一样循环思考三个步骤:

  1. 收集上下文(看你的代码、文件、错误信息)
  2. 采取行动(编辑文件、运行命令、搜索等)
  3. 验证结果(检查是否成功,哪里还需要调整)

这三个步骤会不断循环,直到任务完成,当然我们也可以随时可以打断它、给新指示,或者说"换个方法试试"。

Claude 虽然能自主工作,但永远听你的指挥

Prompt → 获取上下文 → 执行动作 → 验证结果 →(循环)→ 完成

整个循环靠两样东西驱动:

  • 模型(负责思考和推理)
  • 工具(负责真正动手做事)

模型(Claude 的大脑)

Claude Code 使用 Anthropic 的 Claude 模型来理解代码和规划任务,它能看懂几乎所有编程语言,知道你的项目结构,还能把复杂任务拆成小步骤一步步执行。

常用模型推荐

  • Sonnet:最适合日常编码任务(速度快、性价比高)
  • Opus:适合特别复杂的架构设计和深度推理

不过我们国内使用官方的模型不太友好,我们可以切换到其他国内模型。

切换模型

  • 在提示框输入 /model
  • 或启动时用 claude --model sonnet


工具(Claude 能真正动手的原因)

没有工具,Claude 只能聊天,有了工具,它就能真正改你的代码!

Claude 内置了五大类工具:

  • 文件操作:读文件、改代码、新建文件、重命名
  • 搜索:按文件名或正则表达式快速找代码
  • 执行命令:运行 npm、git、测试、启动服务器等
  • 网络搜索:查文档、查错误信息
  • 代码智能:查看类型错误、跳转定义、找引用(需安装对应语言插件)

真实案例(修复失败测试时):

  1. 运行测试看哪里挂了
  2. 阅读错误日志
  3. 搜索相关源文件
  4. 阅读文件理解逻辑
  5. 修改代码
  6. 再次运行测试验证

这就是代理循环的实际样子!

进阶扩展:你还可以用 skills(技能)、MCP(外部服务)、hooks(自动化)、subagents(子助手)让它更强大。


Claude 可以访问什么

Claude Code 能看到你的整个项目(不像普通 AI 只能看当前打开的文件):

  • 你的项目文件夹及所有子文件
  • 终端能执行的任何命令(npm、git、构建工具等)
  • 当前 Git 状态(分支、未提交修改、提交历史)
  • CLAUDE.md 文件(你可以在这里写项目专属规则,让 Claude 每次都记住)
  • 自动记忆(它会记住你的项目习惯,保存在 MEMORY.md 前 200 行)
  • 你配置的扩展(MCP、skills 等)

正因如此,它能跨多个文件协调修改、自动跑测试、甚至帮你提交代码。


执行环境与界面

Claude Code 可以在三种环境里运行:

  • 本地(默认):完全在你电脑上,权限最高
  • 云端(Anthropic 虚拟机):适合处理大项目或你本地没有的环境
  • 远程控制:从浏览器操作,但代码仍在你本地

界面支持:终端、VS Code 扩展、JetBrains、claude.ai/code、Slack、CI/CD 等。底层工作原理完全一样!


跨分支工作(Git 分支切换也能无缝使用)

Claude Code 的每个对话都和当前文件夹绑定(而不是和 Git 分支绑定)。这带来了非常实用的特性:

  • 当你切换 Git 分支时(git checkoutgit switch),Claude 会自动看到新分支的文件,但你的聊天记录保持不变
  • Claude 依然记得之前讨论过的所有内容和决定,即使跨分支也不会丢失上下文。
  • 当你恢复旧对话时,只会显示当前文件夹里的会话记录(不同分支如果在同一文件夹,就共用历史)。

并行多分支开发神器
推荐使用 git worktrees 为每个分支创建一个独立目录,这样你就可以同时打开多个 Claude Code 会话,每个分支都有自己完全独立、干净的对话记录,不会互相干扰。


恢复或分叉会话(继续聊 / 新开一条线)

Claude Code 支持三种灵活的会话操作,让你随时接上之前的进度或尝试不同方案:

1、直接恢复会话(最常用)

命令:

claude --continue
# 或者
claude --resume

效果

  • 使用相同的会话 ID,从上次中断的地方继续
  • 完整聊天历史全部恢复
  • 注意:会话范围的权限不会自动恢复,需要你重新批准一次

2、分叉会话(推荐!尝试新方案不影响原对话)

命令:

claude --continue --fork-session

效果

  • 创建一个全新的会话 ID
  • 保留到目前为止的所有聊天历史
  • 原会话完全不受影响
  • 同样需要重新批准权限

适用场景:想试试"另一种实现方式"又不想把原对话搞乱时,就用这个!

3、 多个终端同时使用同一个会话(小心使用)

  • 如果你在多个终端窗口都用 claude --continue 恢复同一个会话:
    • 所有消息会交错混在一起(就像两个人同时在同一个笔记本上写字)
    • 对话会变得混乱
    • 每个终端当时只能看到自己输入的消息,但后续恢复时会看到全部交错内容

正确做法:想并行工作时,务必使用 --fork-session,给每个终端一个干净独立的新会话。


上下文窗口(Claude 的记忆容量)

Claude 有上下文容量限制。当快满时:

  • 它会自动压缩旧内容
  • 你可以输入 /compact 手动压缩
  • 输入 /context 查看当前占用情况

省空间秘诀

  • 重要规则写进 CLAUDE.md
  • 用 skills 和 subagents 减少不必要的上下文占用

安全机制(检查点 + 权限控制)

1、检查点(随时后悔)Claude 修改文件前会自动备份。只要按两次 Esc,或说"撤销刚才的修改",就能回到之前状态。

2、权限模式(按 Shift + Tab 快速切换):

  • 默认:每次改文件或跑命令都问你
  • 自动接受编辑:只改文件不问,但命令仍会问
  • 计划模式:只分析、不动手,先给你完整计划

你还可以在 .claude/settings.json 里白名单信任命令(比如 npm test 永远不用问)。


有效使用 Claude Code 的 6 个实用 Tips

  1. 直接问它怎么用自己
    输入:"我怎么设置 hooks?" 或 "/init" 它就会手把手教你。

  2. 这是对话,不是一次性命令
    先说大概需求 → 它试试 → 你再纠正:"这不对,问题是会话处理"
    不用每次都重写提示!

  3. 随时打断它
    它走偏了?直接输入新指示按回车,它立刻停下来调整。

  4. 提示越具体越好
    坏例子: "修复登录错误"
    好例子: "持卡人过期的用户结账流程坏了,检查 src/payments/,尤其是令牌刷新。先写个失败测试再修复。"

  5. 让它自己验证
    加上测试用例或预期结果,它会跑测试确认。

  6. 先探索再实现
    先用计划模式(Shift+Tab 两次)让它分析代码库、给出计划 → 你审核后再让它动手。