AI Agent 别只返回“已完成”:用五字段验收契约定义任务终点

在 Agent 系统里,最危险的状态不一定是报错,而是"看起来完成了"。

模型说"已整理资料、生成文档并通知相关人员",但文档在哪里?数据来自哪一次查询?通知是草稿还是已经发送?有没有跳过无法登录的系统?如果这些问题还要靠人继续追问,任务就没有真正进入可验收状态。

一个更稳妥的做法,是在任务开始前定义验收契约,在任务结束时强制生成完成回执。它不替代日志,而是把分散在日志、文件和工具返回值里的关键信息压缩成一个稳定接口。

"完成"需要五个字段

json 复制代码
{
  "task_id": "content-20260911-1830",
  "status": "needs_review",
  "deliverables": [],
  "evidence": [],
  "risks": [],
  "next_actions": []
}

1. deliverables:交付物

这里记录最终产物,而不是执行动作。比如"生成文章"不是交付物,"article.md,SHA-256 为......,共 1872 字"才是。

每个交付物至少要有类型、位置、版本和摘要。文件被覆盖、页面仍是草稿、数据库只写入了一部分,都应在这里显式体现。

2. evidence:证据

证据回答"为什么相信它完成了"。它可以是测试报告、工具返回的对象 ID、截图、校验和、查询时间或审批记录。

日志不能直接等同于证据。日志通常描述"尝试过什么",而验收证据需要证明"结果现在是什么"。例如上传动作返回 200,只能证明请求成功;若要证明目标文件可用,还需要读取元数据或校验文件哈希。

3. status:状态

建议至少区分三态:

  • completed:所有自动验收条件通过,不再需要人工动作。
  • needs_review:产物已准备好,但发布、付款、发送等外部影响操作等待人工确认。
  • blocked:关键依赖缺失,继续运行不会自动解除。

这三个状态不能混用。尤其不要把"草稿已预填"写成"文章已发布",也不要把"等待验证码"写成"任务失败"。

4. risks:风险与缺口

风险字段要短、具体、可行动。比如"标签未匹配,候选集为空",优于"平台可能有问题";"数据采样时间为 18:30,阅读量缺失",优于"数据不完整"。

风险不应藏在长篇总结的最后一段。它必须是结构化字段,才能被监控系统、任务看板或下一位 Agent 消费。

5. next_actions:下一步

下一步用于说明谁在什么条件下做什么。一个合格动作通常包含 owneractioncondition

json 复制代码
{
  "owner": "human",
  "action": "核对标签与分类后手动发布",
  "condition": "编辑页字段完整且预览无误"
}

这样,Agent 的结束就不是把责任抛回聊天框,而是完成一次明确交接。

把验收契约放进状态机

任务状态机可以简化为:

running -> validating -> completed | needs_review | blocked

关键在 validating。Agent 在这一阶段不继续扩张任务,而是逐项检查:交付物是否存在、证据是否能定位、外部动作是否越过确认边界、风险是否会影响结论、下一步是否有明确责任人。

对于可重复执行的任务,还应加入幂等键。相同 task_id 已存在有效交付物时,系统应继续补齐或校验,而不是重新创建一份难以区分的新草稿。

四个常见反模式

第一,把过程当结果。"调用了写作工具"不代表文章已生成,"打开编辑器"不代表字段已预填。

第二,把一句自然语言总结当状态。长文本对人友好,却很难被调度器可靠判断。

第三,只报告成功,不报告缺失。越是自动化程度高,越需要把未验证项列出来。

第四,验收规则在任务结束后才临时决定。更好的顺序是先写验收条件,再执行,再用同一条件收尾。

最小落地清单

如果只做第一版,可以从六件事开始:固定任务号;保存交付物位置;为每个关键结论绑定证据;使用三态状态;列出风险与缺失;把外部影响动作统一放入人工确认门。

AI 员工真正进入团队工作流,不是因为它能连续输出更多文字,而是因为它能把工作交到一个可检查、可继续、可追责的位置。Tipkay 在部分内容岗位中也采用"预填后由用户确认"的边界;无论使用哪种 Agent,验收契约都应由任务本身定义,而不是依赖一句"相信我,已经完成"。

相关推荐
冬奇Lab2 小时前
一天一个开源项目(第215篇):Langflow - 可视化拖拽构建 AI 应用的低代码平台
人工智能·开源·资讯
loser.with.m2 小时前
【AgentScope 2.0】05-从数据库配置到可运行 Agent:十个 Builder 开关怎么把一行 JSON 变成 HarnessAgent
人工智能·spring boot·ai
2601_949499942 小时前
DT‑1414PTZ如何百分百兼容(安华高)HFBR‑1414PTZ
运维·网络·人工智能·科技·光模块
百胜软件@百胜软件2 小时前
胜券AI的Skills可插拔技能包,让零售AI从“泛”到“专”
大数据·人工智能·零售
瓶 盖2 小时前
AI 味为什么改词改不掉?把 61,608 篇小说拆开之后
人工智能
行走的领路人2 小时前
FlyEnv 本地开发环境与 AI 协同能力深度评测
人工智能
汇智信科2 小时前
基于 Jmis 框架的制度与流程管控系统设计与应用|项目全生命周期管理
大数据·人工智能·微服务·云原生·汇智信科
王红臣同学2 小时前
在 Windows 上复现 Microduck 机器鸭仿真
人工智能·ai
AI人工智能集结号2 小时前
AI推荐优化服务有哪些?不同服务类型适合什么需求?
人工智能