<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Plan Mode on niuzj</title>
    <link>https://niuzj.org/tags/plan-mode/</link>
    <description>Recent content in Plan Mode on niuzj</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 13 Jul 2026 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://niuzj.org/tags/plan-mode/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Claude Code Plan Mode：权限边界与审批机制</title>
      <link>https://niuzj.org/posts/claude-code-plan-mode-runtime/</link>
      <pubDate>Mon, 13 Jul 2026 00:00:00 +0800</pubDate>
      <guid>https://niuzj.org/posts/claude-code-plan-mode-runtime/</guid>
      <description>&lt;p&gt;Plan Mode 最容易被误解为一段“先分析、再执行”的提示词。这个解释描述了模型表面的行为，却回避了一个更重要的工程问题：如果模型在规划阶段仍然发起了写文件或执行命令的 Tool Call，谁负责阻止它？&lt;/p&gt;&#xA;&lt;p&gt;答案不能只是另一段 Prompt。Prompt 可以约束模型的倾向，不能构成可验证的权限边界。Claude Code 的 Plan Mode 本质上是 Agent Runtime 中的一种权限模式：它在原有 Agent Loop 之上叠加会话状态、运行时提醒、本地权限检查、Plan 文件和人工审批链路。&lt;/p&gt;&#xA;&lt;p&gt;本文把证据分成两类。用户可见的行为以 &lt;a href=&#34;https://code.claude.com/docs/en/permission-modes#analyze-before-you-edit-with-plan-mode&#34;&gt;Claude Code 官方 Plan Mode 文档&lt;/a&gt; 为准；消息构造、内部状态和审批后的上下文转换，则来自本机 Claude Code &lt;code&gt;2.1.207&lt;/code&gt; 源码快照，对应构建提交 &lt;code&gt;bc512d56332530b2be3f5079e29ec17aa20b8553&lt;/code&gt;。后者是特定版本的逆向观察，不应视为稳定 API。&lt;/p&gt;&#xA;&lt;h2 id=&#34;plan-mode-没有替换-agent-loop&#34;&gt;Plan Mode 没有替换 Agent Loop&lt;/h2&gt;&#xA;&lt;p&gt;进入 Plan Mode 后，Claude Code 仍然运行同一套模型与工具循环：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;构造模型请求&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;→ 模型返回文本或 tool_use&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;→ Claude Code 在本地处理工具调用&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;→ tool_result 回到对话&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;→ 模型继续推理，或结束当前轮次&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;变化发生在循环外围。可以把它拆成六个相互独立的部分：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Plan Mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;= 会话模式状态&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+ 持续的规划指令&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+ 工具执行前的权限检查&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+ 独立的 Plan 文件&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+ 用户审批边界&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+ 审批后的上下文转换&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这也解释了 Plan Mode 与 ReAct 类循环的关系：ReAct 描述 Agent 如何在推理和动作之间迭代，Plan Mode 描述这套循环当前处于什么权限状态，以及何时允许从调查进入有副作用的执行。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
