跳到正文
SGSteven Guan

原子概念 / Unknown Operation Outcome

结果未知与对账

工具调用超时后,外部动作可能已发生但尚未确认。

要解决的问题超时后不知道动作是否成功,下一步应做什么?

检索别名:结果未知 · Read-back对账

BLUEPRINT局部蓝图

01 输入

  1. 超时操作身份
  2. 已发送参数及批准
  3. 目标查询与回执接口
→

02 处理机制

  1. 标为unknown停止盲重放
  2. 读回目标业务状态
  3. 等待或人工对账
  4. 提交确认结果
→

03 输出与证据

  1. 确认成功或失败
  2. 未决对账项
  3. 安全恢复决定

工具调用超时后,外部动作可能已发生但尚未确认。

结果未知是一种需要独立处理的状态。超时或断网只能说明应用没有拿到确定回应,不能证明目标系统没有执行。对于写操作,把unknown直接改成failed并重试,可能造成重复发送、重复下单或相反方向的补偿。

操作账本先保存意图与稳定业务ID,调用后记录receipt。发生不确定性时,查询目标系统的操作状态、唯一业务标识或最终记录;必要时人工对账。查询也可能延迟可见,因此要明确等待、重查和截止规则,而不是立即认定不存在。平台应向用户说明正在确认效果,避免误导其手工再做一次。

只读操作通常可以在预算内重试,但仍需留意计费、资源消耗和查询时间边界。写操作需要更严格分类:未发送、已发送未确认、已确认成功、已确认失败。只有能证明未执行或具备幂等保障时,才允许自动重新提交。补偿是新的业务动作,可能失败,也不能伪装成真正回滚。

测试可以让目标系统完成工作后故意丢弃响应,再观察Agent是否先read-back。还要测试目标查询暂时空、回执延迟、重复回调和人工已介入等情况。完成标准是业务最终状态与本地记录能够对齐,不是所有Attempt都必须得到即时成功。此状态设计直接决定恢复和取消是否可信。

面向用户的恢复按钮也要基于状态。unknown时不直接提供“再发送”作为默认选择,而应先展示查询结果或需要确认的风险。若用户明确决定再次执行,记录新的授权及其与原操作的关联。这样既不阻止合法工作,也避免界面把不确定性转化成无意识重复。

对账过程也需要deadline和owner,长期unknown不能无人处理。达到查询上限后进入人工队列,保留已知事实和每次查询结果。

实践重点:进入unknown并读回业务状态或人工对账;禁止直接标失败重放。

验证抓手:模拟响应丢失,检验read-back和人工接管。

常见误区:以HTTP断连推断外部操作没发生。

Temporal:执行状态与外部副作用;OpenCode:流、工具和取消源码。

RELATIONSHIP MAP

与其他节点的关系

箭头从本节点指向目标;关系是工程分析映射,不代表厂商合作或已披露的内部实现。

哪些节点指向本页 · 3
  • 故障止损与恢复手册 — 依赖 → 结果未知与对账

    恢复未知副作用前先对账外部状态。

  • 错误分类与重试 — 依赖 → 结果未知与对账

    本节点的设计需要先明确结果未知与对账。

  • 取消语义 — 依赖 → 结果未知与对账

    本节点的设计需要先明确结果未知与对账。

PRIMARY SOURCES

来源与阅读边界

来源按研究截止日整理。官方文档说明能力和约束,代码只证明对应版本,论文与讲座不自动证明生产效果。 资料截止:2026-10-15。

  1. Temporal:执行状态与外部副作用 ↗官方文档 / 声明

    公开资料观察基线:2026-10-15。

  2. OpenCode:流、工具和取消源码 ↗公开代码

    观察基线:2026-10-15;固定源码与具体发行版本分别核验。