核心 GUIDE

PATTERNINTERMEDIATE7 分钟阅读

Interrupt / Cancel Long-running Agent

Long-running Agent 必须有显式 Interrupt 与 Cancellation Semantic,才能让 User/Operator 安全停止任务,区分“已请求停止”与“已经停止”,并在不破坏 Side Effect 的前提下恢复。

核心心智模型

Cancellation 是 State Transition,不只是 UI Button。Runtime 必须把请求传播到 Active Work,判断哪些 Operation 可取消,处理或补偿 In-flight Side Effect,持久化 Terminal/Resumable Checkpoint,并报告最终状态。

为什么重要

运行数分钟甚至数小时的 Agent 必然会遇到 User Intent 改变、Dependency 变化与 Deployment Window 结束。如果没有明确 Cancellation,所谓“Stop”可能只是 UI 消失,Tool 仍在后台执行。显式 Semantic 可以避免 Orphaned Work、重复 Recovery,以及高后果 Action 到底有没有完成的不确定性。

01

把 Cancellation 建模为 Cooperative Runtime Control

分别表示 Cancel-requested、Cancelling 与 Cancelled State。向可取消 Work 传播 Cancellation Token 或等价 Signal,在 Irreversible Operation 前后定义 Safe Point,并让不可取消 Side Effect 具备 Idempotency 或 Compensation。持久化足够 State,以便 Resume 或解释停止前完成了什么;Dependency 不响应时,Cancellation 本身也要有 Timeout。

02

示例:外部 Payment Call 期间收到 Stop Request

Agent 正在等待 Payment Provider 时 User 点击 Cancel。Runtime 记录 Cancel-requested,但不会假设 Payment 已停止。它等待 Provider Result,用 Idempotency Key 对账,然后要么记录 Payment 已发生并结束 Workflow,要么确认没有 Side Effect 后再进入 Cancelled State。

常见失败模式

  • 把 UI 消失当成 Background Work 已停止的证明。
  • 在 Irreversible Action 中途取消,却不做 Reconciliation。
  • Cancellation 时丢弃 State,导致 Operator 无法判断哪些步骤已完成。

工程启发

  • 让 Cancellation State 可观察、可持久化。
  • 围绕 Irreversible Side Effect 定义 Safe Point 与 Reconciliation。
  • Long-running Work 的 Cancel 与 Resume Semantic 应一起设计。

关键结论

  1. 01Cancellation 是 User Intent 与 Runtime State 之间的 Protocol。
  2. 02Stop Requested 与 Stopped 是不同 State。
  3. 03Irreversible Work 必须完成 Reconciliation 后,才能宣称 Cancellation 完成。

阅读记录

未打开Practice 尚未完成

这里只记录你真实做过的动作,不代表掌握、熟练或认证。

用于这些学习路径

这个 Concept 会在多个 canonical 学习路径中复用。

继续学习

来自 Knowledge Graph 的相关知识点

这些关系直接来自 canonical graph,不维护第二套 Guide 分类体系。