Claude Code 不是一个聊天机器人,它是一个代理编程系统。理解它的工作原理,能让你更有效地使用它——知道什么时候该期待什么,什么时候需要干预。
核心架构:代理循环(Agentic Loop)
当你给 Claude Code 一个任务,它进入一个三阶段循环:
你的指令
↓
[收集上下文] → 读文件、搜索、理解代码
↓
[执行动作] → 修改文件、运行命令、调用工具
↓
[验证结果] → 运行测试、检查输出、对比预期
↓
如果未完成 → 循环回第一步
↓
任务完成 / 请求你介入
这个循环会自主链式执行数十个动作。修复一个 Bug,Claude 可能会:
- 运行测试套件,查看失败信息
- 搜索相关源文件
- 读取多个文件理解上下文
- 修改文件实现修复
- 再次运行测试验证
- 提交代码
每一步工具调用的结果都会反馈到下一步。你随时可以中断,重新引导方向。
工具系统:代理能力的来源
没有工具,Claude 只能输出文字。有了工具,它能真正执行动作:
| 类别 | 能力 |
|---|---|
| 文件操作 | 读取文件、编辑代码、创建新文件、重命名和重组 |
| 搜索 | 按模式搜索文件、正则搜索内容、探索代码库结构 |
| 执行 | 运行 Shell 命令、启动服务器、执行测试、使用 Git |
| Web | 搜索网络、获取文档、查找错误信息 |
| 代码智能 | 查看类型错误、跳转定义、查找引用(需插件) |
| 子代理 | 派发任务给其他 Claude 实例并行处理 |
关键点:工具不是预设步骤,而是 Claude 根据任务自主决定调用哪个。你说"修复测试失败",它自己决定先 run tests → read error → search files → edit → run tests again。
上下文窗口:最重要的资源
Claude Code 最核心的约束是上下文窗口。
上下文窗口存储:
- 完整的对话历史
- Claude 读取的每个文件内容
- 每次命令的输出结果
- CLAUDE.md 和 Auto Memory
上下文满了会怎样?性能下降,Claude 开始"忘记"早期的指令,错误率上升。
上下文管理策略
/status # 查看当前上下文使用量
/clear # 清空上下文,开始新会话
/compact # 压缩历史(保留关键信息)什么时候清空:
- 完成一个独立任务后
- 上下文超过 50-60% 时
- 发现 Claude 开始遗忘之前的指令时
用子代理管理上下文:对大型任务,把工作拆分给子代理,每个子代理有自己独立的上下文窗口,互不干扰。
Claude 能访问什么?
运行 claude 时,Claude Code 默认可以访问:
- 你的项目:当前目录及子目录的所有文件
- 终端:你能运行的一切命令(构建工具、Git、包管理器)
- Git 状态:当前分支、未提交的改动、最近 commit 历史
- CLAUDE.md:你写的项目规范(每次会话加载)
- Auto Memory:Claude 自动记录的学习内容(前 200 行)
- 你配置的扩展:MCP Server、Skills、子代理、Chrome 插件
Claude 看到整个项目,这是它与只看当前文件的内联补全工具的本质区别。
多模型支持
Claude Code 支持切换底层模型,适应不同任务:
/model # 查看和切换当前使用的模型或启动时指定:
claude --model claude-opus-4-5Sonnet:大多数编程任务的最佳选择,速度与质量平衡。
Opus:复杂架构决策、深度推理任务时使用。
权限和安全
权限模式
| 模式 | 行为 | 快捷键 |
|---|---|---|
| Normal | 大多数操作询问确认 | 默认 |
| Auto-Accept | 自动接受文件编辑 | Shift+Tab |
| Plan Mode | 只读分析,不修改任何文件 | Shift+Tab×2 |
检查点(Checkpoint)
Claude Code 在每次工具调用前自动创建 Git 检查点。出了问题:
/undo # 撤回到上一个检查点
即使没有运行 Git commit,也能安全回退。
会话管理
Claude Code 支持跨设备继续会话:
claude --resume # 恢复最近的会话
claude --resume <id> # 恢复指定会话
/sessions # 查看会话列表会话可以分叉(fork):从某个历史点创建新的对话分支,尝试不同方案。
扩展 Claude Code 的能力
核心工具是基础,还可以按需扩展:
- Skills:打包可重用的工作流(如
/review-pr、/deploy-staging) - MCP Server:连接外部服务(Jira、Google Drive、Slack、数据库)
- Hooks:在工具调用前后自动运行 Shell 命令(格式化、Lint 检查)
- Sub-Agents:把任务拆分给多个 Claude 实例并行处理
实际工作建议
委托,不要指令
- ❌ 微管理每一步:"先读文件 A,然后修改第 42 行,然后……"
- ✅ 描述目标:"修复认证 Bug,确保测试通过"
给 Claude 验证手段
- 有测试:
"写完后运行测试套件" - 有 UI:粘贴截图,让 Claude 对比实现效果
中途纠偏而不是等到结束 Claude 在工作过程中随时可以中断。如果发现方向不对,直接输入重新引导,比等它做完再全部返工高效得多。
来源:How Claude Code works - Claude Code Docs | Anthropic 官方文档