Tools 工具组
EnterPlanModeTool:进入 Plan Mode
这个工具做什么
EnterPlanModeTool 用来把当前会话切换到 Plan Mode。
它代表 Claude Code 不是只有“直接干活”一种状态,还支持先规划、后编码。
关键源码
tools/EnterPlanModeTool/EnterPlanModeTool.ts:
import { handlePlanModeTransition } from '../../bootstrap/state.js'
import { applyPermissionUpdate } from '../../utils/permissions/PermissionUpdate.js'
import { prepareContextForPlanMode } from '../../utils/permissions/permissionSetup.js'
这几个导入已经很说明问题:
进入 Plan Mode 不只是 UI 切换,还涉及权限和上下文重组。
调用链
加载图表中...
实现重点
Plan Mode 的重点是限制模型立即执行危险写操作,把当前轮的目标改成“输出计划”。
所以 EnterPlanModeTool 实际上是一个状态切换器。
它和相邻工具的关系
ExitPlanModeTool:计划写完后提交审批AskUserQuestionTool:规划中需要补需求时提问