首页
/
Claude Code
/
Tools 工具组
📁 Tools 工具组
25 篇文章
2026年4月3日 · 阅读文章
它不是普通 checklist,而是会话内任务外显 TodoWriteTool 是 Claude Code 经典的轻量任务管理工具。 它的作用不是替代正式任务系统,而是让模型在当前会话里把工作拆成一串可见的 todo。 你可以把它理解成: TodoWriteTool:轻量、会话内、快速追踪 TaskCreateTool 系列:结构化、正式任务系统 关键源码 tools/TodoWriteTool/TodoWriteTool.ts: const inputSchema = z.strictObject({ todos…
2026年4月3日 · 阅读文章
这个工具为什么比“直接问一句话”更高级 很多人第一次看到 AskUserQuestionTool,会觉得它不就是“向用户提问”吗? 但在 Claude Code 里,它其实解决的是一个更深的问题: 当模型执行到一半需要补信息时,如何把“提问”做成正式、结构化、可交互的系统能力,而不是随手打一句自然语言。 这对于 Agent 产品特别重要,因为它关系到: 需求澄清 多选决策 方案比较 Plan Mode 中的信息补全 源码先看 schema tools/AskUserQuestionTool/AskUserQuest…
2026年4月3日 · 阅读文章
它不是命令别名,而是技能运行时 很多人第一次看到 /commit、/verify、/update-config 这类 skill,会以为它们只是更长 prompt 的快捷方式。 但从源码看,SkillTool 明显比“文本别名”复杂得多。 它负责的是: 找到 skill 对应的 command 解析参数 处理本地 skill 和 MCP skill 必要时 fork 一个子 Agent 去跑 所以更准确的说法是: SkillTool 是 Claude Code 的技能执行器。 关键源码 tools/SkillToo…
2026年4月3日 · 阅读文章
它的本质是状态切换,不是提示词切换 EnterPlanModeTool 的作用不是“让模型多想一会儿”,而是把当前会话切到一种新的运行状态:plan。 这意味着系统会同时改变: 权限模式 会话目标 用户交互预期 所以它本质上是一个 运行时状态切换工具。 关键源码 tools/EnterPlanModeTool/EnterPlanModeTool.ts: import { handlePlanModeTransition } from '../../bootstrap/state.js' import { apply…
2026年4月3日 · 阅读文章
它不是“结束规划”,而是“提交规划” ExitPlanModeTool 的名字容易让人误会。 它真正做的并不是简单退出,而是: 当计划已经写好后,把计划提交给用户审批。 所以它代表的是 Plan Mode 的交付节点,不是随便离开规划态。 关键源码 tools/ExitPlanModeTool/prompt.ts: Use this tool when you are in plan mode and have finished writing your plan to the plan file and are…
2026年4月3日 · 阅读文章
它把待办项升级成正式任务对象 TaskCreateTool 不是简单往列表里插一行文本,而是把一个工作项创建成正式任务对象: 有 id 有 subject 有 description 有状态 可被后续更新、阻塞、归属 这说明 Claude Code 的任务系统已经不是展示层小功能,而是真正的运行时对象系统。 关键源码 const taskId = await createTask(getTaskListId(), { subject, description, activeForm, status: 'pendin…
2026年4月3日 · 阅读文章
它是任务系统里的单点查询入口 TaskGetTool 的职责很纯粹:按 ID 读取单个任务。 但它的重要性在于,它让主线程可以在复杂任务流里随时检查某个任务当前的真实状态,而不是只看 UI 记忆。 关键源码 const task = await getTask(taskListId, taskId) 返回内容除了标题和状态,还包括: description blocks blockedBy 这说明它查询的不是“列表项”,而是带依赖关系的任务对象。 调用链 加载图表中... 小结 TaskGetTool 让任务系统具…
2026年4月3日 · 阅读文章
它是任务系统的主写入口 TaskUpdateTool 负责修改任务对象本身。 如果说 TaskCreateTool 是创建节点,那 TaskUpdateTool 就是任务流真正推进的主干工具。 关键源码 它支持更新的字段非常多: const inputSchema = z.strictObject({ taskId: z.string(), subject: z.string().optional(), description: z.string().optional(), activeForm: z.string…
2026年4月3日 · 阅读文章
它给主线程提供全局任务视图 TaskListTool 的作用是让模型重新看到“现在有哪些任务、谁卡住了谁、哪些还没完成”。 在多步流程中,它相当于任务系统的总览面板。 关键源码 const allTasks = (await listTasks(taskListId)).filter( t => !t.metadata?._internal, ) 它还会过滤已解决阻塞项,让输出更贴近“当前可行动状态”。 调用链 加载图表中... 小结 TaskListTool 让 Claude Code 在复杂任务流里具备了“抬头…
2026年4月3日 · 阅读文章
它负责中断后台执行,不是删除任务记录 TaskStopTool 的目标很明确: 停止一个正在运行的后台任务。 这通常对应两类来源: BashTool 启动的后台 shell AgentTool 启动的后台 agent 关键源码 const result = await stopTask(id, { getAppState, setAppState, }) 在此之前它会先校验: 任务存在 任务当前确实是 running 调用链 加载图表中... 小结 TaskStopTool 给 Claude Code 的后台执行链…