核心 GUIDE

SYSTEM_COMPONENTADVANCED7 分钟阅读

Asynchronous Long-running Work

超过一次请求生命周期的任务需要显式 Job Identity、Durable State、Cancel 与 Result Retrieval;把 HTTP 或模型连接一直保持打开并不是长任务架构。

核心心智模型

Long-running Work 应被建模成围绕 Durable Job 的 State Machine,而不是“特别长的同步请求”。Caller 提交任务、观察 Progress、可以安全取消或重试,并在之后读取经过验证的 Result。

为什么重要

Agent 任务越来越可能持续数十分钟甚至数小时,包含 Research、Tool Execution、Approval 与 Retry。如果生命周期绑定在一个 Connection 上,部署、网络中断或用户离开页面都会变成状态丢失或重复执行。Asynchronous Contract 能让 Ownership、Progress 与 Recovery 变得可观察。

01

拆开 Submission、Execution 与 Observation

提交时先创建 Durable Job ID,保存请求操作和 Idempotency Key,再让 Queue/Scheduler 独立执行。Worker 按边界写 Checkpoint,发布粗粒度 Status,并只在定义好的安全点响应 Cancel。Result Retrieval 应明确区分 Terminal Success、Terminal Failure、Cancelled 与 Still Running。

02

示例:仓库迁移运行四十分钟

Coding Agent 迁移大型 Monorepo 时,UI 立即得到 Job ID,而不是维持一个无限延长的 Streaming Request。Worker 每完成一组 Dependency 就更新 Checkpoint;部署不会抹掉 Progress;用户可在最终写入前取消。之后重新连接时读取的是同一个 Durable Job,而不是新建一次迁移。

常见失败模式

  • 把超长 Timeout 当成 Durable Job State 的替代品。
  • Client 一重连就创建重复任务。
  • UI 提供 Cancel 按钮,但 Worker 没有定义安全取消点。

工程启发

  • 每个 Long-running Operation 都要有 Durable Job Identity。
  • 在 Protocol Boundary 明确定义 Retry、Resume 与 Cancel 语义。
  • Progress 应来自可验证 State,而不是模型猜测式 Narration。

关键结论

  1. 01长任务需要 Job Protocol。
  2. 02Connection Lifetime 与 Task Lifetime 应相互独立。
  3. 03Durable State 让 Recovery、Cancellation 与 Deduplication 成为可能。

阅读记录

未打开Practice 尚未完成

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

用于这些学习路径

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

来自 Knowledge Graph 的相关知识点

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

Checkpoint、可恢复状态与 RecoveryENABLESGuide
Interrupt 与 Cancellation 语义ENABLES