用 Plan → Code 循环管住你的 Agent

刚用 Claude Code 的时候我有个毛病: 打开终端, 直接敲一句话告诉它帮我改什么, 然后看着它一顿操作, 最后发现方向完全不对。

后来想明白一个道理——Agentic Coding 和写代码是两套不同的技能。写代码的时候你的手跟着脑子走, 但用 agent 的时候, 你的价值在于"定义目标"和"审核结果", 而不是替它打字。

那怎么让 agent 不走偏? 我总结了四个步骤: 探索 → 规划 → 编码 → 提交

第一步: 先探索, 别动手

Plan 模式是 Claude Code 的只读模式。启动的时候加个参数:

claude --permission-mode plan

会话里按 Shift+Tab 可以在 Plan 和 Accept-Edits 之间切换, 或者直接打 /plan

为什么要先探索? Claude 对项目的理解完全取决于你给了什么上下文。让它自己把相关文件读一遍, 画出一张地图, 比你凭直觉说"去改那个文件"要靠谱得多。

碰到特别棘手的架构问题, 我习惯在 prompt 里加一句 “think carefully before proposing anything”。多数情况下, 它前面的推理越仔细, 后面的返工就越少。

不过也别教条。如果任务很小——修个 typo、改个变量名、加一行日志——直接让它做就行, 不需要走完整个 plan 流程。官网文档也说了: 如果你能用一句话描述完改动内容, 那就跳过 plan。

第二步: 看完代码, 让它写个计划

探索完之后, 别让 Claude 急着开工。让它把理解到的现状、要改什么地方、怎么改, 写成一份计划。

我自己用的方法是让 Claude 把不确定的问题写到一个 planning.md 里, 我来回答, 来回过几轮。计划里至少要说清楚:

  • 当前代码的哪几块需要动
  • 每一处计划怎么改
  • 有哪些地方拿不准, 需要我决策

等计划你看着没问题了, 再让它动手。计划做得好的任务, 实现阶段基本一次通过, 不需要回头修修补补。

还有一种情况可以用 Auto 模式——Claude 自己用分类器判断操作是否安全, 不安全的才问我, 常规操作直接放行。启动时 claude --permission-mode auto。适合你对大方向有信心、但不想每步都点确认的场景。

第三步: 按计划逐个实现, 一次一块

计划确认之后, 按 Shift+Tab 切到 Accept-Edits 模式。这时候 Claude 可以不用每步等你确认就干活, 效率高很多。

关键点: 不要一口气让它改完整个计划。一次只要求一个函数, 或者先让它把函数签名都 stub 出来, 再逐个填充。

原因很简单——如果某个函数思路偏了, 及时纠正成本很低。如果一口气改了 10 个文件然后发现第一个假设就错了, 回退起来非常痛苦。

第四步: 干净提交

Claude 有自动 commit 的功能, 但我建议你别依赖它。

在逻辑检查点手动 git addgit commit, 比让 agent 自动提交好很多:

  • 有些改动你 review 之后想放弃, 干净的 commit 让回退变成一行命令
  • 每个 commit 只做一件事, review 的人能看懂
  • 提交前扫一眼 diff, 还能顺手检查有没有安全问题

习惯了这套循环之后, 你会发现大部分精力花在"探索"和"规划"上,“编码"反而是最轻松的一步。节奏对了——想清楚再动手, 远比边改边想要高效。

文章链接:

/zh/archive/claude-code-plan-code-loop/

# 相关文章推荐