你的 agent 说「完成了」——怎样让这个词真正有意义
摘要
文章探讨了 AI agent 系统中「任务完成」信号不可靠的问题,并提出三层验证框架——回执、读回校验和独立检查——以证据驱动的方式定义何为真正的完成。
Agent 系统中最昂贵的一句话就是「任务已完成」。不是因为 agent 会撒谎——而是因为「done」通常只意味着「我没报错就停了」,这和「你想要的事情真的发生了」完全是两回事。社区里反复出现同一个痛点:agent 报告成功,然后还得人工去确认到底有没有真的发生。解决办法不是加更多日志,而是在 agent 运行**之前**,针对每个动作先想清楚:什么证据才能证明结果真的达成了。
三层验证,按成本从低到高:
1. **回执(receipt)。** 目标系统对该动作进行了确认,并返回了一个之后可以查询的 ID。注意是对方系统的记录,不是 agent 自己的日志。没有 ID 就没有回执,「done」就只是一篇日记。
2. **读回校验(readback)。** 动作执行后,读取目标系统,确认状态确实按预期发生了变化。工单存在且字段正确;数据行存在且与发送内容一致。这一层能捕捉「返回 200 但实际没生效」那类故障——调用成功了,但效果没出现。
3. **独立检查(independent check)。** 对于高风险动作,要用不共享 agent 故障模式的手段来验证。让一个 LLM 裁判去读 agent 的总结报告并不独立——它继承了同样的盲区。确定性的检查(schema、计数、余额、状态流转)才是独立的。
经验法则:一个动作越难以撤销,它在被任何人称为「完成」之前,需要的验证级别就越高。一份草稿可以只停留在第 1 层,一笔付款不行。
你在信任一个「done」之前要求什么证据——还是每次都靠手动检查?
相似文章
当AI代理说“完成”时,你怎么知道它真的发生了?[P]
文章探讨了一个名为agentuptime的早期概念,它通过独立检查结果来验证AI代理的操作,以确保代理的完成声明与外部系统的实际状态相符。
我是如何解决智能体审批疲劳的:给每个智能体一台独立的电脑,然后测试它无法访问哪些资源
作者分享让持久化 AI 代理真正可用的三点经验:为每个代理分配独立容器、主动测试安全边界而非默认信任,以及定义可机器验证的"完成"标准。
@knoYee_: https://x.com/knoYee_/status/2062780637677752366
作者复盘了使用多Agent协作三个月的经验,总结出五个主要痛点(如Agent间矛盾、忽略边界条件、自我审查失效、合并决策困难、压缩执行后暴露更难问题)和两个心得(只读审查Agent价值高、Agent矛盾暴露需求模糊),强调了人类在AI协作中的核心决策作用。
@nykdotdev: 大多数智能体允许在完成任务后才定义“完成”。这是本末倒置。在运行前编写完成合同…
建议AI智能体应在开始工作前定义完成合同,明确必须达成的结果、禁止出现的结果、证据以及完成规则,从而将令人信服的答案与完成的任务区分开来。
@sermakarevich:智能体评估:如何判断 AI 智能体是否完成了任务,以及能否再次完成
一篇面向工程师的深度文章,系统讲解如何对 LLM 智能体进行评估:通过检查可验证的最终状态而非回复文本来判定任务是否完成,并区分能力(capability)与可靠性(reliability)两个指标,同时定位失败步骤、判断模型评审的可信度。