Skip to content

三种操作模式

Three Operating Modes

Claude Code 提供了三种操作模式来适应不同的使用场景和信任级别。理解并善用这三种模式,是高效使用 Claude Code 的关键。


模式概览

Modes Overview

在深入讲解之前,先了解三种模式的核心区别:

特性Default 模式Auto 模式Plan 模式
操作执行每次询问确认自动执行不执行任何操作
安全级别最高较低最高(只读)
交互频率高(频繁确认)低(仅输入指令)中(讨论计划)
适合用户初学者、敏感操作熟练用户、重复任务复杂任务规划
执行速度慢(需等待确认)快(连续执行)无(仅规划)

Default 模式

Default Mode

Default 模式是 Claude Code 的默认工作模式。在这个模式下,Claude Code 执行任何操作前都会请求你的确认。

工作原理

你的请求 → Claude 分析 → 提出操作方案 → 等待你确认 → 执行操作

                                    你可以在这里审查
                                    并决定是否允许

实际交互示例

bash
> 给 UserService 添加一个缓存方法

# Claude 分析后:

Claude wants to read file: src/services/UserService.ts
Allow? [y/n/a] y

# Claude 读取文件后,提出修改方案:

Claude wants to edit file: src/services/UserService.ts

  Changes:
  + import { Cache } from '../utils/cache';
  +
  + private cache = new Cache({ ttl: 300 });
  +
  + async getCachedUser(id: string): Promise<User> {
  +   const cached = this.cache.get(`user:${id}`);
  +   if (cached) return cached;
  +   const user = await this.getUser(id);
  +   this.cache.set(`user:${id}`, user);
  +   return user;
  + }

Allow? [y/n/a] y

确认选项详解

在每次权限提示时,你有以下选择:

输入全称行为持续范围
yYes允许本次操作仅本次
nNo拒绝本次操作仅本次
aAlways允许此类操作当前会话

当你选择 n 拒绝操作时,Claude Code 不会放弃任务,而是会尝试找到替代方案或询问你期望的做法。

Default 模式的优势

  • 完全掌控:每一步操作都在你的视野中
  • 学习友好:通过审查操作来了解 Claude Code 的工作方式
  • 安全保障:防止误操作导致代码被意外修改
  • 审计追踪:你清楚地知道发生了什么改动

Default 模式的不足

  • 效率较低:频繁的确认操作会打断工作流
  • 对多步任务不友好:一个复杂任务可能需要确认十几次
  • 等待时间长:Claude 分析完成后需要等你回来确认

Auto 模式

Auto Mode

Auto 模式让 Claude Code 自动执行所有操作,无需逐一确认。这大幅提升了工作效率,特别适合处理信任度高的重复性任务。

如何进入 Auto 模式

bash
# 方式一:启动时指定
claude --auto

# 方式二:REPL 内切换
# 按 Shift+Tab 切换(循环:Default → Auto → Plan)

在 REPL 中,状态栏会显示当前模式:

╭─────────────────────────────────────────╮
│ Mode: Auto (execute without asking)     │
╰─────────────────────────────────────────╯

>

实际交互示例

bash
# Auto 模式下的交互(注意没有确认步骤)

> 给项目中所有 React 组件添加 PropTypes 验证

# Claude 自动执行:
 Reading src/components/Header.tsx
 Reading src/components/Sidebar.tsx
 Reading src/components/Footer.tsx
 Reading src/components/UserCard.tsx
 Editing src/components/Header.tsx
 Editing src/components/Sidebar.tsx
 Editing src/components/Footer.tsx
 Editing src/components/UserCard.tsx

Done! Added PropTypes validation to 4 components.

安全机制

虽然 Auto 模式跳过了交互确认,但它仍然受到权限配置的约束

json
// .claude/settings.json
{
  "permissions": {
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force)",
      "Edit(/etc/**)",
      "Edit(~/.ssh/**)"
    ]
  }
}

即使在 Auto 模式下,被明确禁止的操作仍会被阻止。

Auto 模式的重要注意事项

使用 Auto 模式的注意事项

  1. 确保项目有版本控制 — 在 Git 仓库中工作,这样任何误操作都可以回滚
  2. 先用 Default 模式试运行 — 对新类型的任务先手动确认几次,确认安全后再切换到 Auto
  3. 设置权限黑名单 — 在配置文件中明确禁止危险操作
  4. 定期审查变更 — 任务完成后用 git diff 查看所有改动

Auto 模式的最佳使用场景

场景示例为什么适合 Auto
批量重构重命名所有变量、统一代码风格操作类型单一、可预测
测试生成为多个模块生成单元测试主要是创建新文件
文档生成为所有函数添加 JSDoc重复性高、风险低
代码迁移将 JS 文件批量转换为 TS模式化操作
格式化统一导入顺序、添加类型注解低风险的样式修改

在 Auto 模式下中断执行

如果你在 Auto 模式下看到 Claude Code 正在做不正确的事情,可以随时中断:

bash
# 按 Ctrl+C 中断当前操作
# Claude Code 会停止执行并等待你的新指令

# 然后你可以:
# 1. 切换回 Default 模式
# 2. 用 git 回滚不正确的修改
# 3. 给出更明确的指令

Plan 模式

Plan Mode

Plan 模式是 Claude Code 的"只看不动"模式。在这个模式下,Claude Code 会分析你的需求、阅读相关代码、制定详细的执行计划,但不会执行任何修改操作

如何进入 Plan 模式

bash
# REPL 内切换
# 按 Shift+Tab 切换(循环:Default → Auto → Plan)

# 状态栏显示
╭─────────────────────────────────────────╮
 Mode: Plan (analyze only, no changes)   │
╰─────────────────────────────────────────╯

实际交互示例

bash
> 我想把整个认证系统从 JWT 迁移到 OAuth2,帮我制定计划

# Claude 在 Plan 模式下会输出类似以下内容:

## 认证系统迁移计划:JWT → OAuth2

### 第一阶段:准备工作
1. 安装依赖包
   - passport (v0.7.x)
   - passport-oauth2
   - express-session

2. 创建配置文件
   - src/config/oauth.ts OAuth2 提供商配置
   - src/config/session.ts Session 配置

### 第二阶段:核心实现
3. 创建 OAuth2 策略
   - src/auth/strategies/google.ts
   - src/auth/strategies/github.ts

4. 修改认证中间件
   - src/middleware/auth.ts 替换 JWT 验证逻辑
   - src/middleware/session.ts 新增 session 管理

5. 更新用户模型
   - src/models/User.ts 添加 OAuth 相关字段
   - 数据库迁移脚本

### 第三阶段:路由更新
6. 新增 OAuth 路由
   - /auth/google Google 登录
   - /auth/github GitHub 登录
   - /auth/callback 回调处理

7. 修改现有路由
   - 移除 /auth/login JWT 逻辑
   - 更新 /auth/logout

### 第四阶段:测试与清理
8. 更新测试
   - 修改现有认证测试
   - 添加 OAuth 流程测试

9. 清理旧代码
   - 移除 JWT 相关依赖
   - 清理不再使用的工具函数

### 风险评估
- 需要更新所有前端的认证逻辑
- 现有用户的 session 需要迁移策略
- 第三方 OAuth 提供商的回调 URL 需要配置

### 预计影响的文件
 15 个文件需要修改,3 个新文件需要创建

Plan 模式的核心价值

Plan 模式在以下场景中极为有用:

1. 复杂任务的前期规划

在执行大规模修改之前,先让 Claude 生成计划:

bash
# Plan 模式
> 分析一下将这个项目从 Express 迁移到 Fastify 需要做什么

# 审查计划后,切换到 Default 或 Auto 模式执行

2. 代码审查和分析

不需要修改任何东西,只想了解代码:

bash
> 这个项目有哪些潜在的性能瓶颈?
> 分析一下 src/services/ 目录的依赖关系
> 当前的错误处理策略是否完善?

3. 学习和理解代码

加入新团队时,用 Plan 模式安全地探索代码库:

bash
> 帮我梳理一下用户下单到订单完成的整个数据流
> 解释一下这个项目的中间件是如何组织的

4. 技术方案评估

bash
> 如果要给这个系统添加实时通知功能,有哪些实现方案?
  分析各方案的优缺点

模式切换

Mode Switching

REPL 内切换

在 REPL 中,按 Shift+Tab 可以循环切换三种模式:

Default → Auto → Plan → Default → ...

每次切换时,状态栏会更新显示当前模式。

切换不影响上下文

模式切换不会清除当前的对话上下文。你可以先在 Plan 模式下制定计划,然后切换到 Auto 模式执行:

bash
# Step 1: Plan 模式下规划
[Plan] > 帮我规划如何重构 UserService

# Claude 输出详细计划...

# Step 2: 按 Shift+Tab 切换到 Auto 模式
[Auto] > 按照刚才的计划开始执行

# Claude 自动执行所有步骤...

命令行参数

bash
# 启动时直接进入 Auto 模式
claude --auto

# Default 模式是默认值,无需参数
claude

三种模式的对比

Detailed Comparison

操作行为对比

操作类型DefaultAutoPlan
读取文件询问确认自动执行自动执行
编辑文件询问确认自动执行不执行
创建文件询问确认自动执行不执行
删除文件询问确认自动执行不执行
运行命令询问确认自动执行不执行
Git 操作询问确认自动执行不执行
分析代码自动自动自动
生成计划附带执行附带执行仅生成计划

安全等级对比

Plan 模式    ████████████ 最安全(完全只读)
Default 模式 ████████░░░░ 安全(需确认)
Auto 模式    ████░░░░░░░░ 需要谨慎(自动执行)

效率对比

Auto 模式    ████████████ 最高效
Plan 模式    ████████░░░░ 中等(分析快但不执行)
Default 模式 ████░░░░░░░░ 较慢(频繁等待确认)

实际使用建议

Practical Recommendations

日常开发工作流

推荐的模式使用策略:

1. 新任务开始 → Plan 模式
   "分析需求,制定方案"

2. 方案确认后 → Default 模式
   "逐步执行,审查关键改动"

3. 重复性操作 → Auto 模式
   "批量执行已验证的操作模式"

按任务类型选择模式

任务类型推荐模式理由
理解代码 / 学习项目Plan无需修改,只需分析
制定重构方案Plan先规划后执行
编写新功能Default需要审查生成的代码
修复已知 BugDefault确认修复方案正确
批量格式化Auto低风险、高重复
生成测试Auto创建新文件为主
生产环境配置Default敏感操作必须确认
数据库迁移脚本Default → Plan先规划再谨慎执行

团队协作建议

对于团队使用 Claude Code,建议设定以下规范:

json
// .claude/settings.json(提交到仓库)
{
  "permissions": {
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force*)",
      "Bash(git reset --hard*)",
      "Edit(.env*)",
      "Edit(**/credentials*)",
      "Edit(**/secrets*)"
    ]
  }
}

这份配置确保了即使在 Auto 模式下,危险操作也会被阻止。


进阶技巧

Advanced Tips

组合使用模式

一个复杂任务的典型工作流:

bash
# 1. Plan 模式:分析现状
[Plan] > 分析当前项目的 API 层存在哪些问题

# 2. Plan 模式:制定方案
[Plan] > 制定重构 API 层的详细计划

# 3. Default 模式:执行关键部分
[Default] > 执行计划的第一步:创建新的路由结构

# 4. Auto 模式:执行重复部分
[Auto] > 按照新结构迁移所有现有路由

# 5. Default 模式:验证结果
[Default] > 运行测试,检查是否有遗漏

用 Plan 模式做代码审查

bash
[Plan] > 查看最近 5 次提交的改动,指出潜在问题

[Plan] > 分析 PR #42 的代码变更,给出审查意见

Auto 模式配合 Git

在 Auto 模式下工作时,利用 Git 作为安全网:

bash
# 创建工作分支
git checkout -b feature/auto-refactor

# Auto 模式执行任务
[Auto] > 将所有 class 组件转换为函数组件

# 完成后审查
git diff

# 不满意?一键回滚
git checkout .

# 满意?提交
git add -A && git commit -m "refactor: convert class to function components"

小结

Summary

三种操作模式是 Claude Code 的核心设计理念之一,它们让你在安全性效率之间找到最佳平衡:

  • Default 模式 — 安全至上,每步确认,适合初学者和敏感操作
  • Auto 模式 — 效率优先,自动执行,适合信任的重复任务
  • Plan 模式 — 只分析不执行,适合规划和代码理解

记住,你可以随时通过 Shift+Tab 在三种模式之间切换,并且切换不会丢失对话上下文。善用模式切换,让 Claude Code 成为你最高效的编程伙伴。