#4816·go-micro

流程:持久代理工作流程 - HITL 暂停 + 每个工具调用的检查点

作者: asim创建于 2026年7月12日更新于 2026年7月15日
标签enhancementneeds-human

上下文(来自于间隙审计 — 体系结构上的人为主导,不是用于自动合并)

flow/ 在确定性轴上非常接近(它会进行检查点并恢复,而不需要重新播放已完成的步骤),但还不是一流的持久性代理工作流 — Dapr-Agents 所带领的收敛部分,Mu 也必须手动编写(agent/flows.go)。有两个间隙使代理循环变得不持久:

  • 没有人在循环中的暂停flow/steps.go:107 没有 waiting 状态;需要外部输入的步骤必须阻塞进程或失败。没有 Resume(runID, injectedInput)
  • 代理的动态循环对检查点是不透明的flow/steps.go:269 (Dispatch)/flow.go:306 (callAgent): 一个 Agent.Chat 轮回是一个流步骤,因此在回转中崩溃时,每次工具调用都会重新播放。持久性单元是一个固定的步骤列表,而不是代理的可暂停的每次工具调用循环。
  • 次要:flow/loop.go:82 Loop 没有按迭代进行检查点;steps.go:457 至少一次(重复副作用在恢复时)不是一次性;:158 没有多副本的运行租赁。