Advanced Features
高级特性——让复杂任务变得可控
Planning、Thinking、Auto Mode、后台任务、会话管理、Worktree、沙盒、配置等任务变复杂后
你有没有发现,Claude 处理简单任务很好用,但任务一复杂就开始跑偏?
改着改着就偏了
让 Claude 给项目加通知系统。它改了 15 个文件,改到一半你已经看不懂了。它到底在按什么计划做事?
想不清楚就动手
让 Claude 重构认证模块。它直接开始改代码,没有先跟你确认方案。改完才发现方向不对,回退成本很大。
到处都是确认框
给 Claude 一个自动化任务,但每一步都要手动确认权限。10 个步骤点了 10 次"允许",比自己做还慢。
能力地图
本章覆盖全部高级能力,按用途分组
任务规划
Planning Mode 先规划再执行;Extended Thinking 深度推理。
自动化
Auto Mode 安全自动执行;后台任务不阻塞对话;定时任务按计划重复。
权限与安全
六种权限模式;沙盒隔离;Git Worktree 隔离工作目录。
会话与配置
会话恢复/分叉;任务列表持久跟踪;配置文件与环境变量。
交互体验
快捷键、Tab 补全、多行输入、Vim 模式、语音输入。
远程与集成
Print Mode CI/CD;Remote Control 远程控制;Chrome 集成;桌面应用。
Planning Mode
先规划再执行——Claude 分析任务、生成计划、你批准后才动手
# 启动方式
$ /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)。
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"
}
}
权限与自动化
六种权限模式,对应不同的自动化程度
| 模式 | 行为 | 适合 |
|---|---|---|
default | 必要时询问权限 | 日常开发 |
plan | 只规划,不执行 | 复杂任务规划 |
acceptEdits | 自动接受编辑 | 受控环境 |
auto | 自动执行 + 安全审查 | 自动化场景 |
dontAsk | 自动执行,但不做安全审查 | 信任环境下的快速操作 |
bypassPermissions | 跳过所有权限 | 完全信任的 CI |
# 启用 Auto Mode
$ claude --enable-auto-mode
# 然后在 REPL 中用 Shift+Tab 切换到它
分类器默认允许
- 只读检查(cat、ls、grep)
- 常规分析和搜索
- 低风险文件修改
分类器默认阻止
- 明显危险的文件操作(rm -rf)
- 高风险 shell 命令
- 可能泄露凭据的操作
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 -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
隔离目录并行工作——实验、重构互不干扰
# 在隔离 worktree 中启动 Claude Code
$ claude -w
# Monorepo 场景:sparse checkout 只加载需要的部分
# 大型 monorepo 中配合使用,提升效率
核心特性
- 隔离目录:每个 worktree 是独立工作区
- Worktree 位置:控制放置位置,保持主工作区整洁
- 自动清理:不需要的 worktree 可以自动清理
- Hooks 支持:worktree 场景下依然可以配合工具和 hooks
典型场景
- 并行尝试多个方案,对比效果
- 隔离高风险重构,不影响主分支
- 保持主分支整洁,review 时更清晰
沙盒隔离
操作系统级文件系统和网络隔离,显著降低自动化操作风险
# 启用沙盒
# 开启后,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_KEY | API 密钥 |
CLAUDE_MODEL | 模型选择 |
CLAUDE_EFFORT | Thinking 强度 |
CLAUDE_ENABLE_AUTO_MODE | 启用 Auto Mode |
CLAUDE_MCP_CONFIG | MCP 配置路径 |
CLAUDE_TASK_LIST | 任务列表开关 |
CLAUDE_OUTPUT_FORMAT | 输出格式 |
项目专用设置推荐放进 .claude/settings.json,跟代码一起版本化。
任务列表
跨 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 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 — 通过命令行参数控制所有高级特性
延伸阅读
示例文件 (点击查看完整内容)
09-advanced-features/
└── planning-mode-examples.md