Agent Harness:一次 run 的生命周期与等待恢复

Agent Harness:一次 run 的生命周期与等待恢复 由 Archify 生成的时序图。 run(request) ① claim → 租约+fencingToken ② open(ctx, budget, prevState) ③ 创建 session(注入 prevState) ④ run(request) → Agent ReAct AdapterExecution+snapshot() ⑤ 等待→ensureWait / 终态→persistOutcome deliver(waitId,input) / resume(execId) ⑥ applyDelivery(state,wait,input) ⑦ answer+wakeup 原子落库 → READY 宿主调用方 · run/deliver/resume · 时序参与者 宿主调用方 run/deliver/resume AgentHarness · 持久化外循环 · 时序参与者 AgentHarness 持久化外循环 命令网关 · 唯一写面→Store · 时序参与者 命令网关 唯一写面→Store 执行适配器 · open/applyDelivery · 时序参与者 执行适配器 open/applyDelivery 适配会话 · 包住真实 Agent · 时序参与者 适配会话 包住真实 Agent 图例 请求 异步追踪 默认消息

租约与 UNKNOWN

  • • claim 拿租约+fencingToken 后心跳续约;持久化失败且租约仍在 → 尝试标 UNKNOWN 待对账,否则返回库中现状
  • • InterruptedException → UNKNOWN(不当作普通 FAILED);幂等键 idempotencyKey 防重复 execution

六种 WaitType

  • • TIME / EXTERNAL_EVENT / ASYNC_OPERATION / APPROVAL / USER_INPUT / RETRY;adapter 返回 waitId 或抛 HostInput/ApprovalRequired 异常 → WaitRecord+WAITING
  • • WAITING 不能直接 resume:必须先 deliver/wakeup 落库转 READY;applyDelivery 决定值替换 pendingState 还是作下轮 input

切片间状态接力

  • • snapshot() 导出 adapterState;checkpointState+sessionSnapshot 随 outcome 落库;下个 open 拿到 prevState 原地续跑
  • • repair(parentExecutionId):父执行须终态 → 生成子 execution 自动挂 lineage;evaluateAcceptance 走 AcceptanceCoordinator