接着我那篇“200 OK 并不能证明什么”的帖子说:“完成”原来有六种状态,而不是一种

Reddit r/AI_Agents 新闻

摘要

作者跟进了此前关于不应信任工具调用返回 200 的讨论,指出 AI 代理说“完成”时,实际可能对应六种状态(意图、尝试、接受、应用、正确、生效),并建议对涉及发送、支付或删除的操作进行双重校验:由系统校验计划,再将结果与原始请求进行核对,避免把“API 已接受请求”误报为“已完成”。

昨天我在这里发帖,谈到不能轻信工具调用返回的 200。评论区有几个人把这个想法推进到了我之前没想到的地方,所以我最后得出了这些结论。当一个智能体说“完成了”时,可能指的是以下任何一种情况:意图:它决定去做这件事 尝试:它调用了工具 接受:API 返回了 200 生效:实际系统中能看到这项变更(“已发送”文件夹、那条记录、日历事件)正确:这项变更符合用户的要求(联系人正确、金额正确、会话正确)达成:预期结果确实发生了(已送达、已付款、对方到场了)大多数智能体报告的是第 3 步,却把它说成第 6 步。我上一篇帖子提到的回读检查能让你走到第 4 步。我之前遗漏的是第 5 步,而这一点来自那篇帖子的讨论。回读检查比较的是系统状态与智能体的计划。如果智能体从 CRM 中选错了联系人,邮件就会发给错误的人,而回读结果与计划一致,于是就被标记为已验证。所有检查都通过了,事情却还是做错了。所以,对于任何涉及发送、付款或删除的操作,我现在都会做两项检查:先比较系统状态与计划,再比较结果与原始请求。第 6 步大多不在你的控制范围内。你无法强迫别人阅读消息。但你可以停止把这六种状态都压缩成一个词。WhatsApp 早就通过它的勾号标记这样做了:已发送、已送达、已读。它从不声称超出自己所知的状态。所以,我的智能体现在显示的状态是“API 已接受”“已在‘已发送’文件夹中”“已发送给你指定的联系人”,或者在 webhook 确认后显示“已送达”。绝不会只说“完成了”。想问那些正在运行能执行实际操作的智能体的人两个问题:你的智能体目前实际上停在哪一步?对于第 5 步,你拿什么作为比较依据?用户的原始消息、预先提取的结构化意图,还是其他东西?
查看原文

相似文章

工具调用返回 200,并不能证明你的智能体完成了操作。你是如何验证操作是否成功的?

Reddit r/AI_Agents

一位实践者分享了一种情况:AI 智能体的工具调用返回成功(200/ID),但预期操作实际上并未完成(例如,邮件仍停留在草稿箱中)。他们建议在每次写入操作后回读验证,将操作标记为“已验证”“已确认收到”或“与实际结果不符”,并询问其他人如何验证智能体的操作。