Claude Code 模式切换全指南:从小白到理解底层原理
Claude Code 模式切换全指南:从小白到理解底层原理
能力越强,风险越大。模式就是在安全和效率之间选档位。
目录
为什么需要模式?
Claude Code 能做的事情很多:读文件、改代码、跑命令、访问网络。如果什么都让它随便做,万一它删错了文件怎么办?如果什么都问你要确认,用起来又太慢了。
这就是模式要解决的矛盾:能力越强,风险越大。
模式不是限制你,是让你选择「在哪个档位上信任 AI」。就像开车有经济模式、运动模式、雪地模式——同一辆车,不同场景用不同档位。
五种模式速览
| 模式 | 读文件 | 改文件 | 跑命令 | 一句话 |
|---|---|---|---|---|
| Default | 自动 | 需确认 | 需确认 | 万事求确认,安全第一 |
| AcceptEdits | 自动 | 自动 | 需确认 | 放心写代码,不放心跑命令 |
| Plan | 自动 | 禁止 | 禁止 | 先探索出方案,审阅后再动手 |
| Auto | 自动 | 自动 | 自动(带检查) | 长时间任务,减少中断 |
| BypassPermissions | 自动 | 自动 | 自动(无检查) | 仅限隔离环境,极度危险 |
Default 模式
新手首选。Claude 能自由读文件,但改代码、跑命令都要你点确认。适合刚上手、处理敏感项目、或者只想让 AI 帮你读代码找答案。
AcceptEdits 模式
信任 AI 写代码,但对跑命令保持警惕。批量改文件很方便,但 rm -rf 还是会拦住你。状态栏显示 accept edits on。
Plan 模式
只读模式。Claude 自由探索代码库,但不能改任何文件。它会把探索结果整理成实施计划给你审阅,你批准后才真正动手。适合复杂重构、方案不确定的场景。
Auto 模式
Claude 可以执行所有操作,但有后台安全检查。适合长时间自主运行的任务,减少「提示疲劳」。
BypassPermissions 模式
跳过所有权限检查。源码里有明确警告:
// 只有在完全受信任的环境中才使用
// 错误使用可能导致数据丢失或安全问题
仅在 Docker 容器或 CI/CD 流水线中使用。
切换方式
- Shift+Tab:在
default → acceptEdits → plan之间循环 - 启动参数:
claude --permission-mode plan - 配置文件:在
.claude/settings.json中设置defaultMode
Plan 模式详解
Plan 是 Claude Code 最独特的设计。它的核心思想:让模型主动降低自己的权限,换取用户的信任。
完整流程
用户触发 Plan 模式
|
v
Claude 只读探索代码库
|
v
生成实施计划(写入 ~/.claude/plans/)
|
v
用户审阅、编辑计划
|
v
批准 → 退出 Plan,恢复原模式,开始执行
拒绝 → 回到原状态
为什么 Plan 有效?
在规划阶段纠正错误,代价几乎为零。让 Claude 探索 5 分钟出个方案,比让它直接动手然后你花 30 分钟回滚高效得多。
实际开发中:
- 重构复杂模块 → 先 Plan 摸清代码结构,再动手
- 方案有多种选择 → 让 Claude 在 Plan 里对比分析
- 跨文件改动 → Plan 阶段确认影响范围
底层原理:Agent Loop + 五层权限
Agent Loop:核心是一个 while 循环
Claude Code 的执行逻辑,本质上就是一个 Agent Loop:
async function agentLoop(messages) {
while (true) {
// 1. 调用 Claude 模型
const response = await callModel(messages);
// 2. 如果没有工具调用,结束
if (!response.toolCalls) return response.text;
// 3. 执行工具(读文件、写文件、跑命令等)
const toolResults = await executeTools(response.toolCalls);
// 4. 把结果喂回给模型,继续循环
messages = [...messages, response, ...toolResults];
}
}
关键洞察:Claude Code 有 40+ 个工具模块(读文件、写文件、跑命令、搜索等)。模式切换的本质,就是改变这些工具的「权限级别」。
- Plan 模式:所有写操作的工具被禁用
- Default 模式:写工具需要用户确认
- BypassPermissions 模式:所有工具的权限检查被跳过
五层权限架构
Claude Code 的权限系统不是简单的「允许/拒绝」,而是五层从粗到细的控制:
第 1 层:会话模式(粗)
Default / AcceptEdits / Plan / Auto / BypassPermissions
|
第 2 层:工具白名单
配置文件里允许/禁止特定工具(如禁止 BashTool)
|
第 3 层:工具级权限
每个工具有默认权限(读工具自动允许,写工具需询问)
|
第 4 层:操作级权限
同一工具不同操作风险不同(ls 自动允许,rm -rf 需确认)
|
第 5 层:ML 分类器(细)
用机器学习判断命令的危险程度
这告诉我们:好的权限系统是「分层」的。你不需要在全开和全关之间二选一——可以在不同粒度上精细控制。
Plan Mode 的源码实现
从源码层面看,Plan Mode 涉及这些文件:
| 文件 | 职责 |
|---|---|
| EnterPlanModeTool.ts | 进入 Plan 模式的入口 |
| ExitPlanModeV2Tool.ts | 退出 Plan 模式 + 审批流程 |
| plans.ts | 计划文件的存储与管理 |
| planModeV2.ts | 配置管理 |
| permissionSetup.ts | 权限上下文准备与恢复 |
完整生命周期
关键设计:状态的对称性
Plan Mode 最巧妙的设计是进入和退出的对称性:
- 进入时:保存当前模式到
prePlanMode - 退出时:精确恢复到
prePlanMode
这意味着 Plan Mode 是一个「可嵌套的插入层」。不管你在什么模式,进入 Plan 再退出后都能回到原来的状态。
// 进入 Plan Mode
const prePlanMode = currentMode;
currentMode = 'plan';
// 退出 Plan Mode
currentMode = prePlanMode; // 精确恢复
这个设计原则值得借鉴:好的功能要考虑「进入」和「退出」的对称性——用户不应该因为尝试了一个功能就回不到原来的状态。
对开发的影响
1. 模式选择 = 问题粒度匹配
不是「哪个模式更好」,而是「你的任务适合哪个档位」:
| 任务类型 | 推荐模式 | 原因 |
|---|---|---|
| 读代码、找答案 | Default | 只需要读,不需要改 |
| 批量改文件 | AcceptEdits | 信任代码修改,不想反复确认 |
| 复杂重构、方案不确定 | Plan | 先规划,避免方向性错误 |
| 长时间自动化任务 | Auto | 减少中断 |
| CI/CD 流水线 | BypassPermissions | 隔离环境,全自动 |
2. 先规划后执行省返工时间
Plan Mode 的哲学:在规划阶段纠正错误的代价几乎为零。
改一张图纸比拆一面墙便宜。让 Claude 在 Plan 模式下探索 5 分钟,比让它直接动手然后你花 30 分钟回滚高效。
3. 权限分层 = 精细化授权
你不必在「完全信任」和「完全不信任」之间二选一:
- 可以允许改代码(AcceptEdits),但不允许跑命令
- 可以在配置文件中单独禁止某些危险工具
- 甚至可以对同一个命令的不同参数做不同处理
4. 50 万行代码的启示
Claude Code 有 50 万行 TypeScript 代码,但核心 Agent Loop 只有 20 行。95% 的代码不在核心循环里,而在围绕它的基础设施上——权限系统、上下文压缩、子代理编排、会话持久化。
对我们自己开发 AI 应用的启示:核心逻辑可以很简单(一个 while 循环调用 LLM),真正的工作量在「让这个循环安全、高效、可扩展」的工程上。
总结与实战建议
小白怎么选模式?
| 你的场景 | 推荐模式 |
|---|---|
| 第一次用,想试试水 | Default |
| 想让 CC 帮你写代码,怕它乱跑命令 | AcceptEdits |
| 要重构复杂模块,不确定方案 | Plan |
| 跑测试、批量处理 | Auto |
| Docker 容器里做自动化 | BypassPermissions |
推荐工作流
1. Plan 模式:让 Claude 探索代码、出方案
2. 审阅计划,确认方向正确
3. 切到 AcceptEdits 或 Auto:按计划执行
4. 发现偏差 → 随时切回 Plan 重新规划
核心观点
- 模式不是限制你,是让你在正确的档位上信任 AI
- Plan Mode 的价值:先规划后执行,避免方向性错误
- 五层权限的启示:好的安全设计是分层的,不是一刀切
- Agent Loop 的启示:核心逻辑简单,工程在护城河
一句话:理解这些模式,不只是让 Claude Code 用得更顺手,也是在学「怎么设计一个好的 AI Agent 系统」。
更多推荐




所有评论(0)