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[输出结果]

mermaid

Claude Code 工作流程

三、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-guideClaude 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: 呈现结果

mermaid

Task Tool 调用流程

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[返回给用户]

mermaid

系统提醒机制

六、扩展功能

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. 探索和执行

  1. 通过提出大量问题探索代码库
  2. 澄清需求,理解在哪里/如何/为什么进行更改
  3. 使用 /ultrathink 并询问需要哪些更改
  4. 如果看起来正常,开始执行并密切监控更改

C. "丢弃初稿"方法

对于困难的新功能:

  1. 理解需要哪些更改
  2. 创建新分支并让 Claude 端到端编写功能
  3. 将其输出与心理模型进行比较
  4. 根据第一次迭代学到的内容运行另一次迭代

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 CodeCodex
子代理支持不支持
速度更快较慢
协作能力优秀一般
意图检测更好可能忽略指令
上下文窗口200K400K
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. 行动建议

如果您觉得这篇文章有用,请今天尝试一个新功能。祝您构建愉快!


参考资料

  1. A Guide to Claude Code 2.0 and getting better at using coding agents
  2. Building Effective Agents - Anthropic
  3. Effective Context Engineering for AI Agents - Anthropic
  4. Code Execution with MCP - Anthropic
  5. Claude Code Changelog
  6. Context Rot - Chroma
  7. What Actually Is Claude Code's Plan Mode? - Armin Ronacher
  8. awesome-claude-code
最后修改:2026 年 01 月 18 日
如果觉得我的文章对你有用,请随意赞赏