Plan Mode 入门
了解 Plan Mode 如何改变 AI 编码智能体:在编写代码前迭代需求、构建上下文,并从 Claude Code 等工具获得更好的结果。
本页目录
本文面向所有使用过 AI 编码智能体、却对结果感到失望的人。
如果觉得 AI 智能体生成的代码质量低,或不理解代码库,就需要尝试 Plan Mode.
在 Plan Mode 中,编写任何代码前,你会与智能体反复讨论要构建的内容:交流需求、验证假设并完善方案。智能体探索代码库并构建上下文。真正开始编码时,它已经准确知道该做什么,也拥有所需的全部信息。
本文会使用 Claude Code 作为贯穿全文的示例,因为我最早就是在那里发现 Plan Mode 的。不过,其他 AI 编码智能体也已加入这项功能,请查看工具文档确认是否支持。
什么是 Plan Mode?
使用以下参数启动 Claude Code: --permission-mode plan启动 Claude Code,或在会话中输入 /plan 后,就会进入受限模式:
| 操作 | Plan Mode 中是否允许 |
|---|---|
| 读取文件 | 是 |
| 探索代码库 | 是 |
| 分析代码 | 是 |
| 编辑文件 | 否 |
| 运行命令 | 否 |
| 执行测试 | 否 |
智能体会探索仓库、提出澄清问题,并输出分步计划。对计划满意后,退出 Plan Mode,让智能体执行。
我几乎对所有任务都使用 Plan Mode ——即使只是修复小 bug。关键在于,它会验证我的假设,帮助我在写入代码前逐步逼近正确方案。
想继续深入: 加入“面向真正工程师的 AI 编码”候补名单
Plan Mode 编码循环
循环很简单:
- 口述想要的内容,可以很高层(“添加用户身份验证”),也可以很具体(“重构
handleSubmitinLoginForm.tsx”)。 - 进入 Plan Mode。
- 持续迭代,直到智能体给出满意的计划。
- 退出 Plan Mode,让智能体执行。
面对大型功能,可能会先在 Plan Mode 中花一小时,然后才编写代码。
通常不会在规划和执行之间清空 上下文窗口 。因此,智能体开始执行时,已经拥有规划阶段加载的所有相关文件和上下文。这就是 Plan Mode 有效的原因:关键不只是计划文档,还在于预热智能体上下文。
多阶段计划是例外:大型功能会被拆成独立的规划/执行循环。这超出本文范围,但熟悉基础循环后值得继续探索。
始终使用口述输入
如果还没有使用口述与 AI 交流,就已经落后了。口述能以快于任何其他输入方式的速度倾倒想法。
我在 Windows 上使用 Wispr Flow 。 Superwhisper 在 Mac 上表现很好。
关键在于:AI 不需要语法完美的输入,尤其在 Plan Mode 中,智能体无论如何都会重写提示词。因此,混乱的意识流口述完全可用。一旦智能体把它们提炼成计划,对话历史开头那些语法不正确的输入就不再重要。
Plan Mode 如何帮助智能体
智能体只能使用上下文窗口中的内容。没有读过文件,就无法很好地编辑;不了解项目结构,就会错误猜测内容应该放在哪里。
Plan Mode 会在编写代码前构建上下文窗口。智能体探索代码库、读取需要修改的文件,并发现不同部分之间的连接。退出 Plan Mode 时,它已经加载了所需的一切。
计划文档同样重要。它为执行阶段提供一组清晰指令,而不是让智能体边做边猜。已经加载的文件加上明确步骤,可以消除大量失败模式。当智能体准确了解工作对象和任务要求时,代码质量会显著提高。
Plan Mode 如何帮助开发者
在真正看到之前,你并不知道自己想要什么。客户如此,你也一样。不要欺骗自己,以为开始前已经完全明确;事实并非如此。
Plan Mode 允许你在触碰代码前先做原型。在一行代码都还不存在时,就与智能体反复讨论构建内容、权衡取舍、验证假设并发现边缘情况。这与和同事讨论的过程相同,只是速度更快。
Plan Mode 会迫使需求变得具体。你不会把模糊需求扔给人类同事却期待好结果;没有 Plan Mode 时,对 AI 做的正是这种事。维护过开源仓库、看过模糊错误截图的人都明白我的意思。
Plan Mode 会迫使你把需求说清楚,让其他人能够实现。很多时候,解释需求的过程还会揭示:你真正想要的其实略有不同。
如何在 Plan Mode 中写出更好的提示词
可以通过项目根目录中的文件自定义 Claude Code 行为: AGENTS.md 文件自定义 Claude Code 行为。以下技巧可以让 Plan Mode 更有效。
让计划保持简洁
计划不应该像小说。告诉智能体为简洁牺牲语法,让计划易于浏览,并聚焦真正重要的内容。
When writing plans, be extremely concise. Sacrifice grammar for the sake of concision.
让规划者提出澄清问题
智能体默认会问一些问题,但可以要求它更加彻底,从而在歧义变成 bug 前发现问题。
At the end of each plan, list unresolved questions. Ask about edge cases, error handling, and unclear requirements before proceeding.
把摘要放在最后
在终端中,人们会先看到输出末尾。让智能体把可执行摘要放到最后,就不必向上滚动。
End every plan with a numbered list of concrete steps. This should be the last thing visible in the terminal.
这不会比自己动手更慢吗?
有时确实如此。如果对仓库了如指掌,并能立刻看出解决方案,不用 AI 可能更快。
但 Plan Mode 不只是在熟悉领域追求速度,它还能扩展能力边界。面对陌生代码库,或需要先梳理需求再动手时,Plan Mode 不可或缺,让你能在以前无法参与的地方作出贡献。
我对所有任务都使用 Plan Mode,即使确信自己编码会更快。原因有三个:
-
这些工具持续进步。 速度是它们改进的主要方向之一。每次使用 Plan Mode,我都会增强对 AI 能处理什么、该如何与它沟通需求的直觉,而这种能力会持续复利。
-
更少的脑力疲劳。 专注高层决策比修复语法错误、追查类型不匹配消耗更少脑力,让我以更少疲惫完成更多工作。
-
AI 是我用过最好的橡皮鸭。 它能迅速理解代码库,全天候可用。Plan Mode 迫使我说清楚需求,从而提高软件构建能力。开始使用后,我的代码质量和产出都提升了。
问题不是“现在是否更慢?”,而是“我在优化什么?”如果目标是学习、减少疲劳和长期效率,那么即使独自编码理论上更快,Plan Mode 仍然胜出。
总结
Plan Mode 不是可选项,而是 AI 辅助编码的基础工具。
- 对所有任务使用 Plan Mode,即使只是修复小 bug
- 使用口述输入 ——AI 不需要完美语法
- Configure AGENTS.md ,让计划简洁,并把问题放在最后
- 规划会帮助智能体 在编码前构建上下文窗口
- 规划也会帮助你 迫使你明确表达需求
- 它当前未必总是更快,但这是对自身技能的长期投资