Claude Code Plan 模式怎么用:先出方案再改代码

Claude Code 的 plan 模式(计划模式)只研究、不改代码,批准方案后才动手。本文讲怎么进入和退出、批准方案的三个选项、Ctrl+G 编辑方案、设为默认、和 auto 模式的关系,以及什么时候不必用。

NNathaniel bigo··原创首发·AI 辅助撰写
8 分钟读完
资料核对于 2026-10-07 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Claude Code 官方文档《Choose a permission mode》中的 plan mode 一节和《Best practices for Claude Code》整理,核对日期 2026-10-07。

适用于谁

  • 怕 Claude Code 一上来就改一大堆文件、想先看方案的人;
  • 搜「claude code plan mode 怎么用」「plan mode 是什么」「计划模式」的人;
  • 想知道 plan 模式和 auto 模式该怎么配合的人。

结论先说

  1. plan 模式 = 只研究、不改源码:Claude 会读文件、运行探索性的命令、写出实施方案,但在你批准方案之前不会动你的代码。
  2. 进入方式三种:按 Shift+Tab 直到状态栏显示 ⏸ plan mode on;在单条消息前加 /plan;启动时 claude --permission-mode plan。
  3. 方案写好后有三个选择:批准并用 auto 模式执行、批准但逐个确认改动、继续修改方案。按 Ctrl+G 可以在编辑器里直接改方案。
  4. 官方的推荐流程是「探索 → 计划 → 实现 → 提交」,但也提醒:一句话能说清的小改动(改错别字、加一行日志、改变量名)直接做,不必走 plan。
  5. 想规划时用更强的模型、执行时用更省的模型,可以用 opusplan。

步骤

1. 进入 plan 模式

会话中:按 Shift+Tab 循环切换,直到输入框下方显示 ⏸ plan mode on。(从 auto 出发的顺序是 manual → accept edits → plan。)

只对这一条消息:

text
/plan 修复 session 过期后登录失败的问题

启动时:

bash
claude --permission-mode plan

VS Code:点输入框底部的模式标识选 Plan,或者输入 /plan。VS Code 会把方案作为完整的 Markdown 文档打开,你可以在里面写行内批注再反馈给 Claude。

2. 让它探索并写方案

官方示例的两步提问(翻译改写):

text
阅读 /src/auth,搞清楚我们是怎么处理 session 和登录的;
再看看密钥类的环境变量是怎么管理的。
text
我想加上 Google OAuth 登录。需要改哪些文件?session 的流程是怎样的?
请写一份实施方案。

plan 模式下,Claude 运行命令的规则:

  • auto 模式可用、且 useAutoModeDuringPlan 开着(默认开)时,探索性的命令由分类器审核,通过就执行,不用你逐个点;
  • auto 模式不可用时,除内置只读命令外的命令都会询问你。

它在 plan 模式下调研时,通常会把大量读代码的工作交给内置的 Plan 子代理,这些输出留在子代理自己的上下文里,不会塞满主对话。

3. 审阅和修改方案

方案写好后 Claude 会问你怎么继续:

选项效果
Yes, and use auto mode批准,切到 auto 模式开始执行(auto 不可用时显示为「Yes, auto-accept edits」)
Yes, manually approve edits批准,但每一处改动都要你确认
No, keep planning留在 plan 模式,告诉 Claude 要改方案的哪里
  • 按 Ctrl+G 在默认文本编辑器里直接编辑方案,改完再让 Claude 执行;
  • 不想批准、只想退出 plan 模式:再按 Shift+Tab;
  • 批准后会话会自动根据方案起一个标题(如果你还没命名);
  • 开启设置 showClearContextOnPlanAccept 后,会多一个「批准并清空规划阶段上下文」的选项,适合规划聊得很长的情况。

批准方案后 plan 模式就结束了。想再规划一次,按 Shift+Tab 切回,或在下一条消息前加 /plan。

4. 按方案实现并验证

官方示例:

text
按你的方案实现 OAuth 流程。给回调处理函数写测试,运行测试套件并修复失败的用例。
text
用清楚的提交说明提交,并开一个 PR。

一个好习惯:让 Claude 在实现时对照方案,并给它一个能自己运行的检查(测试、构建、截图对比),它就能自己发现问题、自己修。

5. 把 plan 设为默认(可选)

想让某个项目每次都从 plan 模式开始,在项目的 .claude/settings.json 里写:

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

注意 VS Code 扩展不读项目设置里的起始模式,需要在 VS Code 用户设置里把 claudeCode.initialPermissionMode 设成 plan。

用 opusplan:规划用 Opus、执行用 Sonnet

text
/model opusplan

plan 模式下用 Opus 做复杂推理和架构决策,批准后自动切到 Sonnet 写代码。切换模型的更多用法详见本站《Claude Code 切换模型:/model 命令、模型别名、effort 与 fast 模式》。

什么时候用、什么时候不用

适合用 plan 模式(官方说法):

  • 你不确定该怎么做;
  • 改动会涉及多个文件;
  • 你对要改的代码不熟悉。

不必用:范围明确的小改动。官方的判断标准很直接——如果你能用一句话描述出这个 diff,就跳过计划,直接让 Claude 做。plan 模式有用,但也有额外开销。

对于更大的功能,官方还推荐一个进阶做法:先让 Claude「采访」你——用 AskUserQuestion 工具问清技术实现、交互、边界情况和取舍,然后把完整需求写进 SPEC.md,再开一个新会话照着 SPEC 去实现,新会话的上下文干净、专注于执行。

plan 模式和其他模式的关系

模式会不会改代码
plan批准方案前不改源码
Manual会改,但每次都问你
acceptEdits自动改文件,你事后用 git diff 复查
auto自动执行,分类器在后台把关

plan 是「先想后做」的那一步,批准后通常接 auto 或 Manual 去执行。各模式的详细区别和权限规则写法,详见本站《Claude Code 权限模式详解:auto、手动、plan、bypass 与权限规则配置》。

常见问题

Q:plan 模式下 Claude 真的一个文件都不会改吗?

批准方案前,源码编辑会被拦下。唯一的例外是:在交互式终端里以「bypass 权限可用」的方式启动的会话,plan 模式的拦截不强制执行(Claude 仍被要求只规划不编辑)。所以在普通使用中不用担心;如果你用 --dangerously-skip-permissions 启动,就不要指望 plan 模式替你拦截。

Q:plan 模式会消耗额度吗?

会。读文件、运行探索命令、写方案都在消耗 token。但官方认为对复杂任务这是值得的:方向错了再返工更费。

Q:方案写得不满意怎么办?

选「No, keep planning」并说明要改哪里,或者 Ctrl+G 直接改。官方也提醒:同一个问题纠正了两次以上还不对,说明上下文里堆满了失败的尝试,/clear 后用更清楚的提示重新开始效果往往更好。

Q:压缩上下文后方案还在吗?

在。官方说明 plan 模式写好的方案会在压缩后从磁盘重新注入。

参考资料

  • Choose a permission mode · Analyze before you edit with plan mode(官方):https://code.claude.com/docs/en/permission-modes
  • Best practices for Claude Code(官方):https://code.claude.com/docs/en/best-practices
  • Common workflows(官方):https://code.claude.com/docs/en/common-workflows
  • Use Claude Code in VS Code(官方):https://code.claude.com/docs/en/vs-code
  • Model configuration · opusplan(官方):https://code.claude.com/docs/en/model-config
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    Cursor、Claude Code、Codex、GitHub Copilot 有什么区别:按形态、账号、计费和规则文件对比

    Cursor 和 Claude Code 的区别是什么、和 Codex、GitHub Copilot 怎么选?只用各家官方文档的事实对比:产品形态、用什么账号、怎么计费、能选哪些模型、规则文件与 MCP、权限模式、代码审查;不做「谁更强」的排名,给出按场景选择的思路。

    ClaudeCursor0
  2. 02

    如何让大模型稳定输出 JSON:结构化输出、JSON 模式与提示词写法(OpenAI / Claude)

    怎么让大模型稳定输出 JSON?本文按 OpenAI 和 Anthropic 官方文档讲清只靠提示词、JSON 模式、结构化输出三种做法的可靠程度,两家的写法与 Schema 限制,以及拒答和截断两种例外。

    ChatGPTClaude0
  3. 03

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  4. 04

    提示词里的角色设定有用吗:「你是一位专家」该怎么写才有效(官方文档怎么说)

    提示词开头写「你是一位资深专家」到底有没有用?本文按 Anthropic、OpenAI、Google 官方文档讲清角色设定管什么、不管什么,一句话角色和详细人设各自适合什么场景,角色应该放在哪里,以及比「你是专家」更有效的四个写法。

    ChatGPTClaude0
  5. 05

    提示词链(Prompt Chaining)怎么用:把复杂任务拆成几步,前一步的输出交给后一步

    提示词链是什么、什么时候该把大提示词拆开?本文按 Anthropic 和 Google 官方文档讲清拆指令、串成链、分块聚合三种拆法,最常用的「起草 → 审查 → 修改」链,以及哪些情况不必拆。

    ClaudeGemini0
  6. 06

    Claude Code 切换模型:/model 命令、模型别名、effort 与 fast 模式

    Claude Code 怎么切换模型?讲清 /model 命令与选择器、opus / sonnet / haiku / fable / opusplan 等别名、默认模型、推理强度 effort 怎么调、ultrathink、fast 模式,以及换了模型下次又变回去的原因。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~