Agent 如何验证工具确实执行成功,避免产生任务完成幻觉?

考查重点:业务回执与最终状态核验。提交后读取业务回执或独立查询最终状态,按任务ID和关键字段确认完成;模型自述、无错误退出或成功截图都不单独替代验收

本题目录

参考答案

核心回答

把“工具返回了”“模型认为完成了”和“业务结果已确认”分开。 执行前明确对象和验收条件;执行后保留真实工具结果,再通过业务回执或独立查询核对最终状态。只有预期条件得到证据支持,才能向用户报告完成。

例如导出订单,点击导出按钮没有报错,只能说明这次动作返回了;出现导出任务,也可能仍在排队。需要确认对应任务完成、文件实际下载,并核对文件字段和日期范围,才能判断整项导出完成。

工程上有三项关键处理:

  1. 明确返回语义。 工具返回业务对象标识、状态、错误及必要结果;HTTP 200、进程退出码为 0 或“请求已受理”不能统一映射成业务完成。
  2. 执行后重新观察。 把工具结果写回上下文,读取新的页面、任务状态或文件内容;能用代码判定的条件直接校验,模型负责解释和处理尚不明确的情况。环境反馈循环。
  3. 未确认时保留未知状态。 异步操作按任务标识有界轮询;等待超时后先查已有结果,避免把“没收到回执”当成“没执行”而重复提交。

验收条件怎样落到程序中

验收围绕用户要求建立,既检查状态,也检查对象和关键字段。例如退款要匹配订单、金额及退款状态;导出要匹配筛选条件、文件格式和内容。成功提示或截图可以提供证据,但单独看到“成功”两个字,无法证明操作对象、金额或数据范围正确。

把动作输入、工具原始回执、执行后的查询结果和判定依据关联到同一任务,才能定位“工具失败”“仍在处理”“操作成功但不符合要求”等不同问题。过程记录与最终状态需要分别检查:选对工具、参数合法,与业务结果正确是不同的指标。

模型复核适合判断页面含义、文本是否完整等语义条件;它仍可能误读页面或遗漏要求。对于明确的状态、数量、字段和文件检查,应以实际系统数据及程序断言为依据。模型评分失败或没有取得证据时,不把缺失结果补成成功。

browser-usePython

基于 browser-use

browser-use 是用 Python 驱动的浏览器 Agent:模型结合页面状态选择点击、输入、提取等动作,工具层执行,再把结果交给后续决策。以 0.13.13 的供应商报价采集场景说明,它提供执行反馈与模型复核机制,报价字段及附件的最终验收还需要接入具体规则。

上轮动作结果与新页面一起判断

step() 先调用 _prepare_context() 获取浏览器状态及截图,把上轮模型输出、ActionResult 和当前页面组织成消息,再请求模型并执行动作。_execute_actions() 保存本轮结果,供后续步骤使用。这样模型可以检查筛选后是否出现目标报价、页面是否仍显示报错,而不是只根据自己计划过的动作推断成功。观察与结果回填。

工具层把执行超时、浏览器错误或其他异常转成相应结果,让模型决定恢复方式。不过,没有 error 不等于动作达成目标:例如元素索引已失效时,点击工具会在 extracted_content 中提示重新获取页面状态。因此还要读取返回内容并检查实际页面变化。工具执行与异常、元素不存在的返回。

done、结构化输出和 Judge 各自说明什么

done 把模型给出的 success 和最终文本写入 ActionResult,并设置 is_done=True。所以 history.is_done() 表示已经发出结束动作,history.is_successful() 读取模型自报的成功状态,history.final_result() 返回最后的输出内容。配置 output_model_schema 可以约束结构化结果的格式,不能据此证明其中的报价内容或附件真实存在。完成动作、历史结果方法。

该版本默认启用 use_judge=True。结束后,Judge 根据任务、最终输出、执行轨迹和截图再次评估,可通过 ground_truth 提供验收条件;未指定 judge_llm 时使用主模型。它是另一次模型评估,仍受可见证据和模型判断能力限制。Judge 输入、默认配置。

Judge 的结论只附加为 judgement,不会覆盖模型自报的 success,判失败也不会自动重新执行任务。 Judge 调用异常时返回 None;调用方可以分别读取 is_successful() 与 is_validated(),不能把“模型称成功、Judge 未返回”当作验证通过。终局评估及异常路径、结束处理。

报价采集怎样补上业务验收

业务集成可以增加报价验收步骤:按供应商、产品规格和采集时间保存报价字段与来源地址,确认币种、含税口径、起订量及交期能在网页或附件中定位;下载后再检查文件存在、能解析且对应目标产品。Agent 的完成文本、Judge 结果与这些检查分别保存,最终完成状态由业务验收条件决定。

例如“已打开报价页但没有目标规格”“附件下载完成但已过报价有效期”“模型自报成功而 Judge 判失败”都应保留各自状态。等待超时先检查当前页面与已有附件,再决定是否重新读取或下载。这些是可增加的验收设计,不能仅凭上游浏览器循环就推定已经实现。

对应教程

参考资料

收录题集

3 个来源,共4 份题集

AI 智能体与大模型应用开发面试题库

didilili · ai-agents-from-zero · 1 条原题

查看题集 →

Agent 面试题

小林 Coding · 个人整理 · 1 条原题

查看题集 →

AI 机制与工程问答

Guide · JavaGuide · 1 条原题

查看题集 →

AI 项目复盘与自测

Guide · JavaGuide · 1 条原题

查看题集 →

相关题目

4 题