Skip to content

高频面试题

如何评估 AI Agent 的效果?有哪些评估维度和方法?

面试官问 Agent eval,真正想看的是你能否评估“完成任务的全过程”,而不是只让 LLM Judge 给最终答案打分。

适合阶段:Agent 工程化 / 质量治理 / 架构面核心能力:Task Completion · Trajectory Eval · LLM Judge · Regression · Online Monitoring

面试官角度分析,想考什么

  • Agent 评估和普通 LLM 评估差在哪?
    考对象:要从一个回答变成一次任务轨迹、工具、状态和业务结果。

  • 评估维度和方法有哪些?
    考组合:完成度、工具正确性、忠实、安全、成本;规则 judge、代码 judge、LLM judge 和人工。

  • 线上怎么评估,LLM Judge 有什么坑?
    考闭环:trace、badcase、回归集;Judge 有偏差、要校准,不适合单独判断权限和业务状态。

可直接抄走的 30 秒参考答案

text
Agent 评估要看全过程,不只看最终回答。维度上我会拆任务完成度、工具调用正确性、事实忠实和引用、安全权限、体验成本、鲁棒性。方法上,能用规则和业务状态判断的先用确定性 judge,比如工具是否成功、参数是否正确、是否越权;开放文本再用 LLM-as-judge,并用人工标注校准。线上通过 trace 收集 dislike、重复追问、fallback、tool error、转人工和高风险命中,把 badcase 加入离线回归集,看 case-level pass/fail diff。

面试回答详解,知其所以然

Agent eval 的核心是:评估对象从“一个回答”变成“一次任务执行”。一个 Agent 最终话术很好,但中间越权查了数据、调用错工具、漏做关键步骤,仍然是不合格的。

1. 先定义任务成功标准

评估前要把任务拆成可判定的成功条件:

text
用户目标 -> 必要步骤 -> 工具/状态证据 -> 最终输出要求 -> 安全边界

例如“帮我创建一个会议并邀请团队成员”:

  • 是否识别出会议主题、时间、参会人。
  • 是否查询忙闲或会议室。
  • 是否调用创建日程工具。
  • 是否邀请了正确人员。
  • 是否处理冲突或缺失信息。
  • 最终回复是否忠于工具结果。
  • 是否没有邀请未授权人员或泄漏隐私。

这比只问“回答是否自然”更接近真实任务完成。

2. 评估维度一:任务完成度

任务完成度回答的是:用户的事情有没有办成。

可用信号:

  • 最终业务状态是否改变。
  • 必要字段是否齐全。
  • 必要工具是否成功调用。
  • 是否处理异常分支。
  • 是否在无法完成时提出澄清或合理降级。

这类评估尽量用规则或业务状态判断,因为它们比 LLM Judge 更稳定。

3. 评估维度二:工具调用正确性

Agent 的工具轨迹很重要:

  • 选对工具了吗?
  • 参数抽取对了吗?
  • 调用顺序合理吗?
  • 是否重复调用、漏调用或过度调用?
  • 工具失败后有没有恢复?
  • 是否违反权限策略?

工具评估常用 trace + mock 环境。比如测试集中固定工具返回值,然后判断 Agent 是否在正确时机调用正确工具,并把工具结果正确用于后续回答。

4. 评估维度三:事实忠实和证据质量

如果 Agent 使用 RAG、搜索、数据库或工具结果,最终输出要忠于证据:

  • 是否引用了真实来源。
  • 结论是否被工具结果支持。
  • 是否混淆多个来源。
  • 是否把不确定信息说成确定。
  • 是否编造不存在的字段、链接或结果。

这类评估可以用 LLM Judge,但要给 judge 明确 rubric 和证据上下文,并用人工标注集校准。

5. 评估维度四:安全、权限和合规

安全类指标不应被平均分掩盖。常见评估包括:

  • prompt injection 是否被拒绝或隔离。
  • 是否泄漏 PII、secret、系统提示词或跨租户数据。
  • 是否越权调用工具。
  • 是否执行高风险动作前请求确认。
  • 输出是否包含合规禁止内容。
  • 代码执行是否突破沙箱。

高风险安全 case 通常一票否决。不要把“安全 0 分但回答质量 90 分”平均成可上线。

6. 评估维度五:体验、成本和效率

Agent 不是越深思越好。还要看:

  • 首 token 延迟和总耗时。
  • 工具调用次数。
  • token 成本和外部 API 成本。
  • 轮次是否过多。
  • 澄清问题是否必要。
  • 失败时的提示是否可恢复。
  • 用户是否重复追问或转人工。

不同场景权重不同。客服 Agent 可能更看重低延迟和一次解决率,Deep Research 更看重证据覆盖和报告质量。

7. 评估方法一:离线回归集

离线 eval 是上线前的主力:

  • 收集真实用户请求和典型任务。
  • 对每个 case 定义期望结果、允许工具、mock 返回和评分规则。
  • 每次改 prompt、模型、工具 schema、RAG 或权限策略都跑回归。
  • 看 case-level diff,尤其是 pass -> fail。

离线集要持续从线上 badcase 补充,而不是一次性造完。

8. 评估方法二:规则、代码和业务状态 judge

能用确定性判断的地方,不要先上 LLM Judge:

  • schema 是否符合。
  • 工具是否调用成功。
  • 参数是否等于期望值。
  • 数据库状态是否改变。
  • 是否出现 forbidden tool。
  • 是否超预算、超时、超步数。

规则 judge 成本低、可全量跑,是 Agent eval 的骨架。

9. 评估方法三:LLM-as-Judge 和人工标注

LLM Judge 适合开放文本:

  • 回答是否完整。
  • 是否忠于证据。
  • 解释是否清晰。
  • 是否遵守风格和格式。
  • 是否识别不确定性。

但要注意:

  • Judge 也会偏。
  • rubric 要具体。
  • 最好做 pairwise 或 reference-based 评估。
  • 高风险任务需要人工抽检校准。
  • 不要让 judge 代替权限和业务状态判断。

10. 评估方法四:线上监控和 badcase 闭环

线上不能只等 dislike。应采集:

  • 用户显式反馈。
  • 重复追问和纠正。
  • fallback、转人工、取消任务。
  • tool error、retry、timeout。
  • 低置信意图。
  • 高风险 guardrail 命中。
  • 成本和延迟异常。

这些信号进入 badcase 池,经过归因后补进离线回归集。这样评估才会随着真实使用变强。

面试官追问3个问题

追问一:任务完成度怎么自动判断?

  • 考察点:是否能把自然语言目标拆成 checklist。
  • 回答方向:为每类 intent 定义必要步骤、工具调用、业务状态和输出要求;能从 trace 和数据库判断的用规则,开放文本再用 judge。

追问二:LLM Judge 能不能完全替代人工?

  • 考察点:是否理解 judge 偏差。
  • 回答方向:不能。LLM Judge 适合开放文本和忠实性初筛,但需要 rubric、标注集校准、抽样人工复核;权限、数值和业务状态优先规则判断。

追问三:线上用户不反馈,怎么发现问题?

  • 考察点:线上质量信号。
  • 回答方向:用隐式信号:重复追问、纠正、fallback、tool error、转人工、低置信意图、超时、成本异常和高风险 guardrail 命中。

扩展知识

Agent eval 的最小闭环

text
真实任务 -> trace -> 自动/人工判分 -> 失败归因 -> 修复 -> 回归集 -> 发布前 diff

这条链路比单次评分更重要。好的 eval 应该指导下一步怎么改,而不只是输出一个分数。

轨迹评估比最终文本更能定位问题

最终回答错了,原因可能是 intent 错、检索错、工具参数错、工具失败没恢复、模型总结错或权限策略拦错。只有 trace 级评估才能定位是哪一层坏了。

Eval 集要分层

  • Smoke eval:少量核心 case,每次提交都跑。
  • Regression eval:线上 badcase 和关键任务,发布前跑。
  • Safety eval:prompt injection、越权、泄漏,一票否决。
  • Load/cost eval:延迟、token、工具调用和并发成本。
  • Human eval:抽样校准 judge 和覆盖高风险模糊场景。

基于 MIT 协议开源