AI面包君AI面包君关注
回到博客
Claude Code

Plan 模式:让 AI 先想清楚再动手

给 Claude Code 加一个 --permission-mode plan,它就只列方案不动手。一篇讲清三种权限模式怎么选、plan 模式什么时候特别好用、和 acceptEdits 的搭配套路。

2026-04-195 分钟

你给 Claude Code 一句「重构一下 src/auth 模块」——它直接动手,改了 8 个文件 200 行。

回头你看 diff,很多东西不是你想要的。但 git 已经被改了,要回滚一通操作。

这就是 plan 模式存在的理由:让 AI 先告诉你它准备怎么做,你确认了再开始。

1. 权限模式三选一

启动时加参数选模式:

claude                                  # default 模式
claude --permission-mode plan           # plan 模式
claude --permission-mode acceptEdits    # acceptEdits 模式
模式行为适合场景
default动手前每次问你不熟的代码、生产环境
plan只读,不动手大需求先看方案、给同事 review
acceptEditsEdit 自动放行重构、git 干净时狂奔

2. Plan 模式具体禁止什么

进了 plan 模式,所有「会改环境」的工具都被关掉:

  • ❌ Edit / Write / NotebookEdit
  • ❌ Bash(除非是只读命令如 git status)
  • ❌ MCP 写工具(如 Notion 写、GitHub 创 PR)

还能做的:

  • ✓ Read / Glob / Grep / WebFetch
  • ✓ Bash 的查询命令
  • ✓ TodoWrite(只是规划,不动文件)

所以 plan 模式下 Claude 能完整看一遍代码,但只能输出文字——通常给你一份结构化的计划。

3. 实战流程:plan → 讨论 → 执行

最舒服的工作流:

# 1. 用 plan 模式启动
claude --permission-mode plan

# 2. 给一个大需求
> 重构 src/auth 模块,把 token 校验逻辑统一起来

它会:扫文件、读关键文件、最后给一份步骤清单 + 预估改动

你看完觉得 OK,退出,用 acceptEdits 模式重启:

claude --permission-mode acceptEdits
> 按上次那个计划做

(它通过 /resume 找回你刚才的会话)

4. 不退出怎么从 plan 切到执行?

/permissions 命令可以会话内切换:

> /permissions
[选 acceptEdits]
> 按计划做

但要注意:你已经从 plan 模式累积了一堆只读上下文,切到 accept 模式不会让 Claude 重新规划——它会直接照计划做,所以确认计划再切

5. Plan 模式的隐藏好处:省 token

只读工具不会改环境,意味着每次工具调用都可以被缓存。同一个项目里反复用 plan 模式探索,后续会话的缓存命中率非常高,比 default 模式便宜不止一半

6. 不要用 plan 模式的场景

  • 小需求(改一个文案、加一行 console.log):杀鸡用牛刀,直接 default。
  • 你已经知道怎么改:让它直接做,plan 是浪费一轮。
  • AI 写代码翻车多的语言/框架:plan 模式给的方案可能本身就有问题,不如它写一版你直接看 diff。

7. 一句话总结

Plan 模式 = 「先看 AI 怎么想,再决定让不让它干」。

新手用 default,熟手用 plan + acceptEdits 套路——没人天天用 acceptEdits 单刷,因为没人想被 AI 在不知情时改 200 行代码。


想直观感受 plan 模式给出的计划长什么样?去 Claude 课/plan 场景。