Skip to content

[P2B][T23] 定义持久化审批与幂等 resume 的 HITL 集成契约 #130

Open

Description

@Aias00

目标

审批与恢复不依赖等待线程,批准的内容必须与实际执行计划及当前权限一致。

优先级与归属

范围与落地方案

  • 在既有 HumanInTheLoopHook/interrupt/resume 上增加可选 durable adapter。
  • 审批 ticket 关联 run/task/definition/argument hash、approver policy、expiry、resolution/revision。
  • 定义授权 CAS resolve、唯一 resume operation、当前权限复核及 WAITING_APPROVAL session reservation。

前置依赖

间接或集成依赖(不单独阻塞)

验收条件

  • 重复 approve/resume 只接受一个决议和一次有效恢复,冲突决议被拒绝。
  • 过期/错误 approver/参数变化/权限撤销的审批不 dispatch 工具。
  • 等待释放物理 Worker 但同 session 后续 run 不推进 checkpoint。
  • 基于参考存储的 hook 回归与旧 resume DTO/默认语义保持兼容。

非目标

兼容与验证约束

  • Java 17;新增路径显式启用,保留既有 API、默认行为、checkpoint/Store 格式及配置前缀。
  • Core 不引入 Redis/Extensions 依赖;存储实现归 Extensions,应用接线归可选运行层。
  • 首阶段无 MQ、整 Run Worker,不做节点分片,不承诺通用 exactly-once 或 Redis HA RPO0。
  • 先用模型无关单测/reference 验证本任务,再按范围运行现有 API/格式门禁;涉及 Redis 用真实存储测试,涉及接管用独立 JVM。

当前实现依据

分析基线:Core 6324f53、Extensions ed07835;AgentScope 参考 c95eb1f。本 Issue 是待完成任务,不代表能力已经实现。

审批策略与渠道插件化补充

  • 何时审批、审批人选择及通知渠道作为可配置策略/适配器接入生命周期准入门;持久 ticket、身份、幂等决议和恢复机制保留在公共契约,不整体下放普通插件。
  • 插件转换执行参数后,审批绑定最终参数/版本;恢复时重新检查权限及批准内容。卸载规则或通知渠道不得自动将等待审批改为允许。
  • 插件异常/超时与等待审批分开诊断,实际通知后端归可选适配侧,不新增第二套审批系统。

Activity

  1. added theissue type on Oct 8, 2026
  2. yuuuzzh commented on Oct 20, 2026

    @yuuuzzh
    Contributor

    @Aias00 lao,I want to claim this task.

  3. Aias00 commented on Oct 20, 2026

    @Aias00
    ContributorAuthor

    11. @Aias00 lao,I want to claim this task.

    this issue is being blocked by #125

  4. yuuuzzh commented on Oct 20, 2026

    @yuuuzzh
    Contributor

    ok, it seems someone has already taken care of the task that’s stuck; I’ll wait until he finish it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestpriority/important-longterm长期重要:需持续规划、可能跨多个版本完成

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions