<!-- ARGI-ENT-20261008:T23 --> ## 目标 审批与恢复不依赖等待线程,批准的内容必须与实际执行计划及当前权限一致。 ## 优先级与归属 - 优先级:P2B;任务标识:T23。 - 责任仓库:`agentic-ai-java/argi`。 - 总览:https://github.com/agentic-ai-java/argi/issues/117。 - 这是单一交付任务;以中立接口/reference tests 隔离依赖,可单独提交评审。 ## 范围与落地方案 - 在既有 HumanInTheLoopHook/interrupt/resume 上增加可选 durable adapter。 - 审批 ticket 关联 run/task/definition/argument hash、approver policy、expiry、resolution/revision。 - 定义授权 CAS resolve、唯一 resume operation、当前权限复核及 WAITING_APPROVAL session reservation。 ## 前置依赖 - https://github.com/agentic-ai-java/argi/issues/120 (T03) - https://github.com/agentic-ai-java/argi/issues/125 (T14) ## 间接或集成依赖(不单独阻塞) - https://github.com/agentic-ai-java/argi/issues/124 (T10) - https://github.com/agentic-ai-java/argi/issues/126 (T15) - https://github.com/agentic-ai-java/argi/issues/127 (T17) - durable runner、receipt 与预算是后续运行时接线和验收场景,不阻塞 approval ticket/resume 契约。 ## 验收条件 - [ ] 重复 approve/resume 只接受一个决议和一次有效恢复,冲突决议被拒绝。 - [ ] 过期/错误 approver/参数变化/权限撤销的审批不 dispatch 工具。 - [ ] 等待释放物理 Worker 但同 session 后续 run 不推进 checkpoint。 - [ ] 基于参考存储的 hook 回归与旧 resume DTO/默认语义保持兼容。 ## 非目标 - 不把已有扩展性问题 #37 当本任务的完整需求;关联 https://github.com/agentic-ai-java/argi/issues/37,但不替代或关闭该问题。 - 不实现审批 UI 或 Redis ticket 存储。 ## 兼容与验证约束 - Java 17;新增路径显式启用,保留既有 API、默认行为、checkpoint/Store 格式及配置前缀。 - Core 不引入 Redis/Extensions 依赖;存储实现归 Extensions,应用接线归可选运行层。 - 首阶段无 MQ、整 Run Worker,不做节点分片,不承诺通用 exactly-once 或 Redis HA RPO0。 - 先用模型无关单测/reference 验证本任务,再按范围运行现有 API/格式门禁;涉及 Redis 用真实存储测试,涉及接管用独立 JVM。 ## 当前实现依据 - [HITL hook](https://github.com/agentic-ai-java/argi/blob/6324f53d7b6337cc9238a8cc5314dfef75f3548b/argi-agent-framework/src/main/java/io/github/agentic/ai/graph/agent/hook/hip/HumanInTheLoopHook.java). - [Versioned saver](https://github.com/agentic-ai-java/argi/blob/6324f53d7b6337cc9238a8cc5314dfef75f3548b/argi-graph-core/src/main/java/io/github/agentic/ai/graph/checkpoint/VersionedCheckpointSaver.java#L20), [Leased saver](https://github.com/agentic-ai-java/argi/blob/6324f53d7b6337cc9238a8cc5314dfef75f3548b/argi-graph-core/src/main/java/io/github/agentic/ai/graph/checkpoint/LeasedCheckpointSaver.java#L28), [Lease scope](https://github.com/agentic-ai-java/argi/blob/6324f53d7b6337cc9238a8cc5314dfef75f3548b/argi-graph-core/src/main/java/io/github/agentic/ai/graph/checkpoint/lease/ExecutionLeaseScope.java#L100). 分析基线:Core `6324f53`、Extensions `ed07835`;AgentScope 参考 `c95eb1f`。本 Issue 是待完成任务,不代表能力已经实现。
Activity