TaskStopTool:停止任务
发表于|更新于|Claude Code
|浏览量:
TaskStopTool:停止任务
它负责中断后台执行,不是删除任务记录
TaskStopTool 的目标很明确:
停止一个正在运行的后台任务。
这通常对应两类来源:
BashTool启动的后台 shellAgentTool启动的后台 agent
关键源码
1 | const result = await stopTask(id, { |
在此之前它会先校验:
- 任务存在
- 任务当前确实是
running
调用链
小结
TaskStopTool 给 Claude Code 的后台执行链补上了“中断”能力,这是正式任务系统不可缺的一环。
文章作者: xhj
文章链接: https://hzhzxfs.github.io/2026/07/10/33__TaskStopTool%EF%BC%9A%E5%81%9C%E6%AD%A2%E4%BB%BB%E5%8A%A1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2026-07-11
TaskOutputTool:读取任务输出
TaskOutputTool:读取任务输出它把后台任务输出统一成同一种可读结果TaskOutputTool 用来读取后台任务的输出。它最重要的价值是统一: shell 任务输出 本地 agent 输出 远程 agent 输出 所以主线程不需要关心底层任务类型差异,只要关心统一返回结构。 关键源码输入定义: 12345const inputSchema = z.strictObject({ task_id: z.string(), block: z.boolean().default(true), timeout: z.number().min(0).max(600000).default(30000),}) 统一输出对象: 1234567type TaskOutput = { task_id: string; task_type: TaskType; status: string; description: string; output: string;} 它还有一个很有意思的现状源码 prompt 明写了: DE...
2026-05-14
14-任务系统
第 14 篇:任务系统 — Agent 的并发执行引擎 本篇是《深入 Claude Code 源码》系列的第 14 篇。我们将深入分析 Claude Code 如何通过一套统一的任务系统,管理从后台 Shell 命令到多 Agent 并行协作的所有异步工作。 为什么需要任务系统?在前几篇中,我们已经见过了 Agent 系统(第 12 篇)和内置 Agent 设计模式(第 13 篇)。但有一个关键问题尚未解决:当模型同时发起多个 Agent、多个后台 Shell 命令、甚至一个”做梦”式的记忆整理任务时,这些并发工作如何被统一管理? 想象一个真实场景:Coordinator 模式下,主 Agent 同时派出 3 个 Worker 去研究代码库的不同部分,每个 Worker 又可能启动自己的后台 Shell 命令。此时系统需要: 追踪所有任务的生命周期(pending → running → completed/failed/killed) 安全地终止任务(包括清理子进程、释放文件句柄) 收集并转发任务输出(任务完成时通知主 Agent) 隔离任务状态(一个任...
2026-06-25
WebFetchTool:抓取网页
WebFetchTool:抓取网页这个工具到底做什么WebFetchTool 负责抓取一个已经知道 URL 的网页 ,把网页内容转成 Claude Code 更容易处理的文本,再根据传入的 prompt 提炼结果。 它和 WebSearchTool 的分工非常明确: WebSearchTool:帮模型去网上找结果 WebFetchTool:拿着确定的 URL 去读具体页面 所以你可以把它理解成: Claude Code 的“网页阅读器 + 小模型摘要器” 而不是“联网搜索工具”。 它的输入为什么只有两个字段tools/WebFetchTool/WebFetchTool.ts: 1234const inputSchema = z.strictObject({ url: z.string().url().describe('The URL to fetch content from'), prompt: z.string().describe('The prompt to run on the fetched content...
2026-04-05
channels
使用 channels 将事件推送到运行中的会话 使用 channels 从 MCP 服务器将消息、警报和 webhooks 推送到您的 Claude Code 会话中。转发 CI 结果、聊天消息和监控事件,以便 Claude 在您离开时做出反应。 Channels 处于[研究预览](#research-preview)阶段,需要 Claude Code v2.1.80 或更高版本。它们需要通过 claude.ai 或控制台 API 密钥进行 Anthropic 身份验证,在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。Team 和 Enterprise 组织必须[明确启用它们](#enterprise-controls)。 Channel 是一个 MCP 服务器,它将事件推送到您运行中的 Claude Code 会话中,以便 Claude 可以对您不在终端时发生的事情做出反应。Channels 可以是双向的:Claude 读取事件并通过同一 channel 回复,就像聊天桥接一样。事件仅在会话打开...
2026-06-23
GrepTool:搜索内容
GrepTool:搜索内容它是 Claude Code 最常用的“找线索”工具之一GrepTool 负责在文件内容里搜索文本或正则模式。在真实使用里,它常常是 Claude Code 排查问题、理解代码和定位实现的第一步。 如果你把 Claude Code 的常见动作拆开看,会发现很多轮对话其实都是: 先 Grep 再 Read 再判断要不要 Edit 所以 GrepTool 本质上是主循环里的“线索发现器”。 看它的 schema,就知道它不是简单字符串搜索tools/GrepTool/GrepTool.ts: 123456789101112131415const inputSchema = z.strictObject({ pattern: z.string(), path: z.string().optional(), glob: z.string().optional(), output_mode: z.enum(['content', 'files_with_matches', 'count...
2026-03-12
scheduled-tasks
按计划运行提示词 使用 /loop 和 cron 调度工具在 Claude Code 会话中重复运行提示词、轮询状态或设置一次性提醒。 计划任务需要 Claude Code v2.1.72 或更高版本。使用 `claude --version` 检查您的版本。 计划任务让 Claude 按间隔自动重新运行提示词。使用它们来轮询部署、监督 PR、检查长时间运行的构建,或在会话中稍后提醒自己做某事。要对事件进行实时反应而不是轮询,请参阅 Channels:您的 CI 可以直接将失败推送到会话中。要保持会话工作转向转向直到满足条件而不是按间隔,请参阅 /goal。 任务是会话范围的:它们存在于当前对话中,当您启动新对话时就会停止。使用 --resume 或 --continue 恢复会带回任何尚未过期的任务:在过去 7 天内创建的重复任务,或计划时间尚未到达的一次性任务。对于独立于任何会话而存在的调度,请使用 Routines 在 Anthropic 管理的基础设施上创建例程、设置 Desktop 计划任务,或使用 GitHub Actions。 比较调度选项Cl...