AgoraIO-Extensions / AgoraIO-Extensions/agent-infra

feat(platform): deliver durable Agent task API and dispatch

未關閉
#482 1 則留言 0 個 reaction 已指派 1 人 已被 @LichKing-2234 認領 在 GitHub 檢視
needs-triage
主要語言
TypeScript
星號
0
分支
0
平均合併
8 小時 51 分鐘
30 天內合併 PR
99

描述

本票由 [M1 交付汇合](https://github.com/AgoraIO-Extensions/agent-infra/issues/150) 已确认的新增范围建立,当前为 `needs-triage` 的实施契约候选,不进入既有冻结执行 snapshot。主责:LichKing-2234;执行方式、资源窗口与 Start/Target 尚未确定。开始实现前须完成候选权威文档的跨系统对齐、适用评审与合入,回读全部原生依赖,并在本票确认执行准入。文档票关闭不单独授予执行权限。

## Problem

现有 Web 消息投递不提供 API 持久后台任务的受理、等待、查询/订阅、取消与恢复闭环。本票复用原 Conversation/Execution/outbox/RuntimeHost,补齐用户和应用任务路径。

## Scope

- 实现任务提交、状态/已有输出/最终结果查询、SSE 订阅和取消;API task 直接对应原 Execution,默认新建本主体会话,显式续接须匹配主体、Agent 和渠道。复用管理 API 的身份/凭证及授权事实。
- 在 Platform DB 原子受理输入/模型选择引用、稳定幂等绑定、等待顺序/期限、任务、工作项及必要审计。先查询原幂等绑定;命中同请求只返回原 Conversation/Execution,未命中才进入新建会话与任务的事务;等待容量满在受理前拒绝,不产生孤立会话或任务。
- Dispatch 原子占用同会话执行位置与已验证 Agent 容量;启动/更新中允许有界等待,停止/停用/故障拒绝。等待任务不创建原生 Turn,顺序/期限在重启后保留;等待超时不得终结可能已投递但结果未知的操作。
- 取消、认领、投递、超时和撤权共用锁/条件更新边界;凭证失效终止其访问和流但不取消原任务,同主体新凭证可继续访问;主体或 Agent 使用权撤销取消等待/活跃任务并阻止后续受控操作。沿原操作、Session、fence 与 barrier 收敛,未确认停止不释放会话。
- 发布公共任务 HTTP/SSE 与 Platform 来源状态事件契约,复用现有 RuntimeHost 请求和恢复语义;若需最小公共接口增量,Schema/Client/Store/Worker/Host 消费方原子交付。本票不另建 Driver 队列,也不重复定义实际模型/工具事实 Schema。
- 保持 Web 补充指令/繁忙与重新生成语义,新 Turn 不越过已受理任务;实际模型/工具展示与遥测消费沿原时间线/遥测入口交接。自定义 Agent 只按验证能力开放任务,self-managed 管理 API 可用不表示兼容任务。
- 不新增资源池、优先级、cron、多 Agent 编排、调用方逐任务执行时限或新的消息基础设施;不运行联合 Connection Pilot。

## Acceptance criteria

- [ ] **AC-1:** 用户/应用可通过正式 API 提交任务并获得稳定 Execution,查询已有输出、终态和受控结果,SSE 断线重连可恢复,取消返回可解释状态;受理响应只在任务/工作项/必要审计可靠保存后返回。
- [ ] **AC-2:** 默认新会话与显式续接的幂等均稳定;跨主体/Agent/渠道续接、同键不同请求和并发重复提交被正确处理,不产生重复会话、任务或 Turn。
- [ ] **AC-3:** 同会话串行、跨会话经验证容量、有界等待、满容量拒绝、启动/更新等待和停止/停用/故障拒绝均可验证;重启保留顺序/期限,Web 补充指令保持且新 Turn 不插队。
- [ ] **AC-4:** 等待取消与投递竞态、运行取消与自然完成、旧 Worker 迟到调用、租约接管和恢复均沿原 Session/operation/fence 收敛;unknown 占住受影响会话,不换 ID/Session 盲重投或掩盖副作用。
- [ ] **AC-5:** 凭证到期/撤销只关闭其访问与流,已受理任务继续且同主体新凭证可访问;主体禁用/Agent 使用权撤销系统取消并阻止后续操作,Owner/责任人不能查看、订阅或取消他人任务。
- [ ] **AC-6:** 规范化状态、事件、游标与必要审计一致,重放不重复计数,查询失败不伪装空结果;普通/Eval 正文、附件、思考和凭证不进入遥测或审计。
- [ ] **AC-7:** 真实 API/Store/Worker/RuntimeHost 与至少一个已验证标准 Driver 完成完整任务闭环及故障矩阵;共享契约对四模板的适用性有 conformance 消费测试,模板核心/隔离及四模板整装仍按各原入口与汇合验收提供实证。

## Validation

- 对照 PRD §§7.3、10.4、13–14,工程 Spec §§11–12、16、18–19 及 Runtime HLD §§7–9/11。
- 真实 PostgreSQL/Worker/RuntimeHost 下执行重试、重启、SSE 慢消费/撤权、等待与取消竞态、投递前后崩溃、接受结果 unknown 和代次屏障;核对持久任务/事件/审计与实际原生执行,不能只看 HTTP 200 或口头停止。
- 用正式用户/应用凭证验证资源 ID 替换、Owner/责任人越权、流重连隔离、凭证失效与主体撤权差异;运行 Web 既有控制回归、契约兼容、完整仓库验证与当前提交双轴评审。

## Blocked by

- #481
- #479

## Authority

- 产品输入:[平台 PRD 候选](https://github.com/AgoraIO-Extensions/agent-infra/blob/2eb2762b889a27372c259039d27279cf646c5b1e/docs/prd/PRD-agent-platform-M1.md)。
- 工程输入:[工程 Spec 候选](https://github.com/AgoraIO-Extensions/agent-infra/blob/7f3b2083d44191ab4b280d7eb8222d7785937b8e/docs/architecture/SPEC-agent-infra-M1-engineering-architecture.md)、[Runtime HLD 候选](https://github.com/AgoraIO-Extensions/agent-infra/blob/5da6fff274ffc7a7ee36ae3ebd61d6100ccc9571/docs/architecture/HLD-agent-runtime-M1.md)。
- 上述固定版本用于评审和追溯;实施前消费合入后的权威版本,差额在本票复核,不能用历史候选覆盖新结论。

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。