跳到主要内容
约 10 分钟5 张卡

Agent 评估

Agent 评估用一组代表性任务反复运行 Agent,按事先定义的标准判断结果,并统计成功率、成本、延迟等指标。模型输出有随机性、执行路径不固定,靠试几个例子判断“效果不错”无法支撑上线和迭代决策。本文讲评测集、评分方式、指标、失败归因和回归流程,以及线上的可观测性。

1. 面试核心​

先记住这几条,再读正文
  • 评估对象分三层:最终结果是否正确(任务成功率),执行轨迹是否合理(工具选择、步数、错误恢复),以及成本与体验(延迟、Token、人工接管率)。卡 · 评什么
  • 评测集来自真实请求和失败样例,按场景分层,包含正常、边界和应该拒绝的任务;新场景上线前先补用例。卡 · 评测集
  • 评分优先用代码可验证的标准(测试通过、数据库状态、字段比对);开放式输出用评分细则加 LLM 评审,并用人工标注校准评审结果。卡 · 评分方式
  • 失败归因沿执行链路逐段检查:输入理解、检索、工具选择、参数、工具执行、生成。完整的轨迹记录是归因的前提。卡 · 失败归因与可观测性
  • 每次修改都在完整评测集上回归,多次运行取统计结果;局部提升伴随整体下降时,按场景权重和失败严重程度决定是否上线。卡 · 评什么

2. 评什么​

层次指标说明
结果任务成功率按验收标准判定完成的比例
结果正确性分项字段准确率、答案事实正确率、引用正确率
轨迹工具调用准确率选对工具、参数正确的比例
轨迹步数、重复调用是否绕路,是否出现循环
轨迹违规动作越权、未确认的高风险操作,应为零
成本Token、调用次数、单任务费用和成功率一起比较方案
体验端到端延迟、首 Token 延迟P50、P95
稳定性多次运行的一致性同一任务运行 k 次的成功比例
线上人工接管率、用户反馈、业务指标离线评测无法覆盖的真实效果

模型输出有随机性,同一任务要运行多次。常用两种统计:pass@k(k 次中至少成功一次,衡量能力上限)和 pass^k(k 次全部成功,衡量稳定性)。面向用户的生产系统更关心后者。

3. 评测集​

  • 来源:线上真实请求抽样(脱敏后)、历史 Bad Case、业务方提供的典型场景、人工构造的边界和对抗用例。
  • 分层:按场景、难度、是否需要工具、是否应该拒绝分组,分别统计,避免简单任务掩盖难任务的退化。
  • 标注:每个任务写明验收标准,能自动判定的写成检查代码,例如“订单状态变为已取消且退款记录存在”。
  • 规模:起步时几十个高质量任务就能发现主要问题;随着失败样例积累扩充。规模取决于场景数量和需要检测的差异大小:要检测几个百分点的变化,样本量需要足够大,或增加重复运行次数。
  • 维护:新功能上线前先加用例;线上新出现的失败加入评测集;定期检查用例是否过时。

4. 评分方式​

方式适用注意
代码检查结果可验证:测试、状态、字段、格式最可靠,优先使用
参考答案比对有标准答案的问答精确匹配过严,可以用语义比对
LLM 评审开放式输出:摘要、报告、对话质量需要评分细则和校准
人工评审校准、抽查、高风险场景成本高,用于建立基准

LLM 评审(LLM-as-Judge)的做法:给评审模型明确的评分细则(每个维度的标准和示例),要求先给出依据再打分;对比两个方案时交换顺序各评一次,消除位置偏差;评审模型与被评模型不同,减少自我偏好。用一批人工标注样本计算评审结果与人工的一致率,一致率不够时修改细则,而不是直接相信评审分数。

评审模型也会出错,所以对关键结论抽样人工复核;能拆成可验证子项的(“是否包含以下五个要点”“引用是否存在于原文”)尽量拆开,用代码或简单判断完成。

5. 失败归因与可观测性​

线上和评测中的每一次运行都应记录完整轨迹:输入、每轮的上下文摘要、模型输出、工具调用和参数、工具结果、耗时和 Token。常用 OpenTelemetry 风格的 trace,把一次任务作为一个 trace,每次模型调用和工具调用作为 span。

归因按链路逐段排查:

  1. 输入理解:意图识别或查询改写是否正确。
  2. 信息获取:检索是否召回正确材料,工具是否返回正确数据。
  3. 决策:是否选择了正确的工具、参数是否正确、是否过早停止。
  4. 执行:工具是否报错、超时,错误是否被正确处理。
  5. 生成:材料正确时回答是否忠实,格式是否正确。

把失败按原因分类统计,优先处理占比最高的一类。延迟问题按 span 耗时定位:首 Token 慢看模型排队和输入长度,整体慢看步数和慢工具。

6 · 面试题卡片​

6.1 如何评估 Agent 系统的整体效果?除成功率和耗时外,还应关注哪些指标?​

出现公司:字节跳动、阿里淘天、新旦智能、拼多多、蚂蚁

考察重点

  • 结果、轨迹、成本与体验三层指标。
  • 随机性下的多次运行统计。

相关内容:评什么。

参考回答

先定义验收标准,用评测集离线运行,统计任务成功率和分项正确率。除此之外看轨迹指标:工具选择和参数准确率、平均步数、重复调用、违规动作数;成本指标:Token、调用次数、单任务费用;体验指标:端到端和首 Token 延迟的 P50、P95;稳定性:同一任务多次运行的一致性,可以用 pass^k 衡量。

规划能力可以看计划完成率和重规划次数,幻觉率可以统计回答中无依据的陈述或不存在的工具、参数比例。上线后再看人工接管率、用户反馈和业务指标,并通过灰度与旧版本对比。

6.2 Agent 评测集多大?样本从哪里来?新增场景如何更新评测集?​

出现公司:阿里淘天、阿里巴巴、汇川技术、4399、百度

考察重点

  • 样本来源、分层和验收标准。
  • 规模与统计可靠性、持续维护。

相关内容:评测集。

参考回答

样本来自脱敏后的线上请求抽样、历史 Bad Case、业务方提供的典型场景和人工构造的边界、对抗用例。按场景、难度、是否需要工具、是否应拒绝分层,每个任务写清可判定的验收标准,能自动检查的写成代码。

规模从几十个高质量任务起步,随失败样例积累扩充;要检测较小的指标变化,就需要更多样本或增加重复运行次数,并报告分母和统计口径。新增场景时先补用例再上线,线上新出现的失败加入评测集,定期清理过时用例。报告成功率时同时给出失败原因分布。

6.3 没有标准答案的开放式任务怎么评测?用 LLM 评估结果,评估模型本身也有幻觉怎么办?​

出现公司:字节跳动

考察重点

  • 评分细则、可验证子项与 LLM 评审。
  • 评审偏差的控制与人工校准。

相关内容:评分方式。

参考回答

先把“好”拆成可评估的维度和细则,例如覆盖哪些要点、事实是否有来源、结构是否完整,每个维度给出标准和示例。能验证的子项用代码或简单判断完成,比如引用是否存在于原文、必含要点是否出现。

剩余主观维度用 LLM 评审:要求先写依据再打分,对比时交换顺序评两次,评审模型与被评模型不同。评审结果要用一批人工标注样本校准,计算一致率,一致率不够就修改细则或换评审方式。上线后对关键结论抽样人工复核,并结合用户反馈。

6.4 如何对 Agent 的 Bad Case 进行归因?如何利用可观测链路定位问题?​

出现公司:字节跳动、百度、腾讯、vivo

考察重点

  • 轨迹记录与 trace/span 结构。
  • 按链路分段归因和失败分类统计。

相关内容:失败归因与可观测性。

参考回答

前提是记录完整轨迹:每次任务一个 trace,模型调用和工具调用各是一个 span,记录输入、输出、参数、耗时、Token 和错误,可以用 Langfuse 或 OpenTelemetry 方案。

归因时沿链路逐段检查:意图和查询改写是否正确;检索或工具是否拿到正确数据;是否选对工具、参数是否正确、是否过早停止;工具执行是否报错以及错误处理是否正确;材料正确时生成是否忠实。把 Bad Case 按原因分类统计,优先解决占比最高的类别,修复后加入评测集回归。延迟问题按 span 耗时定位:首 Token 慢看排队和输入长度,总时长慢看步数和慢工具。配合错误率、延迟和成本的告警。

6.5 迭代后怎么验证效果?出现“局部提升、整体负优化”怎么办?​

出现公司:字节跳动、阿里云、拼多多

考察重点

  • 基线、相同环境下的回归比较和灰度。
  • 分场景统计与权衡上线决策。

相关内容:评什么、评测集。

参考回答

每次修改都与基线在同一评测集、同一模型版本和参数、同一工具环境下比较,多次运行取统计结果,避免把随机波动当作改进。离线通过后灰度上线,与旧版本对比线上指标,也可以用影子流量在不影响用户的情况下运行新版本。

出现局部提升、整体下降时,按场景分层查看是哪些场景退化、退化的严重程度和流量占比。如果退化发生在高流量或高风险场景,不上线;可以把改动限定在受益场景(按路由启用),或继续修改直到不再退化。退化用例加入回归集,防止以后再次出现。

7. 参考资料​