AI Agent 如何判断任务完成?WorkGraph 的提交、验收与失败恢复

AI Agent 说完成以后为什么还要验收?本文解释 WorkGraph 的 Submission、Review、Acceptance、返工、阻塞和未知状态恢复。

本文内容

AI Agent 交付验收循环:Submission、Review、Acceptance 与返工路径

图 1:一份结果需要经过提交、评审和验收,才能成为下游可以依赖的交付。图中为机制示意。

AI Agent 说“完成”以后,任务真的完成了吗?在短对话里,用户可能直接查看结果;在多 Agent、跨轮次的长任务里,这个判断需要一条可检查的证据链。

Nexus 把交付拆成 Submission、Review 和 Acceptance 三个阶段。它们分别回答:交了什么,谁检查了,结果是否被接受。这样可以把“运行过一次”“产生了结果”和“交付成立”区分开。

Submission:把结果交出来

Agent 完成一次 Attempt 后,可以提交一份结果。Submission 可以关联代码变更和文件,也可以关联测试记录、数据或说明,但它必须属于明确的 Work Item 和 Attempt。

提交把结果变成其他人可以检查的对象,尚不代表结果获得认可。提交后,原来的 Attempt 可以结束,但 Work Item 仍然可能处于等待评审的状态。

Review:检查交付是否满足要求

Review 需要知道检查的对象和标准。比如 CSV 导出交付至少需要检查:

  • 角色没有权限时不能导出;
  • 选中记录、字段和顺序正确;
  • 大数据量处理不会让界面失去响应;
  • 中文在目标软件中能正常打开;
  • 空数据、取消和失败路径有明确反馈;
  • 审计记录能关联到正确的用户和导出操作。

Reviewer 可以是负责人、独立 Agent 或人工参与者,但它需要有明确的 ReviewBinding,也就是“由谁、按哪项责任、检查哪份提交”的绑定记录。读过同一份 Skill 或看见同一条聊天消息,不等于完成了独立 Review。

一份可验收的 Submission 应该包含什么?

Submission 是让 Reviewer 能够复现判断的交付候选,仅说一句“已经改好了”还不够。不同工作项的字段会不同,但至少要能把结果和责任、执行、完成条件连起来。

证据说明CSV 导出中的例子
交付范围这份结果解决了哪项责任服务端导出接口与权限校验
变更对象Reviewer 应该检查什么代码变更、接口契约和审计写入
验证记录运行了哪些检查,结果怎样权限、十万条数据、空数据测试
已知限制哪些环境还没有覆盖尚未确认目标表格软件版本
归属引用结果属于哪个 Attempt 和 Work Item服务端 Work Item 的第二次 Attempt

这些信息不要求 Agent 预先知道所有答案。明确写出“尚未覆盖”比制造一个看似完整的通过结论更有用:Reviewer 可以据此提出 changes requested 或 blocker,Goal continuation 也能知道下一轮应该补什么。

Acceptance:决定下游能否继续

Review 结束后,系统记录 Acceptance。只有对应 Submission 被接受,依赖它的下游 Work Item 才能解锁。

当前状态代表什么下游能否使用
Attempt succeeded这次执行没有失败不能直接使用
Submission created有结果可以检查仍需评审
changes requested结果需要返工不能使用旧结果替代
Acceptance accepted这份交付被明确接受可以按依赖继续
unknown外部状态尚未确认必须先对账

这条规则会让工作图看起来比待办列表严格,但它解决了长任务里最容易出错的地方:下游不再把一个 Agent 的局部成功误认为整个系统已经具备前置条件。

Acceptance 也不是对业务质量的无限担保。它确认的是:在当前范围、当前标准和当前证据下,这份 Submission 被相应的 Reviewer 接受。目标环境后来变化,或者新的完成条件加入,旧 Acceptance 仍然可以保留,但 Goal 需要重新判断它是否覆盖当前目标。

失败、返工和重新规划有什么区别?

返工:责任没变

例如中文兼容验证发现乱码。原来的 Work Item 仍然是“验证中文兼容”,依赖关系没有改变。系统保留第一份 Submission 和退回意见,负责人创建新的 Attempt,修正后再提交。

重新规划:责任结构变了

如果发布前新增独立安全复核,原计划没有这项责任,就需要新的 Plan revision。新版本增加安全复核 Work Item,并规定发布验收要等待它。

阻塞:条件还不具备

如果用户没有说明目标软件,Agent 无法完成兼容性验收。此时应记录 blocker 和所需输入,等待用户补充,而不是反复执行同一套测试。

未知:外部结果还没有确认

外部系统超时并不代表操作一定失败。请求可能已经生效,也可能没有生效。系统需要使用 request identity 或接收端查询进行 reconciliation,在确认之前保留 unknown 状态,不能为了“继续推进”而自动重复一个可能有副作用的动作。

完成审计为什么还要回到 Goal?

即使所有 Work Item 都通过 Acceptance,Goal 仍然需要检查最终要求是否完整。例如计划包含了接口、客户端和兼容性验证,却没有包含“审计记录可追溯”。工作图可以完成,Goal 仍然没有闭合。

完成审计至少要重新读取:

  1. 当前 Goal objective 和 completion criteria;
  2. 已确认的 Goal/Execution binding;
  3. 当前 Plan revision 和必需 Work Item;
  4. 每个关键交付对应的 Acceptance;
  5. blocker、unknown、预算和终止条件。

工作图证明责任已经收口,Goal 证明最终目标没有被局部结果替代。

这套验收机制带来的实际变化

它让系统可以在断连、重启、换负责人和多 Agent 协作后继续判断:

  • 哪项责任还没有提交;
  • 哪份提交正在等待评审;
  • 哪份结果被退回,应该从哪里返工;
  • 哪些下游依赖已经解锁;
  • 哪个外部动作还处于未知状态;
  • Goal 是否具备最终结束的证据。

如果想先了解整条责任链,可以阅读Graph Engineering 与动态工作图;如果想看完整案例,可以继续看从需求到发布的动态工作图案例。


本文描述 Nexus 的交付与恢复边界。Acceptance 是系统记录的交付结论,不自动证明业务内容在所有外部环境中都正确;真实环境仍需单独验证。