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:规划中需要补需求时提问