智能体评估

智能体评估检验整个系统能否完成任务,既看最终结果,也看过程中是否遵守约束、花费多少资源。

返回概念图谱 →

理解与应用

智能体评估是对完整任务执行的检验。被评估的不只是模型,还包括提示词、工具、权限、状态管理和运行环境。例如报销助手说“材料已补齐”,真正的成功条件应是正确报销单挂上了正确发票,而且没有改动其他记录,不能只看回复是否像一次成功通知。

因此,评估从一条可核验的验收条件开始。对于“解释报销为什么退回”,可以比较回答与退回记录是否一致;对于“补交发票”,还要读回系统中的附件状态。两类任务需要的证据不同,用统一的语言质量分数会把这种差别抹掉。

测试案例应来自可能遇到的工作:正常记录、缺少编号、发票无法读取、工具超时、权限不足。同一任务还可以安排不同难度,看看失败集中在哪一步。固定工具返回值的回放测试有助于定位代码回归,连接隔离环境的端到端测试则能发现接口和权限配置的问题。

比较两个版本时,输入、工具条件和预算应尽量一致。带有随机采样的系统可能同一题有时成功、有时失败,单次运行不足以说明改动有效。任务成功率之外,延迟、调用次数和严重错误需要单独列出,否则少量越权操作很容易被大量简单题的正确率盖过去。

评估集还需要留出未用于调参的部分。反复看着同一批失败题改提示,确实可能提高这批题的分数,却无法证明系统学会了处理新问题。上线后的真实失败分布可以帮助补充下一轮测试,但它不能由离线平均分代替。

关系速览
智能体评估包含 →LLM 作为评审者

模型评审可以构成评估的一部分,应通过人工样本校准偏差。

智能体评估应用于 →BFCL 函数调用评测

BFCL 关注工具调用相关能力,不能替代完整业务验收。

智能体评估应用于 →GAIA 通用助手基准

GAIA 用真实助手型问题检验多步骤能力,测试条件与工具可用性影响结果。

智能体评估应用于 →奖励函数

离线评估指标可帮助设计奖励,但两者不能直接互换或只优化单一分数。

动手试一试:把关键失败从总体成功率中单独列出

这十条手工记录用于演示两层验收:总体成功率达到 90%,写操作却没有通过。实际发布门槛应由产品风险决定;这里只测了一次写操作,也不能据此估计它在真实业务中的失败率。

将代码保存为 example.py,使用 Python 3.10+ 运行 python3 example.py。仅使用标准库,无需密钥,不会调用外部模型。

Python 代码

cases = [("查询进度", True)] * 9 + [("补交发票", False)]
overall = sum(ok for _, ok in cases) / len(cases)
write_cases = [ok for task, ok in cases if task == "补交发票"]
write_passed = sum(write_cases)
print(f"总体成功率:{overall:.0%}")
print(f"写操作验收:{write_passed}/{len(write_cases)}")
print("满足发布门槛:", overall >= 0.9 and all(write_cases))

运行结果

总体成功率:90%
写操作验收:0/1
满足发布门槛: False

常见误区

  • 把助手的“已完成”当作验收依据,会遗漏工具失败和错误对象上的操作。
  • 测试题反复参与调参后,分数就不再代表对未见任务的表现。
  • 两个版本使用不同工具、重试次数或时间预算时,分数差异未必来自模型能力。

前置与延伸

建议先读

相关概念

参考与版本

Apollo 原创讲解与教学示例。参考资料用于核对技术定义;核验日不代表资料的发布日期。