简介(未完成)
Agent评估采用三层金字塔模型,按重要性和实施优先级划分:
- 第一层:核心能力,规划、工具使用、推理、记忆
- 第二层:应用效果 ,任务完成、输出质量、用户满意度
- 第三层:生产就绪度,成本、延迟、安全、稳定性
评估什么
核心能力评估(第一层)
规划与推理能力,Agent能否将复杂任务分解并逐步执行
- 任务完成进度 = 已完成步骤/理想步骤数
- 正确选择工具比例 = 正确调用/总调用
- 遇错误后调整能力 = 成功恢复次数/错误次数
工具使用能力,Agent能否正确调用和组合各种工具:L1: 单工具调用 → L2: 顺序调用 → L3: 并行调用 → L4: 动态发现
- 工具名称+参数正确性
- 优先使用API而非浏览器
- 工具组合效率:最少调用达成目标
记忆管理能力,Agent能否维护和利用长期记忆
- 准确检索,从历史中提取正确信息
- 在线学习,对话中新增学习
- 长程理解,跨多轮维持一致性
- 选择遗忘,过滤无关信息
自我反思与改进能力,Agent能否从反馈中学习并改进
- 初次尝试 → Agent执行任务(可能失败)
- 提供反馈 → 给出错误原因或改进建议
- 二次尝试 → Agent根据反馈重新执行
- 评估改进 → 计算Reflection Score
应用效果评估(第二层)
Agent是否达成业务目标
- 完全成功
- 部分成功
- 功能完成
- 完全失败
Agent输出内容的质量
- 准确性
- 相关性
- 完整性,是否覆盖所有要点,关键点检查清单
- 可用性,用户能否直接使用
如何评估
评测的最主要价值是:把产品负责人(以及产品团队)的目标和用户的实际需求进行量化,而量化的手段就是构建评测数据集。目前的AI应用面对的场景如此之复杂,以至于很难写出一个reward的规则方式进行评价。特别是需要考虑的输入数据分布很难通过其他方式描述,最终都只能转化为一个数据集来进行量化表示。
- 机评与人评。在实际应用中,能完全量化为单个选项或者数值的任务并不多,不少任务都是给出一种非结构化的文本输出。这种情况下,就很难机械地对其进行自动化评估。一般我们会使用构建一个评估workflow(或单个prompt),来进行评估。
- 难点:首先评估的维度经常需要显式的列出并进行定义,但要把产品负责人的产品sense、或者是对用户群对于产品效果的期望精确地转换为评估维度的描述实际上非常难,大多数时候只能把能描述清楚的部分描述清楚,放弃剩下的部分。
- 评测方案是会过时的
单轮评估很简单:一个提示、一个响应和评分逻辑。PS: query + Response + 打分逻辑
- 任务(也称为问题或测试用例)是具有定义输入和成功标准的单个测试。
- 每个任务的尝试是一个试验。由于模型输出在运行之间会有所不同,我们运行多个试验以产生更一致的结果。
- 评分器是对智能体某些方面表现进行评分的逻辑。一个任务可以有多个评分器(评估体系从“对错二分”转向“多维度量”),每个评分器包含多个断言(有时称为检查)。对于每个任务,评分可以是加权的(组合评分器分数必须达到阈值)、二进制的(所有评分器必须通过)或混合的。
- 基于代码的评分器
- 基于模型的评分器
- 人类评分器
- 记录(也称为跟踪或轨迹)是试验的完整记录,包括输出、工具调用、推理、中间结果和任何其他交互。
- 结果是试验结束时环境的最终状态。预订航班的智能体可能在记录结束时说”您的航班已预订”,但结果是在环境的SQL数据库中是否存在预订。 评估框架是端到端运行评估的基础设施。它提供指令和工具,并发运行任务,记录所有步骤,对输出进行评分,并汇总结果。
每个任务都有自己的成功率——一个任务可能是90%,另一个任务可能是50%——而在一次评估运行中通过的任务可能在下次失败。有时,我们想要测量的是智能体多频繁(试验成功的比例)成功完成一个任务。两个指标有助于捕捉这种细微差别:
- pass@k衡量智能体在k次尝试中至少获得一个正确解决方案的可能性。
- pass^k衡量所有k次试验成功的概率。如果您的智能体每次试验成功率为75%,并且您运行3次试验,通过所有三次的概率是(0.75)³ ≈ 42%。这个指标对于用户期望可靠行为的面向客户智能体尤其重要。 随着试验次数的增加,pass@k和pass^k出现分歧。在k=1时,它们是相同的(都等于每次试验的成功率)。到k=10时,它们讲述了相反的故事:pass@k接近100%,而pass^k下降到0%。两个指标都很有用,使用哪个取决于产品要求:对于工具一次成功重要的用pass@k,对于一致性至关重要的智能体用pass^k。
其它
多轮对话评估
- 为了评估模型在第二轮(Turn 2)的表现,你发送给 LLM 的 messages 列表必须包含完整的“对话历史”(多轮同理)。
User (Q1) Assistant (A1) <-- 模型之前的真实输出 User (Q2) <-- 新的刁难/追问 - 那么问题来了:
- 错误传播。如果 A1 输出的质量较差,导致 Q2 与 A1 可以说毫无关系,这样的情况下评估 A2 还有意义吗?对于任务完成度来说,通常没有意义;但对于考察模型的“鲁棒性”和“挽救能力”有一定意义。
- 评测模式 (Teacher Forcing vs. Free Generation)。 将 A1 替换为 Ground Truth (标准答案) 再测 Q2,是标准做法之一吗,有什么价值?如果你是在做通用的 Leaderboard 评测(评估真实对话能力),请严格使用模型自己的输出作为历史;如果你是在Debug 模型的某项特定技能(如长文本精炼),请使用 Ground Truth 以隔离。