EnterPlanModeTool:进入 Plan Mode
EnterPlanModeTool:进入 Plan Mode
它的本质是状态切换,不是提示词切换
EnterPlanModeTool 的作用不是“让模型多想一会儿”,而是把当前会话切到一种新的运行状态:plan。
这意味着系统会同时改变:
- 权限模式
- 会话目标
- 用户交互预期
所以它本质上是一个 运行时状态切换工具 。
关键源码
tools/EnterPlanModeTool/EnterPlanModeTool.ts:
1 | import { handlePlanModeTransition } from '../../bootstrap/state.js' |
真正的核心逻辑在 call():
1 | context.setAppState(prev => ({ |
调用链
为什么它不能在 agent context 里随便用
源码里有一条硬限制:
1 | if (context.agentId) { |
这说明 Anthropic 不希望子 Agent 随便把自己切进 Plan Mode,
而是把这种流程控制留给主线程。
它和 AskUserQuestionTool 的关系
Plan Mode 不是闭门写计划。
如果需求没搞清楚,仍然要用 AskUserQuestionTool 先补信息,再继续计划。
小结
EnterPlanModeTool 的价值在于:
它把“先规划再编码”从一种提示习惯,升级成了 Claude Code 运行时里的正式状态机切换。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!