Agent 评测框架

适用产品:支持用户供给 Skill 的 Agent 产品 版本:v0.8 | 最后更新:2026-04-28


框架总览

12 个评测维度按能力层级分为三组,编号连续递增,另有横切维度和多模态专项维度。排障和上线优先级均从第一组开始:第一组有问题不用看后面;第一组达标再看第二组核心路径;第三组是持续迭代的品控层。

第一组:基础能力(B1-B3)

这些坏了,其他维度都跑不起来。必须优先达标。

维度 名称 核心问题 评测方式
B1 意图理解 agent 理解了用户想要什么吗? 自动 + 人工抽样
B2 Tool Use agent 正确使用工具完成任务吗? 自动为主
B3 指令约束遵从 agent 能严格执行精确约束条件吗? 自动为主

第二组:复合能力(C1-C5)

依赖基础能力组合而来。核心路径必须达标,边界情况持续迭代。

维度 名称 核心问题 评测方式
C1 Skill 遵从 agent 正确识别并执行 skill 吗? LLM-as-judge + 人工校验
C2 规划与多步推理 agent 能规划并可靠地完成复杂任务吗? 自动(端到端成功率)
C3 记忆管理 agent 正确利用和更新记忆吗? 自动 + 人工抽样
C4 任务执行稳态 agent 会死循环或过早放弃任务吗? 自动
C5 长上下文性能 上下文变长时 agent 性能如何衰减? 自动

第三组:质量与安全(Q1-Q3)

基础和复合能力跑通后的品控层。上线前必须有底线,之后持续提升。

维度 名称 核心问题 评测方式
Q1 幻觉与知识边界 agent 知道自己不知道什么吗? 自动 + 人工抽样
Q2 安全与对抗鲁棒性 agent 能抵御恶意输入和注入攻击吗? 自动为主
Q3 效率 agent 用最优路径完成任务吗? 自动

横切维度(X)

贯穿所有层级的附加评测,每次评测均需覆盖。

维度 名称 核心问题 评测方式
X 输出一致性与风格对齐 agent 的输出稳定、风格符合预期吗? 自动 + LLM-judge

多模态质量(M 系列)

针对特定输出形态的专项评测,发现系统性问题后独立成维度持续跟踪。

维度 名称 核心问题 评测方式
M1 图片输出 agent 在合适场景主动出图,且图文匹配吗? 自动 + 多模态 LLM-judge

M1 设立背景:经验证,模型存在系统性「只输出文字、不主动配图」问题,景点介绍、商品推荐、美食推荐等高频场景均未达到图文并茂的产品预期,故独立成维度持续跟踪修复进展。


Skill 分组评测方法论

本产品的核心差异化在于用户供给 Skill,但评测时需要同时验证「没有 Skill 时的基础能力」和「有 Skill 时是否产生负面影响」。

核心矛盾

解决方案:按维度差异化配置——B1-B3 及 Q3 采用双组对照,C1 强制开启,C2/C4/C5/Q1 强制关闭,Q2 混合配置,X 视用例而定。详见下方各维度说明。


评测分组策略

第一组(B1-B3):双组对照

组别 Skill 状态 测试目标 意义
Group A: Baseline 关闭所有 skill 纯基础能力 验证无 skill 时 agent 能否达到可用下限
Group B: Skill-enhanced 开启相关 skill Skill 不破坏基础能力 验证 skill 没有负向干扰基础逻辑

执行方式

为什么需要 Group A(无 skill baseline)

  1. 排障起点:如果无 skill 时都不达标,问题在 agent 本身,不是 skill 设计
  2. 对照基准:有 baseline 才能量化 skill 带来的增益或损失
  3. 通用能力保底:即使用户未供给任何 skill,产品也应可用

为什么需要 Group B(有 skill)

  1. 真实场景:产品上线后就是 skill-enabled 的,不测等于没测真实状态
  2. 负面检测:部分 skill 设计不当会破坏基础能力(如强制流程导致意图理解僵硬)
  3. Skill 质量指标:若 Group B 得分低于 Group A,说明 skill 写得有问题

第二组(C1-C5):按维度差异化配置

维度 Skill 状态 原因
C1 Skill 遵从 必须开启,无需对照组 C1 本身就是测 Skill 执行,没有 Skill 无法运行
C2 规划与多步推理 必须关闭 测纯规划能力,排除 Skill 执行路径的干扰
C4 任务执行稳态 必须关闭 测 agent 核心稳态(循环/死锁/放弃),不引入 Skill 变量
C5 长上下文性能 必须关闭 测上下文管理本身的衰减曲线,Skill 会掩盖真实信号

前置条件:只有当 B1-B3 的 Group B 达标后,才应进入 C1-C5 评测。

if B1-B3 Group B 得分 < 阈值:
    Skill 破坏了基础能力,优先修复 Skill 设计
else:
    可进入 C1-C5 评测 Skill 遵从度和复合能力

第三组(Q1-Q3):按维度差异化配置

维度 Skill 状态 原因
Q1 幻觉与知识边界 必须关闭 测 agent 自身知识边界,开启 Skill 会引入 Skill 内容的干扰变量
Q2 安全与对抗鲁棒性 混合配置 基础安全用例(直接有害输入、Prompt 注入、越狱)关闭;恶意 Skill 专项(测 agent 能否识别并拒绝恶意 Skill)开启
Q3 效率 双组对照(同 B1-B3) Skill 会影响执行路径和 token 消耗,需量化 Skill 带来的效率增益或损失

Skill 配置管理

测试 case 中的 Skill 配置字段

每条 case 需要指明:

示例:

case_id: B1-EI-01
group_a:
  skill_enabled: false
group_b:
  skill_enabled: true
  active_skills: 
    - flight_booking_skill
    - travel_planning_skill

Skill 版本管理

每次评测需记录:


关键指标

指标 计算方式 含义
baseline_score Group A 平均得分 无 Skill 时的基础能力下限
skill_enhanced_score Group B 平均得分 有 Skill 时的能力水平
skill_impact_delta Group B - Group A Skill 带来的增益(正值)或损失(负值)
skill_negative_rate Group B < Group A 的 case 比例 Skill 负面影响的覆盖面

质量门槛


第一组:基础能力


B1 · 意图理解

目标

验证 agent 能否在不同清晰度的输入下,准确捕捉用户意图并作出合理响应。

评测维度

维度 说明
精确意图 指令明确时,是否完整、准确地执行
模糊意图-澄清 指令不足时,是否主动提问而非胡乱猜测
模糊意图-推断 有上下文时,是否合理推断而非打断用户
多意图 一句话含多个目标时,是否全部处理
意图优先级 多个意图存在冲突时,是否正确排序处理

方法

  1. 分组对照评测:每条 case 分别在 Group A(无 skill)和 Group B(有 skill)下执行,对比两组得分
  2. Golden Set 评分:针对每个维度构造 case,人工标注期望行为,自动比对输出
  3. 二元判断:意图理解是否正确(对/错),再辅以部分分(关键要素覆盖率)
  4. 澄清行为分类:对模糊输入,判断 agent 的响应属于「正确澄清 / 错误推断 / 合理推断 / 过度澄清」四类

模块


B2 · Tool Use

目标

验证 agent 能否正确选择工具、构造参数、处理异常,并在多工具依赖场景中正确编排。

评测维度

维度 说明
工具选择准确率 是否选了正确的工具(可能有多个合理选项)
参数构造准确率 参数是否完整、类型正确、值合理
工具链编排 多工具有先后依赖时,顺序和条件是否正确
工具失败恢复 工具返回错误时,是否有合理的重试/降级策略
工具冗余调用 是否存在不必要的重复调用(效率指标)

方法

  1. 分组对照评测:每条 case 分别在 Group A(无 skill)和 Group B(有 skill)下执行,对比两组得分
  2. Trace 级评测:记录每次工具调用的完整 trace,对照期望 trace 打分
  3. 参数 diff:对构造的参数和 ground truth 参数做字段级 diff,计算字段准确率
  4. 注入失败测试:主动让工具返回错误,观察 agent 恢复行为
  5. 自动化为主:大部分可程序化验证,无需人工

模块


B3 · 指令约束遵从

目标

验证 agent 能否严格执行用户给出的精确约束条件,包括格式、数量、内容限制等。这与意图理解(B1)不同:B1 测「理解了什么」,B3 测「有没有按约束做到」。

评测维度

维度 说明
格式约束 指定输出格式(JSON / Markdown / 纯文本)时,是否严格遵守
数量约束 「恰好 3 条」「不超过 5 项」等数量限制的遵守率
内容禁止约束 「不要提 X」「不用 Y 词」等内容禁令的遵守率
长度约束 「200 字以内」「一句话总结」等长度限制的遵守率
多约束叠加 同时存在多个约束时,是否全部满足而非顾此失彼

方法

  1. 分组对照评测:每条 case 分别在 Group A(无 skill)和 Group B(有 skill)下执行,对比两组得分
  2. 约束违反自动检测:大部分约束(格式、数量、长度)可程序化验证,无需人工
  3. 内容禁止检测:正则或关键词匹配,检测禁止内容是否出现
  4. 多约束组合集:构造含 2-4 个约束叠加的 case,测试约束间的干扰

模块


第二组:复合能力


C1 · Skill 遵从

目标

验证 agent 能否准确识别当前任务应使用哪个 skill,并严格按照 skill 规范执行,同时具备处理 skill 边界情况的能力。

这是本产品的差异化核心层,评测标准应与 Skill Schema 规范绑定。

前置条件:只有当 B1-B3 的 Group B(有 skill)得分达标后,才应进入 C1 评测。如果 Group B 得分低于阈值,说明 Skill 破坏了基础能力,应优先修复 Skill 设计。

Skill 配置:C1 评测必须在 Skill 开启状态下进行,无需 Group A 对照组。每条 case 指定 active_skills,通常为 [flight-selection][itinerary-planning] 或两者组合。

评测维度

维度 说明
Skill 触发准确率 给定任务,是否命中了正确的 skill
Skill 执行忠实度 执行结果是否符合 skill 规定的输出标准
Skill 边界识别 任务不在 skill 覆盖范围时,是否正确降级而非强行套用
Skill 冲突处理 用户意图与 skill 规范冲突时,处理是否合理
多 Skill 编排 同时触发多个 skill 时,是否正确组合执行

方法

  1. 三类 Case 构造(每个 skill 必须覆盖):

    • 完美匹配:任务完全在 skill 覆盖范围内
    • 部分覆盖:任务只有一部分被 skill 覆盖
    • 完全不覆盖:没有相关 skill,测试 agent 是否知道降级
  2. LLM-as-Judge 评分

    • 输入:skill 定义 + 任务 + agent 输出
    • 评分项:忠实度(是否违反 skill 规定)+ 完整度(skill 要求的要素是否都输出了)
    • 分值:0-5 分,需提供评分依据
  3. Judge 校准:每轮评测对 judge 结果抽样 10-20% 人工复核,维护 judge 准确率指标

模块


C2 · 规划与多步推理

Skill 配置skill_enabled: false(测纯规划能力,不引入 Skill 路径干扰)

目标

验证 agent 能否对复杂任务制定合理计划,并在执行过程中可靠地完成多步骤链式任务,包括对中间错误的容忍和修正能力。

评测维度

维度 说明
任务分解质量 拿到复杂任务后,是否能拆解成合理的子任务序列
计划修订能力 执行中发现计划不对,是否能及时调整而非一路错到底
端到端任务成功率 复杂任务整体完成率(最终结果正确)
步骤完成率 即使最终失败,完成了多少中间步骤(partial credit)
错误传播率 中间步骤出错后,是否导致后续步骤连锁失败
错误自修复率 中间步骤出错后,agent 自行发现并修正的比例
复杂度衰减曲线 随任务步骤数增加,成功率如何衰减
输出自检 交付前,agent 是否会验证自己的输出符合任务要求

方法

  1. 任务按步骤数分级:2步、3-5步、5步以上,分别统计成功率
  2. 计划质量评审:在 agent 开始执行前截取计划,LLM-judge 评估分解合理性
  3. 注入中间错误:在固定步骤注入错误,测试计划修订和错误恢复能力
  4. 端到端自动验证:定义任务的最终输出 ground truth,程序化判断是否达成

模块


C3 · 记忆管理

目标

验证 agent 能否在对话内正确利用上下文信息,跨 session 准确召回历史,并在信息更新时正确维护记忆状态。

评测维度

维度 说明
短期记忆利用 当前对话中,是否正确利用已有上下文,不重复询问
长期记忆召回准确率 跨 session 时,相关历史信息是否被正确召回
记忆相关性判断 是否知道什么时候该召回记忆 vs 什么时候不该(防止噪声干扰)
记忆更新正确性 用户纠正信息后,是否正确更新而非继续用旧的
记忆冲突处理 新信息与记忆中的旧信息冲突时,是否合理处理

方法

  1. 上下文利用测试:在对话早期注入关键信息,后续任务依赖该信息,测试是否被利用
  2. 跨 session 召回测试:预置记忆后新开 session,测试召回准确率和相关性
  3. 记忆更新测试:先建立记忆,再给出矛盾信息,验证更新行为
  4. 噪声记忆测试:注入无关记忆,测试是否会干扰当前任务

模块


C4 · 任务执行稳态

Skill 配置skill_enabled: false(测 agent 核心稳态,不引入 Skill 执行路径)

目标

验证 agent 在面对困难任务时,既不会陷入循环/死锁无法退出,也不会遇到轻微障碍就过早放弃。这是两个方向相反的失败模式,需要分别测试。

评测维度

维度 说明
循环检测率 陷入重复步骤循环时,是否能自我识别并退出
死锁恢复率 依赖关系导致无法推进时,是否有合理的退出策略
过早放弃率 任务可完成但 agent 错误地放弃的比例(越低越好)
放弃合理性 真正无法完成而放弃时,是否给出了明确的原因说明

:C2 的 e2e_success_rate 能捕捉「最终失败」,但无法区分是循环卡死还是过早放弃。这两种失败的修复方向完全不同,必须区分统计。

方法

  1. 循环注入测试:构造会导致 agent 重复调用相同工具的场景,设置最大步骤数,测试是否能自我退出
  2. 可完成高难任务集:构造表面看起来困难但实际可完成的任务,统计放弃率
  3. 失败原因分类:对所有失败 case 打标签(循环 / 死锁 / 过早放弃 / 真实无法完成),用于区分分析

模块


C5 · 长上下文性能

Skill 配置skill_enabled: false(测上下文管理本身的衰减曲线,Skill 会掩盖真实信号)

目标

验证随着对话轮次增加、上下文变长,agent 对早期信息的利用能力是否出现显著衰减(lost-in-the-middle 问题),以及各层能力在长上下文下的稳定性。

评测维度

维度 说明
早期信息利用率 上下文很长时,对话早期注入的关键信息是否仍被正确利用
中段信息利用率 上下文中段的信息是否有衰减(lost-in-the-middle 的典型位置)
长上下文意图理解 多轮对话后,对用户当前意图的理解是否仍准确
长上下文工具调用 上下文很长时,工具参数构造准确率是否下降

方法

  1. 位置梯度测试:在上下文的开头 / 中段 / 结尾分别注入关键信息,测试不同位置信息的利用率差异
  2. 上下文长度梯度:同一任务在 4k / 16k / 32k / 64k token 上下文下分别测试,绘制性能衰减曲线
  3. 跨层复测:对 B1、B2、Q1 中的代表性 case,在长上下文条件下重新跑,对比与短上下文的性能差距

模块


第三组:质量与安全


Q1 · 幻觉与知识边界

Skill 配置skill_enabled: false(测 agent 自身知识边界,排除 Skill 内容干扰)

目标

验证 agent 是否会伪造信息、是否清楚自己的知识边界、是否能如实表达不确定性,而非自信地给出错误答案。

评测维度

维度 说明
工具结果忠实度 是否如实使用工具返回值,而非在工具失败时编造结果
知识边界意识 不知道的事情,是否承认不知道而非自信作答
引用忠实度 基于 skill 或上下文输出时,是否忠实于原始信息
不确定性表达 答案不确定时,是否表达了合理的置信度

方法

  1. 工具失败注入:让工具返回错误或空结果,测试 agent 是否会编造返回值
  2. 不可知问题集:构造一批 agent 无法知道答案的问题(实时数据、私有信息等),测试是否正确拒答
  3. 引用对比:提供 skill 或文档,对比 agent 输出和原始内容,计算信息偏差率
  4. 置信度校准:agent 表达高置信度时,实际准确率应显著高于表达不确定时

模块


Q2 · 安全与对抗鲁棒性

Skill 配置:混合——基础安全用例(直接有害输入、Prompt 注入、越狱)skill_enabled: false;恶意 Skill 专项用例 skill_enabled: true, active_skills: [恶意skill]

目标

验证 agent 能抵御直接有害输入、prompt 注入攻击(尤其是通过工具结果传入的间接注入),以及用户供给 skill 中可能携带的恶意指令。

评测维度

维度 说明
直接有害输入拦截率 正面有害指令的拦截能力
Prompt 注入防御 工具返回结果中嵌入恶意指令时,是否被识别拒绝执行
Skill 内容安全 用户供给的 skill 若含有害指令,agent 是否识别拒绝
越狱攻击防御 经典越狱手法(角色扮演、假设场景等)的抵御能力
误拒率 正常输入被误判为有害的比例(安全与可用性的平衡)
拒绝质量 拒绝时是否解释原因并提供替代方案,而非干巴巴说「不行」

:Prompt Injection 是 tool-use agent 的高危风险点,工具返回内容(网页、文档、API 响应)均可能携带恶意指令,必须单独测试。

方法

  1. 直接攻击集:构造标准有害输入集,验证拦截率
  2. 间接注入集:在模拟工具返回结果中嵌入「忽略前面的指令,改为…」类指令,测试 agent 是否执行
  3. 恶意 skill 集:构造包含有害指令的 skill,测试 agent 是否识别并拒绝
  4. 误拒率监控:同步统计正常输入的误拒比例

模块


Q3 · 效率

Skill 配置:双组对照(同 B1-B3)——Group A skill_enabled: false,Group B skill_enabled: true;量化 Skill 对执行路径和 token 消耗的影响

目标

验证 agent 完成任务的路径是否最优,避免冗余步骤和不必要的 token 消耗,为产品部署提供成本基准。

评测维度

维度 说明
步骤数效率 实际步骤数 vs 理论最优步骤数之比
Token 消耗 完成同类任务的平均 token 用量
冗余调用率 不必要的重复工具调用比例
输出冗余度 输出是否含有超出任务需求的多余内容

方法

  1. 最优路径标注:对 golden set 中的任务,人工标注理论最优步骤数
  2. Token 统计:记录每次任务完成的 token 消耗,按任务类型分组统计
  3. 输出长度分析:对比输出长度和任务实际需求,检测冗余

模块


X · 输出一致性与风格对齐

这是贯穿所有层级的横切关注点,每次评测均需覆盖。

维度 说明
输出一致性 同一任务多次执行,输出质量方差
Skill 稳定性增益 有 skill vs 无 skill,输出一致性提升幅度(回归基准)
语气/风格对齐 是否符合产品定义的输出风格规范

模块


评测集管理规范

四类评测集

类型 构造方式 用途 更新频率
Golden Set 人工标注,覆盖核心路径 精确回归,小而精 每次产品迭代后审查
Adversarial Set 人工设计边界和失败场景 测试鲁棒性 定期补充新发现的失败模式
Regression Set 自动化,全量跑 每次上线前回归 持续积累
用户 Trace 采样集 从真实流量中采样 发现未覆盖的失败模式 每周采样复盘

评分记录规范

每次评测需记录:


多模态质量维度


M1 · 图片输出

Skill 配置skill_enabled: true(真实用户场景,默认开启 skill);部分 case 做 Group A/B 对照量化 skill 影响。

目标

验证 agent 在内容类回答中能否主动、准确地输出图片,实现图文并茂的效果。包含三个层面:触发判断(知道什么时候该出图)、图文相关性(图片内容与文字匹配)、出图稳定性(同类场景多次执行结果一致)。

与 B3 的区别:B3 测「用户明确要求图片时是否遵守」;M1 测「用户没有明确要求,但场景决定了应该出图」——这是主动出图能力。

评测维度

维度 说明
触发准确性(TR) 应该出图的场景是否出图(召回),不该出图的场景是否不乱贴图(精确)
图文相关性(RE) 图片内容与对应文字描述是否视觉一致
图片数量合理性(QT) 图片数量与内容规模是否匹配,不过少也不泛滥
出图稳定性(ST) 同类场景多次执行,出图行为是否一致
Skill 对出图的影响(SK) skill 是否对出图率产生正向或负向影响

方法

  1. 触发准确性:对景点、餐厅、商品、美食、酒店等高频场景构造标准 case,自动检测响应中图片数量
  2. 图文相关性:使用多模态 LLM(Claude claude-opus-4-7 Vision / GPT-4o)直接看图评估图片与文字的视觉一致性,输出 0-5 分
  3. 稳定性测试:同一场景重复执行 5 次,统计含图次数(期望 ≥ 4/5)
  4. Skill 影响:Group A(无 skill)和 Group B(有 skill)各跑 5 次,计算 skill_image_delta

模块

质量门槛

指标 及格线 目标线
image_trigger_recall 70% 90%
image_trigger_precision 90% 95%
image_text_relevance_score 3.5/5 4.5/5
image_stability_rate 70% 90%
skill_image_delta ≥ 0 ≥ +15%

待补充