Claude Code 2.0 完整指南与技术分析
一、概述
1. 简介
A. 是什么
Claude Code 是 Anthropic 官方推出的 CLI 工具,将 Claude 大语言模型的能力集成到命令行环境中。它不仅是一个编码助手,更是一个通用智能代理,可用于数据分析、文档处理、系统操作等多种任务。
B. 为什么学
- 提升编码效率:通过智能代理自动化完成重复性编码任务
- 更快的反馈循环:Opus 4.5 模型速度和协作能力显著提升
- 掌握前沿工具:Claude Code 已成为 CLI 编码产品的标杆,其他工具如 Codex、OpenCode 等都深受其影响
- 技能可迁移:学习 Claude Code 的经验可直接应用到其他 AI 编码工具
C. 学完能做什么
- 熟练使用子代理进行代码库探索和任务执行
- 理解并应用上下文工程技术优化 AI 代理性能
- 创建自定义命令、钩子和技能以扩展 Claude Code 功能
- 掌握 MCP 服务器集成实现外部工具连接
2. 前置知识
A. 必备技能
- 基本 Linux/macOS 命令行操作
- 了解软件开发生命周期
- 对大语言模型基本概念的理解
B. 推荐知识
- 熟悉至少一种编程语言
- 了解 Git 版本控制
- 具备系统设计基础概念
二、核心概念
1. 基本术语
- 上下文窗口(Context Window):LLM 能够一次性查看和处理的最大令牌数量,类似于模型的工作记忆
- 工具调用(Tool Calling):LLM 执行特定操作的能力,如读取文件、搜索网络、运行命令等
- 智能代理(Agent):能够主动运行工具以实现目标的 LLM 系统
- 上下文工程(Context Engineering):在有限的上下文窗口中优化信息配置,以实现模型期望行为的技术
2. 工作原理
graph TB
A[用户输入] --> B[主代理 Claude]
B --> C{任务分析}
C -->|简单任务| D[直接执行]
C -->|复杂任务| E[Task Tool]
E --> F[子代理 Explore]
E --> G[子代理 Plan]
E --> H[子代理 General-purpose]
F --> I[工具调用 Glob/Grep/Read]
G --> J[生成实施计划]
H --> K[多步骤任务执行]
I --> L[返回结果]
J --> L
K --> L
L --> B
B --> M[输出结果]三、Claude Code 2.0 新特性
1. 生活质量改进
A. 语法高亮
2.0.71 版本引入的语法高亮功能显著提升了代码审查体验。高对比度的文本和粗体字重使代码差异更易阅读。
B. 提示系统
在模型思考过程中显示实用提示,帮助用户发现隐藏功能。虽然部分提示可能不适用于所有场景,但整体上提供了有价值的学习机会。
C. 反馈 UI
优雅的非侵入式反馈系统,允许用户通过数字键快速响应(1:差,2:一般,3:好)或按 0 忽略。
D. 检查点功能
Esc + Esc 或 /rewind 命令允许回滚到特定检查点,类似于 Cursor 的功能。可以同时回滚代码和对话。
2. 核心功能增强
A. 超级思考模式
对于复杂任务,可以使用 /ultrathink 让 Opus 4.5 进行更严谨的推理,适用于解释复杂概念或自我审查代码变更。
B. 提示建议(2.0.73)
新增的提示建议功能预测相当准确,能够根据当前上下文提供相关的后续操作建议。
C. 提示历史搜索
Ctrl + R 可以搜索提示历史,类似终端的反向搜索功能,可跨项目全局对话搜索。
D. 模糊文件搜索(2.0.72)
文件建议速度提升 3 倍,支持模糊搜索。
E. LSP 支持
通过插件支持 LSP(语言服务器协议),提供更强大的代码智能感知。
四、子代理系统
1. 子代理类型
Claude Code 提供多种预定义子代理,每个代理都有特定的用途和工具集。
| 子代理类型 | 用途 | 可用工具 | 上下文继承 |
|---|---|---|---|
| general-purpose | 复杂问题和多步骤任务 | 全部工具 | 是 |
| Explore | 快速代码库探索 | Glob、Grep、Read、有限 Bash | 否 |
| Plan | 软件架构设计和实施规划 | 全部工具 | 是 |
| claude-code-guide | Claude Code 文档查询 | Glob、Grep、Read、WebFetch、WebSearch | 是 |
| statusline-setup | 状态栏配置 | Read、Edit | 是 |
2. Explore 代理详解
Explore 代理是只读文件搜索专家,专门用于快速浏览代码库。
A. 核心特性
- 严格只读模式:禁止创建、修改或删除文件
- 高效文件查找:使用 glob 模式进行广泛文件匹配
- 强大搜索能力:使用正则表达式搜索文件内容
- 并行工具调用:通过并行 grep 和读取文件提高效率
B. 使用场景
- 快速定位文件:如查找所有 TypeScript React 组件
- 代码关键词搜索:如查找 API 端点定义
- 代码库问题回答:如解释特定功能如何工作
C. 调用方式
"Launch explore agent with Sonnet 4.5"可以指定使用 Sonnet 而非默认的 Haiku 模型。
3. Task Tool 架构
sequenceDiagram
participant U as 用户
participant M as 主代理
participant T as Task Tool
participant S as 子代理
participant FS as 文件系统
U->>M: 任务请求
M->>M: 分析任务复杂度
M->>T: 调用 Task Tool
Note over T: 指定参数:<br/>- description<br/>- prompt<br/>- subagent_type<br/>- model (可选)
T->>S: 启动子代理
S->>FS: 执行工具调用
FS-->>S: 返回结果
S-->>T: 完成并返回消息
T-->>M: 返回子代理输出
M-->>U: 呈现结果A. 关键参数
- description(必需):任务简短描述,3-5 个词
- prompt(必需):代理要执行的任务
- subagent_type(必需):专用代理类型
- model(可选):sonnet、opus 或 haiku,默认继承父模型
- run_in_background(可选):设置为 true 在后台运行
- resume(可选):从前一次调用恢复的代理 ID
五、上下文工程
1. 上下文窗口与令牌消耗
A. 令牌消耗机制
智能代理在执行任务时会进行大量工具调用,每个工具调用及其结果都会被添加到上下文窗口中。这是因为 LLM 是无状态的,它们在上下文窗口之外没有记忆。
示例上下文窗口消耗:
用户:"为我的咖啡店制作一个着陆页"
Assistant: [tool_call: web_search("现代咖啡店着陆页设计")]
Tool result: [10 个结果,包含片段和 URL] ← ~1.5K 令牌
Assistant: [tool_call: read_file("brand-guidelines.pdf")]
Tool result: [提取的文本、颜色、字体] ← ~4K 令牌
Assistant: [tool_call: create_file("landing-page.html")]
Tool result: [成功,140 行] ← ~50 令牌
Assistant: [tool_call: edit_file("landing-page.html")]
Tool result: [diff: 添加了主图和菜单部分] ← ~300 令牌
总计:单个任务约 6K+ 令牌。所有内容保留在上下文中。B. 上下文退化问题
随着每个新令牌的引入,LLM 的上下文检索性能会下降。可以将上下文视为有限的"注意力预算",这是注意力机制本身的结果。
不同模型的上下文窗口:
- GPT-5.2:400K 输入令牌
- Opus 4.5:200K 输入令牌
- Gemini 3 Pro:1M 输入令牌
经验法则:有效上下文窗口大约是标称值的 50-60% 或更少。
2. 上下文工程技术
A. 通过重复注入操纵注意力
Manus 在其上下文工程博客中分享了这一技术:
如果您使用过 Manus,您可能注意到了一个奇怪的现象:在处理复杂任务时,它倾向于创建一个 todo.md 文件,并在任务进行时逐步更新它,检查已完成的条目。
这不仅仅是可爱的行为,这是操纵注意力的刻意机制。
Manus 中的典型任务平均需要约 50 次工具调用。这是一个很长的循环,由于 Manus 依赖 LLM 进行决策,因此容易偏离主题或忘记早期目标,尤其是在长上下文或复杂任务中。
通过不断重写待办事项列表,Manus 将其总体目标背诵到上下文的末尾。这将全局计划推入模型最近的注意力范围,避免了"迷失在中间"的问题,并减少了目标不一致。
Claude Code 也有类似功能。当您使用 TodoWrite 工具时,模型会跟踪任务进度,这有助于保持对总体目标的关注。
B. 系统提醒机制
Claude Code 通过在用户消息和工具结果中插入
graph LR
A[用户消息] --> B[注入系统提醒]
B --> C[添加上下文信息]
C --> D[模型处理]
E[工具结果] --> B
D --> F[助手响应]
F --> G[添加系统提醒]
G --> H[返回给用户]六、扩展功能
1. 自定义命令
A. 命令类型
- 项目级命令:存储在 .claude/commands/
- 全局命令:存储在 ~/.claude/commands/
B. 创建方式
当您发现自己重复编写某些提示,且指令可以静态/精确时,创建自定义命令是个好主意。
示例:/handoff 命令用于在上下文窗口变满时开始新对话,让 Claude 编写当前会话的摘要。
C. 命令执行机制
当您输入命令时,该提示会被追加到当前对话/上下文中,主代理开始执行任务。
2. MCP 服务器
A. 什么是 MCP
MCP(Model Context Protocol)服务器是可以在本地机器或远程互联网上托管的服务器。它们可以暴露文件系统、工具和集成(如 CRM、Google Drive 等)。本质上是模型连接外部工具和服务的一种方式。
B. 连接方式
- 需要 MCP 客户端(Claude)作为主机
- MCP 客户端调用协议进行连接
- 连接后,MCP 客户端暴露服务器提供的工具、资源和提示
C. 令牌消耗问题
工具定义会被提前加载到主机的上下文窗口中,导致上下文膨胀。更多 MCP 服务器意味着更多工具定义。
D. MCP 代码执行
建议通过代码 API 而非工具调用定义来暴露功能,并为 Claude 提供具有文件系统的沙盒执行环境。然后让它编写代码来进行工具调用。
3. 技能与插件
A. 技能(Skills)
技能是包含 SKILL.md 文件、其他可引用文件和代码脚本的文件夹,用于执行某些用户定义的任务。
SKILL.md 包含元数据,LLM 通过这些元数据了解可用的技能(元数据被添加到系统提示中)。如果 Claude 认为技能相关,它会执行工具调用以读取技能内容并下载领域专业知识。
技能的优势:
- 按需加载,不需要将所有信息写入系统提示
- 特别适用于不确定是否始终需要这些指令的情况
B. 插件
插件是一种打包机制,将技能、斜杠命令、子代理、钩子和 MCP 服务器捆绑到一个可分发的单元中。
- 通过 /plugins 安装
- 使用命名空间避免冲突(如 /my-plugin:hello)
- 便于跨项目和团队共享功能
示例:流行的 frontend-design 插件实际上就是一个技能。
4. 钩子(Hooks)
钩子允许您观察代理循环生命周期中某个阶段的开始或结束,并在之前或之后运行 bash 脚本来更改代理循环。
A. 可用钩子
- Stop:Claude 完成响应后运行
- UserPromptSubmit:用户提交提示后、Claude 处理前运行
B. 使用场景
示例 1:当 Claude 停止响应时播放动漫通知声音
示例 2:通过 Stop 钩子在 Claude 完成当前任务后运行"Do more"提示,保持 Claude 运行数小时
C. 组合应用
将钩子、技能和提醒结合使用可以创建强大的自定义工作流。
七、实用工作流程
1. 作者的工作流
A. 设置
- 以 Claude Code 作为主要驱动
- Codex 用于审查和困难任务
- Cursor 用于阅读代码和手动编辑
- 很少使用 Plan Mode
B. 探索和执行
- 通过提出大量问题探索代码库
- 澄清需求,理解在哪里/如何/为什么进行更改
- 使用 /ultrathink 并询问需要哪些更改
- 如果看起来正常,开始执行并密切监控更改
C. "丢弃初稿"方法
对于困难的新功能:
- 理解需要哪些更改
- 创建新分支并让 Claude 端到端编写功能
- 将其输出与心理模型进行比较
- 根据第一次迭代学到的内容运行另一次迭代
2. 代码审查
对于代码审查和查找 bug,GPT-5.2-Codex 更为优越。只需使用 /review。它能够:
- 发现 bug 并提及严重性(P1、P2)
- 不太可能报告假阳性
- 在处理令人困惑的更改时比 Claude 更可靠
Claude 用于执行,GPT/o 系列模型用于审查/bug,这种动态已经相当稳定。
3. 背景代理使用
背景进程功能对于调试或监控日志输出非常有用。模型通常会自动决定将进程放入后台,但您也可以明确告诉它这样做。
八、最佳实践
1. 上下文管理
A. 何时进行压缩或开始新对话
- 当总上下文使用率达到 60% 时(如果正在构建复杂内容)
- 不要在对话进行到一半时开始复杂任务
B. 上下文工程目标
- 插入最相关的上下文
- 减少上下文膨胀/不相关上下文
- 提供少量且不冲突的指令
- 通过提醒和运行时注入使工具调用更好地工作
2. 子代理使用策略
A. 何时使用子代理
- 搜索关键词或文件且不确定在前几次尝试中能否找到正确匹配
- 需要快速浏览代码库以查找文件模式
- 需要为任务规划实施策略
B. 何时避免使用子代理
- 想要读取特定文件路径时(使用 Read 或 Glob)
- 搜索特定类定义时(使用 Glob)
- 在特定文件或 2-3 个文件集合中搜索代码时(使用 Read)
3. 技能和插件管理
A. 保持技能文件简洁
Anthropic 建议将 skill.md 保持在 500 行以下,可以考虑:
- 将指令分成单独的技能文件
- 结合钩子使用
- 减少 CLAUDE.md 大小
B. 插件命名空间
使用命名空间避免冲突,格式为 /plugin-name:command
九、与其他工具对比
1. Claude Code vs Codex
| 特性 | Claude Code | Codex |
|---|---|---|
| 子代理 | 支持 | 不支持 |
| 速度 | 更快 | 较慢 |
| 协作能力 | 优秀 | 一般 |
| 意图检测 | 更好 | 可能忽略指令 |
| 上下文窗口 | 200K | 400K |
| UI 可读性 | 高对比度文本 | 较细文本,难以阅读 |
| 详尽程度 | 符合预期 | 更简洁 |
2. 为什么选择 Opus 4.5
A. 优势
- 更快的速度和更快的反馈循环
- 更好的沟通者和结对程序员
- 更好的意图检测能力
- 优秀的写作能力
- 具有个性,被一些人认为有"灵魂"
B. 与 GPT-5.1/Codex 的对比
在代码生成能力上大致相当,但 Opus 4.5 的速度和协作性使其成为更好的日常驱动程序。
十、总结
1. 关键要点
A. 掌握基础
- 理解上下文窗口和令牌消耗机制
- 熟练使用预定义子代理
- 学会创建自定义命令
B. 进阶应用
- 应用上下文工程技术优化性能
- 利用技能和插件扩展功能
- 使用钩子自动化工作流程
C. 持续学习
- 定期查看更新日志
- 尝试新功能和模型
- 参与社区讨论
2. 未来展望
A. 预期改进
- RL 训练改进
- 通过新注意力架构提高长上下文有效性
- 更高吞吐量的模型
- 更少幻觉的模型
B. 潜在突破
- o1/o3 级别的推理突破
- 持续学习领域的进展
3. 行动建议
如果您觉得这篇文章有用,请今天尝试一个新功能。祝您构建愉快!
参考资料
- A Guide to Claude Code 2.0 and getting better at using coding agents
- Building Effective Agents - Anthropic
- Effective Context Engineering for AI Agents - Anthropic
- Code Execution with MCP - Anthropic
- Claude Code Changelog
- Context Rot - Chroma
- What Actually Is Claude Code's Plan Mode? - Armin Ronacher
- awesome-claude-code