第 09 章

Advanced Features

高级特性——让复杂任务变得可控

Planning、Thinking、Auto Mode、后台任务、会话管理、Worktree、沙盒、配置等

任务变复杂后

你有没有发现,Claude 处理简单任务很好用,但任务一复杂就开始跑偏?

改着改着就偏了

让 Claude 给项目加通知系统。它改了 15 个文件,改到一半你已经看不懂了。它到底在按什么计划做事?

想不清楚就动手

让 Claude 重构认证模块。它直接开始改代码,没有先跟你确认方案。改完才发现方向不对,回退成本很大。

到处都是确认框

给 Claude 一个自动化任务,但每一步都要手动确认权限。10 个步骤点了 10 次"允许",比自己做还慢。

高级特性就是为这些场景设计的:Planning Mode 让 Claude 先规划再动手,Extended Thinking 让它想得更深,Auto Mode 让它在安全边界内自动执行。不是让 Claude 变得更聪明,而是让你对复杂任务的控制力更强。

能力地图

本章覆盖全部高级能力,按用途分组

任务规划

Planning Mode 先规划再执行;Extended Thinking 深度推理。

自动化

Auto Mode 安全自动执行;后台任务不阻塞对话;定时任务按计划重复。

权限与安全

六种权限模式;沙盒隔离;Git Worktree 隔离工作目录。

会话与配置

会话恢复/分叉;任务列表持久跟踪;配置文件与环境变量。

交互体验

快捷键、Tab 补全、多行输入、Vim 模式、语音输入。

远程与集成

Print Mode CI/CD;Remote Control 远程控制;Chrome 集成;桌面应用。

Planning Mode

先规划再执行——Claude 分析任务、生成计划、你批准后才动手

图:Planning Mode 的两阶段流程——规划与执行
# 启动方式
$ /plan Add a real-time notification system

# Claude 输出计划
## 实现计划

### 阶段 1:基础设施
1. 安装 WebSocket 库(socket.io)
2. 搭建 WebSocket server
3. 配置连接管理

### 阶段 2:后端
4. 创建通知服务
5. 实现通知队列
6. 为通知添加数据库 schema

### 阶段 3:前端
7. 搭建 WebSocket client
8. 创建通知 UI 组件
9. 实现通知状态管理

预计修改文件:12 个
准备继续吗?(yes/no/modify plan)

适合规划

  • 多文件重构
  • 新功能开发
  • 架构调整
  • 数据库迁移

不需要规划

  • 简单 bug 修复
  • 格式化修改
  • 单文件编辑
  • 快速查询

规划触发方式

三种方式进入 Planning Mode

Slash Command

$ /plan Implement user auth

CLI 参数

$ claude --permission-mode plan

快捷键

Shift + Tab 切换权限模式(包含 plan)。

Opusplan 别名:claude --model opusplan — Opus 负责规划,Sonnet 负责执行。规划用更强的模型,执行用更快的模型,性价比最优。

设为默认模式

{
  "permissions": {
    "defaultMode": "plan"
  }
}

计划修改与外部编辑

审批计划时,你可以回复 modify 要求修改。也可以按 Ctrl+G 把计划打开到外部编辑器里做更细致的调整。

# 修改计划
用户: modify - 先跳过队列,后面再加
Claude: 已更新计划……

用户: 看起来不错,继续
Claude: [按修改后的计划开始实现]

深度推理

Extended Thinking:让 Claude 在给出方案前多想一会儿

Extended Thinking让 Claude 在给出解决方案前,花更多时间进行分步骤推理。

说白了,就是让 Claude "先打草稿再写正式答案"。草稿不打给你看,但最终答案质量更高。这个比喻只是为了帮你建立直观感受。实际上,Extended Thinking 是模型在推理时分配额外的计算预算(推理 token),用于内部的链式思考。这些思考过程不会展示给你,但直接影响输出的质量和深度。

级别符号适合场景
low○简单任务,快速响应
medium◐常规任务(默认)
high●复杂任务,需要深入推理
max◉极复杂任务(仅 Opus)
# 通过 CLI 设置
$ claude --effort high "设计缓存策略"

# 通过 slash command
$ /effort max

# 快捷键:Option+T (macOS) / Alt+T (Win/Linux)

# 配置文件
# ~/.claude/settings.json
{
  "thinking": {
    "enabled": true,
    "effort": "high"
  }
}

权限与自动化

六种权限模式,对应不同的自动化程度

Auto Mode(研究预览):每个动作执行前,后台安全分类器评估风险。安全 → 自动执行,需确认 → 提示你,危险 → 阻止。
模式行为适合
default必要时询问权限日常开发
plan只规划,不执行复杂任务规划
acceptEdits自动接受编辑受控环境
auto自动执行 + 安全审查自动化场景
dontAsk自动执行,但不做安全审查信任环境下的快速操作
bypassPermissions跳过所有权限完全信任的 CI
# 启用 Auto Mode
$ claude --enable-auto-mode

# 然后在 REPL 中用 Shift+Tab 切换到它

分类器默认允许

  • 只读检查(cat、ls、grep)
  • 常规分析和搜索
  • 低风险文件修改

分类器默认阻止

  • 明显危险的文件操作(rm -rf)
  • 高风险 shell 命令
  • 可能泄露凭据的操作
回退行为:如果分类器无法判定风险,Claude 会回退到更保守的权限处理方式,即提示你确认。建议先用 default 观察行为模式,再逐步切换到 auto。
安全提醒:bypassPermissions 只应在完全信任的 CI 环境中使用。本地开发请用 default 或 auto。

Print Mode

非交互式输出——给一个任务,输出结果,然后退出

claude -p 适合自动化和 CI/CD。不需要交互,直接输出结果。

# 基本用法
$ claude -p "run tests and summarize failures"

# 管道输入
$ cat logs.txt | claude -p "find the root cause"

# JSON 输出
$ claude -p --output-format json "list all functions"

# CI/CD 集成
$ claude -p "review this diff and return JSON" > report.json
输出格式:text(默认)、json(结构化,可配合 jq 处理)、stream-json(流式,适合实时处理长输出)。

限制自主回合数

Print Mode 默认允许 Claude 多步执行。你可以限制回合数,防止跑偏:

$ claude -p --max-turns 3 "fix the lint errors"

CI/CD 集成要点

  • 用 --output-format json 获取结构化结果
  • 用 --max-turns 限制执行步数
  • 输出重定向到文件做后续处理
  • 配合 bypassPermissions 实现全自动

后台与定时

长时间运行的任务不阻塞对话,定时任务按计划重复执行

后台任务

构建、测试、下载、安全扫描等长时间运行的任务,放到后台执行。完成后收到通知。

  • 不阻塞当前对话
  • 完成后自动提醒
  • 适合并行处理
# 示例:并行开发
# 任务 A:运行测试
# 任务 B:生成文档
# 任务 C:执行安全扫描

管理后台任务

  • 查看状态:随时查看正在运行的后台任务进度
  • 中止任务:发现方向不对,立即终止
  • 等待完成:阻塞等待后台任务结果
  • 恢复上下文:从任务结果中恢复完整上下文
# 超时、并发、通知可在设置中调整

定时任务

按计划重复执行某些任务。

# 固定间隔
$ /loop 10m Run tests and report

# 自然语言
$ /loop every day at 9am check releases

# 一次性提醒
$ /schedule "remind me to review PR in 30m"

管理定时任务

  • 查看所有定时任务列表
  • 修改执行频率
  • 暂停或取消任务
  • 部分场景支持云端定时任务
# 示例:监控部署
# 每 5 分钟检查部署状态,
# 直到 health check 通过
$ /loop 5m check deploy status

会话管理

在多个会话之间恢复、重命名、分叉和持续工作

核心思路:会话是你和 Claude 的工作上下文。管理好会话,等于管理好工作历史。可以随时恢复、分叉、命名,让复杂项目的多线索工作变得可控。
命令作用场景
claude -c继续最后一次对话关掉终端后接着干
claude -r "name"恢复指定名称/ID 的会话回到之前某个任务
/resume在 REPL 中恢复历史会话切换上下文
/rename给当前会话重命名标记用途,方便查找
/fork分叉当前会话想实验但不破坏原会话
# 继续最后一次对话
$ claude -c

# 恢复指定会话
$ claude -r "feature-auth"

# 恢复并分叉——适合在已有会话上做实验
$ claude -r "feature-auth" --fork
会话持久化:你可以选择保留、继续或重建会话上下文。为重要会话命名(/rename),需要时分叉(/fork)而不是硬改——这是会话管理的最佳实践。

交互功能

快捷键、补全、多行输入——提升输入效率的完整工具箱

快捷键

按键功能
Shift+Tab切换权限模式
Alt+M切换权限模式(Win/Linux)
Option+T / Alt+T切换 Extended Thinking
Ctrl+G外部编辑器打开
Escape取消当前操作

可在设置中自定义快捷键,支持 chord 组合按键。

输入辅助

  • Tab 补全:输入命令、参数或路径时提供补全建议
  • 命令历史:上下箭头快速重用之前的输入
  • 多行输入:Shift+Enter 换行,一次提交多行内容
  • 行内编辑:在输入过程中编辑中间内容
  • Vim 模式:熟悉 Vim 的用户可启用类似编辑体验
  • Bash 模式:进入更偏 shell 风格的操作方式

Worktree

隔离目录并行工作——实验、重构互不干扰

Git Worktree 的价值:在隔离的工作目录里并行开发,主分支保持整洁。一个 worktree 做实验,另一个做稳定开发,互不影响。
# 在隔离 worktree 中启动 Claude Code
$ claude -w

# Monorepo 场景:sparse checkout 只加载需要的部分
# 大型 monorepo 中配合使用,提升效率

核心特性

  • 隔离目录:每个 worktree 是独立工作区
  • Worktree 位置:控制放置位置,保持主工作区整洁
  • 自动清理:不需要的 worktree 可以自动清理
  • Hooks 支持:worktree 场景下依然可以配合工具和 hooks

典型场景

  • 并行尝试多个方案,对比效果
  • 隔离高风险重构,不影响主分支
  • 保持主分支整洁,review 时更清晰

沙盒隔离

操作系统级文件系统和网络隔离,显著降低自动化操作风险

沙盒的作用:限制 Claude 可触达的文件和网络边界。即使 Claude 的操作有误,也不会影响到隔离范围之外的内容。
# 启用沙盒
# 开启后,Claude 的很多操作都会在受控环境里执行

# 配置示例
{
  "sandbox": {
    "enabled": true
  }
}

可配置项

  • 允许访问的目录白名单
  • 网络行为限制
  • 例外列表

适合场景

  • 低风险自动化
  • 在不完全信任的输入上执行任务
  • 受控环境中的批处理

配置参考

配置文件位置、完整配置示例和环境变量一览

配置文件位置

文件作用域
~/.claude/settings.json全局(所有项目)
.claude/settings.json项目级(随代码版本化)
.claude/settings.local.json项目本地(不提交)
{
  "permissions": {
    "defaultMode": "plan"
  },
  "thinking": {
    "enabled": true,
    "effort": "high"
  },
  "autoCheckpoint": true
}

关键环境变量

变量用途
ANTHROPIC_API_KEYAPI 密钥
CLAUDE_MODEL模型选择
CLAUDE_EFFORTThinking 强度
CLAUDE_ENABLE_AUTO_MODE启用 Auto Mode
CLAUDE_MCP_CONFIGMCP 配置路径
CLAUDE_TASK_LIST任务列表开关
CLAUDE_OUTPUT_FORMAT输出格式

项目专用设置推荐放进 .claude/settings.json,跟代码一起版本化。

任务列表

跨 context compaction 持久保存任务进度

为什么需要任务列表?当对话变得很长,Claude 会进行 context compaction(压缩上下文)。普通的待办事项会丢失,但任务列表中的任务会被持久保留,即使上下文被压缩也能继续跟踪。

核心能力

  • 持久任务:context compaction 后任务不丢失
  • 切换显示:在设置中打开或关闭任务列表
  • 命名目录:给任务分组或目录命名,方便管理

环境变量

# 通过环境变量控制
CLAUDE_TASK_LIST=true

适合长期运行的任务——你不用反复提醒 Claude 做什么,任务列表会替你记住。

远程与集成

远程控制、网页会话、桌面应用、Chrome 集成、消息通道等功能速览

远程控制

从 Claude.ai 或手机 App 远程控制本地 Claude Code 会话。

$ claude --remote-control
$ claude --remote-control --name my-session

适合在手机上查看并接管会话。

网页会话

在浏览器里创建和恢复 Claude Code 会话。

# 创建 web session
$ claude --remote "implement API"
# 本地恢复 web session
$ claude --teleport

桌面应用

  • 可视化 diff 审查
  • 多会话管理
  • CLI 会话接力到桌面应用
  • Connectors 连接不同工作环境

Chrome 集成

  • 浏览器自动化操作
  • 页面交互(点击、输入、截图)
  • 站点级权限控制

更多功能

语音输入、消息通道、提示词建议、企业受管设置

语音输入

按住说话,支持 20 种语言的语音识别。适合快速口述任务或键盘不方便时使用。

  • 在设置中打开语音输入
  • 可配置灵敏度、语言和输入行为

消息通道

MCP servers 向运行中的会话推送消息(Research Preview)。

  • 通过 MCP 配置订阅 channel
  • 支持 Discord、Telegram 等集成
  • 一个会话中接收外部通知和事件

提示词建议

根据当前上下文智能推荐下一步命令或提示词。

  • 结合历史、任务和上下文给出建议
  • 不需要可在设置中关闭

企业受管设置

统一分发 Claude Code 配置到团队。

  • macOS plist 部署
  • Windows Registry 部署
  • 受管配置文件统一推送策略

组合使用

高级特性不是新增一套体系——而是把已有能力组织起来

图:高级工作流组合——Planning + Subagents + Checkpoints + Hooks 协作
Planning

规划任务
拆分步骤

Subagents

分工执行
隔离上下文

Checkpoints

安全试错
随时回退

Hooks

质量门禁
自动校验

举个例子:你用 Planning Mode 做一个"添加日志系统"的规划。计划生成后,把不同阶段分给 Subagent 执行(一个负责后端、一个负责前端)。每个阶段完成后自动触发 Hook 做质量检查。如果某个阶段结果不对,用 Checkpoint Rewind 回去重来。

高级特性把前面学的所有模块串成一条完整的复杂任务处理链。

排错指南

过度规划

症状:连改个 CSS 都要先做一份三阶段计划,反而浪费时间。

修复:简单任务直接做,复杂任务才规划。判断标准:涉及 3 个以上文件或需要分步验证的才算"复杂"。

计划没有验收标准

症状:计划写了一堆步骤,但每步做完了不知道对不对。

修复:每个阶段必须有明确的验证方式——"运行测试通过"、"编译无报错"、"页面正常加载"。

Extended Thinking 用太多

症状:所有任务都用 max 级别推理,响应变慢。

修复:只在架构决策、复杂 bug 排查、多方案比较时用 high/max。日常编码用默认级别即可。

Auto Mode 太激进

症状:Auto Mode 下 Claude 执行了意料之外的破坏性操作。

修复:先用 default 模式观察 Claude 的行为模式,确认安全后再切到 auto。生产环境慎用 bypassPermissions。

动手练习

写一份可执行的计划骨架

不用真的去执行——只写计划。重点是想清楚"分几个阶段、每个阶段验证什么、有什么风险"。

题目:为现有项目添加结构化日志系统。
  • 用 /plan 触发规划
  • 输出包含 3-4 个阶段
  • 每个阶段有明确的验证标准
  • 识别关键风险点

参考答案

/plan 为项目添加结构化日志系统

## 实现计划

### 阶段 1:基础设施
1. 添加日志依赖(SLF4J + Logback)
2. 创建 logback.xml 配置文件
3. 定义日志格式和输出目标
**验证**: 启动应用,控制台输出结构化日志

### 阶段 2:核心集成
4. 创建 LoggingAspect(AOP 切面)
5. 为 Controller 层添加请求/响应日志
6. 为 Service 层添加业务操作日志
**验证**: 调用 API,日志中记录完整请求链路

### 阶段 3:错误处理
7. 全局异常处理器添加错误日志
8. 慢查询日志(超过 500ms)
9. 敏感字段脱敏处理
**验证**: 模拟异常,确认日志不含敏感信息

### 关键风险
- 日志量过大 → 采样策略
- 敏感信息泄露 → 脱敏规则
- 磁盘空间不足 → 滚动策略
计划三要素:分阶段(不是一口气全做完)、有验证(每个阶段能确认做对了)、识风险(提前想好哪里可能出问题)。

本章回顾

到这里,你已经能

  • 使用 Planning Mode 做复杂任务的规划
  • 设置 Extended Thinking 的推理强度
  • 理解 Auto Mode 和六种 Permission Modes
  • 用 Print Mode 做自动化输出
  • 管理会话:恢复、分叉、命名
  • 用 Git Worktree 隔离并行工作
  • 配置沙盒保护文件和网络边界
  • 用配置文件和环境变量定制行为
  • 用任务列表持久跟踪长期任务
  • 把高级特性与基础模块组合使用

它和前后章节的关系

  • Planning Mode 把前 8 章的能力系统化组织
  • Checkpoints 为规划提供安全试错保障
  • Subagents 为规划提供分工执行能力
  • Hooks 为规划提供质量门禁
  • Worktree 为并行开发提供隔离环境
  • 沙盒为自动化操作提供安全边界
  • CLI — 通过命令行参数控制所有高级特性
核心结论:高级特性 = 显式方法论 + 精细控制。不是让 Claude 变得更聪明,而是让你对复杂任务的控制力更强。规划、推理、自动化、会话管理、安全隔离——五种维度覆盖了复杂任务的全生命周期。

延伸阅读

继续本课程

  • 下一章:CLI — 通过命令行参数控制所有高级特性
  • 回顾 01-08 章,用高级特性重新组织你的工作流

示例文件 (点击查看完整内容)

09-advanced-features/
└── planning-mode-examples.md

加载中…