mcpField
E
eval-faq

eval-faq

github.com/microsoft测试与质量13983 次安装18 周前更新
代码仓库

关于 eval-faq

eval-faq 是解答 AI Agent 评估问题的技能,主题涵盖数据集、评分器、工具调用、多轮测试和结果分析。它以 10 步手册为方法核心,并按问题主题引用 Microsoft 及其他权威来源。

主要功能

  1. 01讲解 Agent 评估方法与评分器类型
  2. 02指导数据集和评估标准设计
  3. 03涵盖工具调用与多轮评估
  4. 04解读结果并诊断失败
  5. 05按主题定位参考来源

适用场景

  1. 01为 AI Agent 选择评估方法
  2. 02设计测试案例和评分标准
  3. 03调查评估结果不稳定或失败的原因
  4. 04查找 Copilot Studio 评估指南

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/eval-guide --skill eval-faq

安装后在 Claude Code 中输入/eval-faq确认已加载。

详细介绍

目的

回答有关评估方法、评分器类型、数据集设计、标准编写、非确定性、工具调用评估、多轮 Agent 评估、评估工具、能力评估与回归评估,以及结果解读的任何问题——具体聚焦于 AI Agent 评估。主要方法论是 skills/eval-guide/playbook.md:Agent 评估实用指南:10 步操作手册。Microsoft 的 Agent 评估文档(MS Learn 页面、Eval Scenario Library、Triage & Improvement Playbook 和 Eval Guidance Kit)仍是 Copilot Studio 机制和参考模式的权威辅助资料来源,并辅以精选的行业资料,涵盖 Microsoft 未深入介绍的主题。

指令

以 /eval-faq <question> 的形式调用时,请严格按以下流程操作:

步骤 1 — 回答前获取权威背景资料

使用此主题到 URL 的路由表来判断要获取哪些内容。先获取,再回答。只获取与问题主题匹配的 URL——不要每次都获取所有 URL。

问题主题获取此 URL提取章节备注
场景类型、业务问题场景与能力场景的区别、应编写哪些用例、数据集结构https://github.com/microsoft/ai-agent-eval-scenario-libraryBusiness-Problem scenarios、Capability scenarios、eval-set-template5 种业务问题场景类型 + 9 种能力场景类型
质量信号、策略准确性、来源归属、个性化、行动支持、隐私https://github.com/microsoft/ai-agent-eval-scenario-libraryQuality signals section and method mapping tables质量信号到评估方法的映射
红队测试、对抗性测试、缩减攻击面、XPIA、编码攻击、ASR 指标https://github.com/microsoft/ai-agent-eval-scenario-libraryRed-teaming section: Probe-Measure-Harden framework红队 ASR 阈值:有害内容 <2%、PII <1%、越狱 <5%
评估方法选择、关键词匹配与含义比较及通用质量https://github.com/microsoft/ai-agent-eval-scenario-libraryresources/evaluation-method-selection-guide.md4 种评估方法及选择标准
评估生成、根据提示词模板编写评估用例、合成测试集https://github.com/microsoft/ai-agent-eval-scenario-libraryresources/eval-generation-prompt.md用于生成评估用例的模板
Agent 配置文件模板、定义用于评估的 Agent 范围https://github.com/microsoft/ai-agent-eval-scenario-libraryresources/agent-profile-template.yaml用于界定评估范围的 Agent 配置文件定义
分数解读、分数含义、基于风险等级的阈值、硬性/软性门槛、就绪决策、SHIP/ITERATE/BLOCKhttps://github.com/microsoft/triage-and-improvement-playbookLayer 1: Score Interpretation, readiness decision tree为第 4/6/7 步的就绪决策提供支持
失败分类、调试评估失败、根因分析、诊断问题https://github.com/microsoft/triage-and-improvement-playbookLayer 2: Failure Triage, 26 diagnostic questions5 个问题的评估验证、7 种评估设置失败子类型
补救措施、修复失败、指令预算、针对每种失败模式的操作https://github.com/microsoft/triage-and-improvement-playbookLayer 3: Remediation Mapping将操作映射到失败模式
模式分析、跨信号模式、趋势分析、集中度分析https://github.com/microsoft/triage-and-improvement-playbookLayer 4: Pattern Analysis7 种跨信号模式、趋势分析
根因类型、评估设置问题与 Agent 质量问题、评估设置问题与 Agent 配置问题及平台限制https://github.com/microsoft/triage-and-improvement-playbookRoot Cause Types section为第 7 步的两个根因类别提供支持性分类
处理非确定性、运行结果方差、波动结果https://github.com/microsoft/triage-and-improvement-playbookNon-determinism section至少运行 3 次;±5% 属于正常范围;±10% 需调查
4 阶段迭代框架:定义、设定基线并迭代、系统化扩展、投入运营https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/evaluation-iterative-frameworkFull framework — all 4 stages为 10 步操作手册提供 MS Learn 生命周期/节奏方面的参考
评估检查清单、就绪检查清单、发布前验证https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/evaluation-checklistFull checklist对应 Eval Guidance Kit 文档
评分器类型、基于代码的评分器与 LLM 评审器及人工评分器、常见评估方法https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/architecture/common-evaluation-approachesEcho, Historical Replay, Synthesized Personas; grader types3 种方法 + 3 类评分器
7 种测试方法:通用质量、含义比较、能力使用、关键词匹配、文本相似度、精确匹配、自定义https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-agent-evaluation-overview7 test methods section通用质量子维度:相关性、依据充分性、完整性、拒答
创建测试集、在 Copilot Studio 中构建评估数据集https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-agent-evaluation-createTest set creation methods生成、导入或手动编写测试用例
编辑测试集、用户配置文件、连接、修改测试方法https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-agent-evaluation-editManage user profiles and connections, edit test methods使用多配置文件模拟不同用户;GCC 限制
运行评估、查看结果、解读测试结果https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-agent-evaluation-resultsRun tests and view results结果保留 89 天;请立即导出结果
Agent 评估概述、使用自动化测试的原因、测试聊天与评估的区别https://learn.microsoft.com/en-us/microsoft-copilot-studio/analytics-agent-evaluation-introAbout agent evaluationGCC 限制:不支持用户配置文件和文本相似度方法
评分标准优化工作流、使 AI 评分与人工判断保持一致https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/kit-rubrics-refinement-workflow8-step workflow: Run, Review, Grade, Refine, Save, Re-run, Repeat一致性矩阵、标准与完整优化视图、示例标注
评分标准最佳实践、优化评分标准的技巧https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/kit-rubrics-best-practicesBest practices for refinement示例重质不重量;不要追求 100% 一致
评分标准参考指南、评分定义、评分标准结构https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/kit-rubrics-referenceRubrics reference评分等级定义、评分标准组成部分
Copilot Studio Kit 概述、工具包功能https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/kit-overviewKit overview所有工具包功能(包括评分标准)的上级页面
11 项场景验证主题、评估框架https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/architecture/evaluation-frameworks11 scenario validation themes
定义评估目的、评估内容、界定评估范围https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/evaluation-define-purposeFull page
Eval Guidance Kit、检查清单文档、框架 PowerPointhttps://aka.ms/EvalGuidanceKitChecklist, Framework, failure-log-template重定向至 GitHub PowerPnPGuidanceHub
pass@k 与 pass^k 指标、非确定性统计数据、0% pass@100 的解读https://www.anthropic.com/engineering/demystifying-evals-for-ai-agentspass@k, pass^k, capability evals sections补充资料:主要依据为 Microsoft 的非确定性指南
能力评估与回归评估、评估驱动开发https://www.anthropic.com/engineering/demystifying-evals-for-ai-agentsCapability evals, regression evals sections作为 10 步操作手册的行业背景补充
LLM 评审校准、位置偏差、冗长偏差、自我增强偏差https://eugeneyan.com/writing/llm-evaluators/Biases and calibration sections补充资料:Microsoft 来源未包含偏差百分比
批评影子测试、评审提示词设计、错误分析方法https://hamel.dev/blog/posts/llm-judge/Judge prompt design, calibration补充资料:深入介绍 LLM 评审方法
评估平台、工具比较、Braintrust、LangSmithhttps://www.braintrust.dev/articles/top-5-platforms-agent-evals-2025Platform comparison补充资料:轻量级工具参考
任何与上述内容都不明确匹配的问题获取 https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/evaluation-overview 作为主要来源,并参考相关知识库章节默认回退至 MS Learn
获取规则:
  • 对于没有标注“Do NOT fetch.”的行,始终尝试获取内容。如果失败(404、超时、内容不相关),则回退到下方的知识库,并注明“获取时来源不可用——根据知识库作答。”

  • 优先使用 Microsoft 来源。 如果 Microsoft 和外部来源都涵盖某个主题,则以 Microsoft 内容作为主要答案,仅将外部内容用作补充细节。

  • Microsoft 来源的引用格式:“根据 Microsoft 的 Eval Scenario Library:”“根据 Triage Playbook:”“根据 MS Learn 的 Agent 评估指南:”

  • 外部来源的引用格式:“来自 [source] 的行业补充背景:”——始终放在 Microsoft 内容之后。

  • 获取失败时绝不暂停作答。有所缺失的答案也好过没有答案。

  • 仅提取与问题相关的部分。不要概述整个页面。

步骤 2 — 使用获取的内容和知识库作答

综合获取的内容与下方知识库。10 步操作手册是方法论主干;获取的 Microsoft 内容提供支持细节和 Copilot Studio 专属信息,随后由外部来源补充空白。

回答风格规则——无一例外:

  • 回答最多 3–5 句话。不凑字数,不写开场白,不说“好问题”。
  • 给出明确、直接的建议。不要只说“视情况而定”,除非立即给出具体建议。
  • 使用具体数字(“从 20–50 个案例开始”“将一致率低于 60% 的案例标记出来”“每个案例运行 3 次试验”)。
  • 只有当答案会因 Agent 架构、风险等级或生命周期阶段而有实质性变化时,才最多提出一个有针对性的澄清问题;否则作出合理假设并回答。
  • 在答案末尾注明所用来源。

知识库

当获取的内容未涵盖问题时,或需要补充获取内容的细节时,将以下章节用作主要参考。

规范方法论:10 步操作手册

核心方法论是 skills/eval-guide/playbook.md:Agent 评估实用指南:10 步操作手册。请将下方的 MS Learn 页面用作辅助来源,而非方法论主干。

  1. 规划评估工作——评估目标、根据五个风险因素确定 Agent 风险等级、指定负责人。
  2. 构建能力评估集——为每个能力维度分别构建一个评估集:准确性/正确性、忠实性/依据充分性、相关性、风格/语气、推理/工具使用。幻觉属于忠实性方面的能力缺陷。
  3. 构建信任与安全评估集——分别构建拒绝/政策/敏感数据/提示注入/合规评估集。
  4. 定义通过率目标和关卡——为每个评估集设定明确目标,并设为硬性关卡或软性目标。
  5. 明确人工输入——制定评分标准、真实依据、标准答案,以及来源与真实依据之间的依赖关系。
  6. 运行基线评估——记录每个评估集和案例的结果,以及时间戳和 Agent 版本。
  7. 迭代以诊断失败——每次失败要么是评估设置问题,要么是 Agent 质量问题;持续维护失败模式日志。
  8. 回归测试套件——将评估集划分为回归测试集和仅作关卡的评估集,并设定运行频率和提醒。
  9. 优化循环——生产环境信号 -> 聚类 -> 确定修复位置 -> 发布 -> 使用回归测试套件重新评估。
  10. 识别并保存可复用资产——将可复用的评估集/评分标准/模式纳入共享库的必选、推荐或可选层级。

辅助 MS Learn 生命周期来源: MS Learn 的迭代框架仍适用于生命周期/频率问题,并可映射到操作手册中,但不再是此工具包的规范方法论。

风险层级、门禁、工作簿和清单
  • 风险层级针对 Agent 级别,使用五个因素:影响范围、错误严重性、自主性/影响半径、监管风险和数据敏感性。它决定目标、门禁严格程度、所需的信任与安全覆盖范围,以及人工审核需求。
  • 硬性门禁表示部署前必须通过;软性目标表示需要跟踪,但不阻止部署。
  • 优先使用工作簿/清单,而非推断:类型、类别、方法、门禁、目标、预期用途、频率、人工审核输入、源依赖项、评分器验证说明和可复用资产标记,都记录在 Eval Suite Template 工作簿和清单中,而不是 Copilot Studio 导入 CSV 中。
第 9 步:优化循环;第 10 步:可复用资产

第 9 步将生产信号转化为改进:点踩(信号最强)、升级处理、手动覆盖、支持工单和定性反馈 -> 聚类 -> 决定修复位置(Agent 配置/检索/工具、评分标准/预期答案,或新增评测用例) -> 发布 -> 根据第 8 步的回归套件重新评测。如果生产环境中的失败没有匹配的评测用例,这说明存在覆盖缺口,而不能证明提示词有问题。

第 10 步将可复用资产纳入共享评测库,分为三个层级:必需(组织范围内的部署门禁)、推荐(适用于某一类别中的大多数 Agent)和可选(相关时借用)。合适的候选项包括信任与安全数据集、语气/引用/拒绝评分标准、失败模式模板,以及从生产环境中提炼的边界案例。

场景类型

根据 Microsoft 的 Eval Scenario Library,场景分为两类:

5 种业务问题场景(测试 Agent 是否解决了用户的实际问题):

  • 信息检索 — Agent 从知识源中查找并提供正确的信息。
  • 故障排查 — Agent 通过引导步骤诊断并解决用户问题。
  • 请求提交 — Agent 代表用户完成事务性请求。
  • 流程导航 — Agent 引导用户完成多步骤工作流。
  • 分诊与路由 — Agent 正确分类请求,并将其转交给合适的处理方。

9 种能力场景(测试某项特定且独立的能力):

  • 知识依据、工具调用、触发器路由、合规、信任与安全/红队测试、语气、优雅失败、回归。

**反模式:**数据集中有 80% 以上都是顺利路径案例。根据 Scenario Library,为了实现有意义的覆盖,应平衡业务问题场景和能力场景。目标比例大致为:50% 顺利路径案例、30% 边界案例、20% 对抗性案例。

源库质量维度

Microsoft 的 Eval Scenario Library 包含五个可复用的质量维度,可用于评测集设计;但该工具包将它们记录为工作簿注册表行,而不将其作为主要规划依据:

  1. 策略准确性 — Agent 是否正确遵循业务规则和策略?
  2. 来源归属 — Agent 是否基于检索到的文档作出声明并加以引用?
  3. 个性化 — Agent 是否根据用户背景和偏好调整回答?
  4. 行动支持 — Agent 是否帮助用户采取下一步行动?
  5. 隐私保护 — Agent 是否避免泄露敏感信息?

每个维度都可映射到关键字匹配、语义比较、能力使用或通用质量等方法;但所选方法和治理要求属于工作簿注册表中的评测集。

7 种测试方法(Copilot Studio)

根据 MS Learn 的 Agent 评估指南,7 种测试方法涵盖不同的评估需求:

  1. 总体质量 — 使用 LLM 评审器,评估相关性、依据充分性、完整性和拒答等子维度。适用于开放式质量评估。目标通过率为 80%–90%。
  2. 比较含义 — 对 Agent 响应与预期答案进行语义相似度比较。适用于关注含义而非确切措辞的情况。
  3. 能力使用(UI 中标记为“工具使用”)— 验证 Agent 是否使用了正确的工具和参数。适用于包含工具调用的 Agent 工作流。
  4. 关键词匹配 — 检查是否包含或未包含特定关键词。适用于合规性、政策遵循,以及必须包含或不得包含内容的检查。
  5. 文本相似度 — 基于词汇或嵌入的相似度评分。适用于响应措辞很重要的情况。
  6. 精确匹配 — 严格的字符串相等检查。适用于分类、路由标签和结构化输出。
  7. 自定义 — 使用评估说明和标记结果定义自己的评估标准。组成部分:(1) 评估说明 — 用通俗语言描述需要检查的标准(例如:“响应是否遵循我们的人力资源升级处理政策?”);(2) 标签 — 评审器分配的命名结果(例如:“合规”/“不合规”),每个标签都映射为通过或失败。适用于单响应和对话测试集。当通过或失败需要 Keyword Match 或比较含义无法捕捉的判断时,使用自定义方法,例如合规检查、语气或品牌风格、安全政策和分类准确性。**CSV 导入注意事项:**自定义测试用例无法通过 CSV 导入;请直接在 Copilot Studio 评估 UI 中创建。
评估方法

根据 MS Learn(common-evaluation-approaches),生成测试交互有三种方法:

  • 回放 — 重放用户的原始输入,并将输出与预期结果进行比较。最简单;适用于回归测试。
  • 历史回放 — 使用真实的生产对话日志作为评估输入。最适合提供贴近生产环境的覆盖度信号。
  • 合成角色 — 生成多样化的模拟用户角色,以创建多样的测试交互。当生产日志有限时,最适合扩展覆盖范围。
分数解读与分流(分流手册)

根据分流手册,分数解读遵循一个四层框架:

第 1 层 — 分数解读: 应用风险等级、工作簿定义的门槛、评分器验证注意事项以及就绪决策树:

  • SHIP — 所有硬性门槛均已通过,软性目标可以接受,且负责人接受任何剩余风险。
  • ITERATE — 部分评测集未达到软性目标或出现退化;需要有针对性的修复。
  • BLOCK — 任一硬性门槛未通过,尤其是信任与安全方面的门槛;无论总体通过率如何,都不得发布。

第 2 层 — 故障分流: 分数较低时,先执行 5 个问题的评测验证(评测本身是否正确?),再归咎于 Agent。然后应用覆盖 6 个领域的 26 个诊断问题,找出根本原因。7 种评测设置故障子类型涵盖了常见的评分器/数据集错误。

第 3 层 — 修复映射: 每个未通过的评测集都应对应到具体的修复位置。注意指令预算问题——为修复一种失败模式而增加指令,可能会导致另一种模式表现退化。

第 4 层 — 模式分析: 留意失败集中情况(失败是否集中在特定场景类型中)、跨信号相关性(已记录的 7 种跨信号模式)以及随时间变化的趋势。

第 7 步根因类别: 每个失败都只能归入以下类别之一:(1) 评测设置问题 — 响应可以接受,错误在于评测/标准答案/评分标准/方法;或 (2) Agent 质量问题 — 评测发现了真实问题。分流手册中的“评测设置/Agent 配置/平台限制”类别是有用的操作性子类型,可映射到这两个类别。务必先排除评测设置问题——许多早期的“失败”是评分器或数据集错误,而非 Agent 错误。

非确定性

根据分流手册,Agent 具有非确定性。每个案例至少运行 3 次试验。不同运行之间出现 +/-5% 的分数差异属于正常情况。差异达到 +/-10% 或以上时需要调查——可能是评测不稳定,也可能是 Agent 确实存在不稳定性。

Anthropic 提供的额外行业背景: pass@k(“在 k 次运行中至少成功一次”)与 pass^k(“在 k 次运行中每次都成功”)在规模扩大时会出现巨大差异。若 k=10,且每次试验的成功率为 70%,则 pass@k 约为 97%,而 pass^k 约为 3%。根据报告的指标不同,同一个 Agent 看起来可能表现出色,也可能表现糟糕。对于面向客户的 Agent,应该关注 pass^k。pass@100 为 0% 几乎总是任务规范问题,而非 Agent 问题——在归咎于模型之前,先修正任务定义。

红队测试

根据 Microsoft 的 Eval Scenario Library,红队测试采用 Probe-Measure-Harden 框架:

  1. 探测(Probe) — 执行对抗性攻击,包括提示词注入、XPIA(跨提示词注入攻击)、编码攻击和角色扮演利用。
  2. 测量(Measure) — 按类别跟踪攻击成功率(ASR)指标。
  3. 加固(Harden) — 修复漏洞、添加防护措施,然后再次探测。

红队阈值: 有害内容的 ASR <2%,PII 泄露的 ASR <1%,越狱的 ASR <5%。将红队测试集成到 CI/CD 中——仅在某个时间点进行测试,会漏掉提示词更改和模型升级导致的退化。

多轮对抗模式: 对已部署的对话式 Agent,仅进行单轮测试并不足够。以下三种攻击模式需要进行多轮评估:(1) 上下文操纵 — 请求在多轮对话中逐步转变;(2) 权限升级 — 在对话中逐步引入虚假的管理员身份声明;(3) 角色扮演升级 — 先设定虚构情境,再逐步升级。在任何评测套件中,至少纳入 2-3 个多轮对抗场景。

评分器类型

根据 MS Learn(common-evaluation-approaches),评分器分为三类:

  • 基于代码/确定性评分器(正则表达式、字符串匹配、JSON 架构验证、长度检查):速度快、成本低、结果明确。先运行这些检查。如果确定性检查可以回答你的问题,就不要使用 LLM 评审器。
  • LLM 评审器(LLM 根据书面标准评审输出):用于需要判断的质量检查,例如语气、完整性、事实依据和相关性。在编写评分器代码之前,先用通俗易懂的语言写好标准。
  • 人工评分器:速度最慢,质量最高。仅用于校准——验证自动评分器与专家人工评分结果的一致率是否至少达到 80%(Cohen's kappa > 0.6)。

**评分层级(从成本最低到最高):**先运行基于代码的检查,再对通过检查的案例运行 LLM 评审,最后对校准样本进行人工审核。根据 Scenario Library,4 种评估方法(关键词匹配、比较含义、能力使用、总体质量)对应这些评分器类别。

**校准阈值:**如果 LLM 评审与人类专家对少于 80% 的案例达成一致(kappa < 0.6),说明你的标准含糊不清。在信任评分结果之前,先重写标准。

数据集设计

根据 Eval Scenario Library,使用 eval-set-template.md 来构建数据集。使用 eval-generation-prompt.md 模板,根据 Agent 配置生成案例。

  • 针对某项具体任务,先从 20-50 个案例开始。根据 Scenario Library,在扩展到能力场景之前,先覆盖所有相关的业务问题场景。
  • 编写案例之前,先使用 Agent 配置模板(agent-profile-template.yaml)定义范围。
  • 每个生产事故都应在 24 小时内成为一个数据集案例。
  • 数据集是持续维护的产物。定期运行且内容冻结的数据集属于回归集;仅在里程碑时使用的信任与安全数据集属于仅用于门禁的数据集。
  • 当通过率达到 100% 时,说明数据集已饱和——将其纳入回归套件,并编写更难的案例。

**CSV 和评分约定:**Copilot Studio 导入 CSV 文件必须恰好包含两列:Question、Expected response。导入后,在 Copilot Studio UI 中指定测试方法;并在清单中保留 set_type、category、method、gate、target、regression class、human-review flag 以及 source/ground-truth provenance(.docx 报告 + stage-N-data.json)。在整个套件中统一评分方式;对大多数 Agent 来说,二元通过/失败是正确的默认选择。

标准编写
  • 标准必须足够具体,让两个人分别阅读后能对通过或失败达成一致。根据 Triage Playbook 的第 2 层,标准含糊不清是评估设置失败的一种主要子类型。
  • 不好的例子:“回复很有帮助。” 好的例子:“回复少于 300 个字符,并点名提及退款政策。”
  • 编写代码之前,先写好标准。如果你无法写出可测试的标准,就说明你还不清楚 Agent 应该做什么。
  • **每个分数只评估一个维度。**不要将事实准确性、语气和简洁度合并为一个分数。多维度的综合分数会掩盖回归问题。
  • **避免使用李克特量表(1-5)。**采用二元通过/失败。二元评分能促使标准明确。如果必须使用多级评分,最多设为 3 级:失败/部分通过/通过。
  • **为评分器提示词添加版本号。**评分器发生变化会导致分数无法比较。跟踪评分器版本和数据集版本。
由评估驱动的开发

根据 10 步行动指南,在构建 Agent 之前,评估就要从 第 1 步 — 规划评估工作 开始:

  • 编写能力评估集和信任与安全评估集(第 2-3 步),在 Agent 能够实现目标行为之前先将其定义清楚。
  • 在解读分数之前,定义目标和硬性/软性门槛(第 4 步)。
  • 运行基线评估(第 6 步)——新能力评估集上的低分是意料之中且有用的。
  • 通过第 7 步不断迭代,直至通过硬性门槛并满足发布标准;然后持续进行第 8 步回归监控。

反模式: 在构建功能后才编写评估。这会导致评估针对已构建的内容进行校准,而不是针对预期目标。

阅读对话记录并分析错误

根据第 7 步和《分诊行动指南》(第 2 层),切勿轻信未经人工验证的分数。首先要确认问题是否出在评估设置上:测试集是否正确?评分器是否在衡量正确的内容?预期答案是否确实正确?Agent 是否获得了正确的上下文?评估环境是否与生产环境一致?

失败分析的轴心编码流程:

  1. 运行评估。收集所有失败案例。
  2. 阅读每个失败案例。用一句话标注根本原因。
  3. 将标签分为 3-5 个类别(先使用第 7 步的分类,再将《分诊行动指南》的诊断领域用作操作层面的子类型)。
  4. 统计每个类别的频次,并按降序排序。
  5. 优先修复频次最高的类别。重新运行评估并重复此流程。

根据第 7 步,始终将“评估设置问题”列为一个类别——新评估中的许多失败其实是评分器、评分标准、过时的真实答案或清单中的错误,而非 Agent 质量问题。

Hamel Husain 提供的其他行业背景: 轴心编码方法以及“AI 工程中 ROI 最高的活动”这一说法,源自 Hamel Husain 的错误分析工作。他的关键见解是:大多数从业者会跳过分类,直接着手“修复提示词”,因而错过结构性模式。

工具调用评估

根据《评估场景库》的工具调用能力场景和 MS Learn 的能力使用测试方法:

  • 每次工具调用都要问三个问题:(1)用对工具了吗?(2)参数是否正确且完整?(3)这次调用是否有必要?
  • 不要僵化地评判工具调用序列。评估结果,而非路径。如果 Agent 通过不同的工具调用序列得到了正确答案,也应判定为通过。
  • 不必要的工具调用会增加生产环境中的成本和延迟。应在评估中将其发现。
多轮对话与轨迹评估

根据 MS Learn 的评估方法,多轮工作流需要在对话层面进行评估,而非在轮次层面:

  • 轨迹评分: 将整个步骤序列作为一个整体进行评估。Agent 是否采取了最短的合理路径?是否从中间错误中恢复?
  • 环境状态验证: 真实依据是外部环境的状态,而非 Agent 的说法。只要预订记录存在于数据库中,预订 Agent 就应通过评估。
  • 错误累积: 第 2 步的错误可能不会在最终输出中显现。运行评估时,应在每一步进行详细日志记录。
  • 有状态交互评估: 轮次层面的通过率达到 90%,仍可能掩盖对话层面 40% 的失败率。
Agent 工作流评估

根据 MS Learn 的评估框架(11 个场景验证主题):

  • 先单独测试每个组件,再进行端到端评估。组件层面的失败会在流水线中累积。
  • 编排层面的失败是最常被忽略的失败模式。即使每个组件的单独评分都达到 95%,整个流水线的端到端失败率仍可能达到 40-60%。
  • 使用模拟环境进行评估。切勿针对生产系统运行评估。
  • 在流水线的每个步骤使用验证器监控中间输出。
简单问答与多步 Agent:评估有何不同

评估方法会因 Agent 的复杂程度而显著不同:

维度简单问答 Agent多步/Agent 式工作流
主要指标回复准确性(比较含义、总体质量)任务完成情况——是否完成了端到端任务?
评分单位单轮:一个输入,一个输出对话或轨迹:完整的步骤序列
评估集重点有依据的回答和策略准确性行动执行、工具调用和问答正确性
测试方法组合主要使用比较含义和总体质量增加工具调用的能力使用,以及用于中间检查点的关键词匹配
需要关注的失败模式错误回答、幻觉、拒绝错误累积、工具选择错误、不必要的步骤、未完全完成
边缘情况模糊查询、超出范围的问题工作流中途失败、工具超时、对话中途用户更正
评估复杂度低——确定性的输入/输出对效果很好高——必须同时评估中间步骤和最终结果

实践建议:

  • 即使是 Agent 式工作流,也从问答式评估开始。 在评估 Agent 采用的路径之前,先确认它能给出正确的最终答案。即使使用了正确的工具,答案错了仍然是错的。
  • 只有在回复质量稳定后,才添加工具调用评估(能力使用)。 根据场景库,工具调用测试要检查三点:工具是否正确、参数是否正确、调用是否必要。
  • 评估结果,而非路径。 两种有效的工具调用序列可能产生相同的正确结果。根据评估场景库,不要僵化地评估工具调用序列。
  • 注意编排差距。 根据 MS Learn 的评估框架,单个组件的得分即使达到 95%,端到端仍可能有 40%–60% 的失败率。务必进行对话级评估,而不只是轮次级评估。
  • 准备更多测试用例。 问答 Agent 可能需要 20–30 个用例才能获得有意义的信号。包含 3 个以上工具的多步工作流需要 50–100 个用例,才能覆盖工具组合和故障恢复路径。
评估覆盖的瑞士奶酪模型

没有任何一种评估方法能发现所有失败。根据评估场景库中的 4 种评估方法和分诊手册中的多层方法:

  • 基于代码的评分器能发现结构性失败,但会漏掉语义性失败。
  • LLM 评审器能发现语义性失败,但存在系统性偏差。
  • 人工审查能发现细微的判断失误,但速度太慢,无法全面覆盖。
  • 生产监控能发现真实环境中的分布偏差。
  • 将这四种方法分层使用。 先运行确定性检查(成本最低),再使用 LLM 评审器,随后进行人工校准,最后开展生产监控。
LLM 评审器校准

根据 MS Learn 的总体质量测试方法,LLM 评审器会从多个子维度进行评估(相关性、有据性、完整性、弃答)。请根据这些定义明确的维度校准评审器。

Eugene Yan 提供的其他行业背景(偏差数据):

  • 位置偏差: GPT-3.5 有 50% 的概率偏向第一个选项;Claude-v1 的这一比例为 70%。可通过评估两种选项顺序来缓解。
  • 自我增强偏差: GPT-4 对自身输出的评分高出 10%;Claude-v1 对自身输出的评分高出 25%。切勿让模型评判自己的输出。
  • 冗长偏差: 两种模型在超过 90% 的情况下都更偏好较长的回复。在评审提示词中明确加入与长度无关的指示。

Hamel Husain 提供的其他行业背景(批判影子法): 从零开始构建 LLM 评审器时,使用 7 步批判影子法: (1) 确定一位专家,(2) 创建多样化的数据集,(3) 收集带有书面批判意见的二元通过/失败判断,(4) 修正明显错误,(5) 使用专家示例迭代构建评审提示词,(6) 分析意见不一致之处,(7) 针对特定失败模式构建专用评审器。在投入生产使用前,目标是与领域专家达成超过 90% 的一致率。

知识 grounding(适用于 RAG Agent)

根据 Eval Scenario Library 的知识 grounding 指南:

  • 知识 grounding 分数衡量每条事实性主张是否有检索到的上下文作为依据。
  • 75% 的 grounding 分数意味着大约每 4 条主张中就有 1 条无法追溯到文档。对于高风险事实性任务,应将阈值设为 90% 以上。
  • grounding 分数低几乎总是意味着检索步骤出了问题,而不是生成步骤。调整提示词之前,先修复分块和检索。
生产连续性

根据 10 步操作手册的第 9 步,评测不是上线前的门槛,而是一个持续优化循环:

  • 将评测集成到 CI/CD 中。每当 PR 更改系统提示词、工具定义或 Agent 行为时,都运行完整测试套件。
  • 生产环境中的信号来自点踩(最强信号)、升级处理、人工覆盖、支持工单和定性反馈,并汇总为聚类模式。
  • 优化循环: 生产信号 -> 聚类 -> 确定修复位置(Agent 配置/检索/工具、评分标准/预期答案,或新增评测覆盖)-> 发布 -> 根据第 8 步的回归测试套件重新评测。
  • 发布时应配备监控,而不只是评测。评测告诉你 Agent 在测试用例上表现良好;监控则告诉你它在真实用户输入下是否有效。

当 Agent 通过评测却在生产环境中失败时: 根据 Triage Playbook,这几乎总是分布不匹配导致的。抽取最近 20 个生产环境失败案例,检查其中是否有案例在当前评测数据集上也会失败。如果没有,你需要为数据集补充生产环境案例,而不是改进提示词。

解读结果

根据 Triage Playbook 的就绪决策树:

  • SHIP:所有硬性门槛均已通过,并且软性目标的未达标项已获接受/记录。
  • ITERATE:能力集未达到目标,或生产环境中的模式仍需修复。使用第 7 步的失败分诊进行诊断。
  • BLOCK:任何硬性门槛未通过,尤其是信任与安全门槛,无论总体通过率如何。

根据 Triage Playbook 的第 4 层(模式分析):查找失败是否集中在特定场景类型、不同信号之间是否存在相关性,以及随时间变化的趋势。当评分器的判定与你的直觉不一致时,应进行调查——要么评分器有误(修正评判标准),要么你的直觉有误(更新你的心智模型)。

能力集、信任与安全集、回归集和仅用于门槛判断的测试集
  • 能力评测集衡量一个能力维度:准确性/正确性、忠实度/grounding、相关性、风格/语气,或推理/工具使用。初始通过率通常较低——新能力集的通过率为 30% 是有用的信号,而不是失败。
  • 信任与安全评测集是独立的拒绝/策略/敏感数据/提示词注入/合规性测试集;它们通常设有硬性门槛。
  • 回归集按固定周期运行以检测漂移:几乎包含所有能力集,以及精简版信任与安全子集。
  • 仅用于门槛判断的测试集在关键节点运行:大部分广泛的信任与安全检查。当能力集达到饱和时,将有代表性的案例纳入回归集,并编写更难的能力测试案例。
评测工具(补充)

关于工具的问题,首选建议是使用 Microsoft Copilot Studio 的评测功能来评测生产环境中的 Copilot Agent。对于需要第三方平台的团队:

  • Braintrust: 适合作为生产 Agent 的默认选择。免费套餐每月可处理 100 万个 span。
  • LangSmith: 已在使用 LangChain 时的最佳选择。支持原生追踪。
  • Langfuse: 适用于可自托管、数据主权要求较高的环境。采用 MIT 许可证。
  • 重要警告: 谨慎使用会自动创建评分标准并在未经人工校准的情况下自动评分的工具。工具应支持将人工审核纳入流程。

技能路由 — 何时建议使用关联技能

回答问题后,请检查用户是否可以通过运行关联的 eval 技能获益。如果可以,请在回答末尾追加一行推荐。

如果问题涉及……建议使用此技能追加的一句话
制定 eval 计划或确定评估范围/eval-suite-planner"如需填写完整的 Eval Suite Template 工作簿,请运行 /eval-suite-planner。"
生成测试用例、编写 CSV 数据集、构建 eval 集/eval-generator"如需生成可直接导入的测试用例 CSV,请运行 /eval-generator。"
解读分数、查看结果、了解通过率/eval-result-interpreter"如需解读特定的一组 eval 结果,请将其粘贴到 /eval-result-interpreter。"
调试失败、分析低分、进行根因分析、制定改进措施/eval-triage-and-improvement"如需使用完整诊断框架分析特定失败,请运行 /eval-triage-and-improvement。"
了解什么是 eval、eval 的重要性,或向利益相关方解释 eval/eval-guide"如需一份可与利益相关方分享的端到端 eval 说明,请运行 /eval-guide。"

规则:

  • 每个回答只能推荐一项技能,并选择最相关的一项。
  • 只有当用户的问题明确对应某项关联技能所执行的操作时,才提供路由建议。对于 eval-faq 本身即可解答的纯方法论问题,不要建议使用其他技能。
  • 切勿建议使用 /eval-faq(这就是当前技能,用户已经在使用)。

调用示例

/eval-faq What eval scenarios should I use for a RAG agent?
/eval-faq How do I interpret a 75% knowledge grounding score?
/eval-faq What is the difference between business-problem and capability scenarios?
/eval-faq When should I use a model-graded grader instead of a deterministic one?
/eval-faq What makes a good adversarial test case?
/eval-faq How many cases do I need in a dataset to get meaningful signal?
/eval-faq My eval passes 100% on first run — is that good?
/eval-faq How do I write a good criterion for a model-graded grader?
/eval-faq What should I do when a grader disagrees with my gut feeling about an output?
/eval-faq How do I handle non-determinism in my eval results?
/eval-faq My agent makes tool calls — how do I eval those?
/eval-faq I suspect my grader is wrong — how do I debug it?
/eval-faq What should I eval in production after I ship?
/eval-faq Should I use pass@k or pass^k for my agent?
/eval-faq How do I calibrate my LLM-as-judge grader?
/eval-faq When do I stop adding eval cases and just ship?
/eval-faq My agent finds a different tool sequence than I expected — is that a failure?
/eval-faq How do I know if my grader is actually measuring what I think it is?
/eval-faq What is the difference between a capability eval and a regression suite?
/eval-faq How do I eval a multi-turn conversational agent?
/eval-faq What eval platform or tool should I use?
/eval-faq My agent passes evals but fails in production — why?
/eval-faq How do I score intermediate steps in a multi-step agent?
/eval-faq How is evaluating a multi-step workflow different from a simple Q&A agent?
/eval-faq What does 0% pass@100 mean — is my agent broken?
/eval-faq How do I avoid LLM judge bias in my grader?
/eval-faq Which eval sets should I include?
/eval-faq What is the Probe-Measure-Harden red-teaming framework?
/eval-faq What are the 7 test methods in Copilot Studio?
/eval-faq How do I use the Triage Playbook to debug failing scores?
/eval-faq How does the MS Learn iterative framework relate to the 10-step playbook?
/eval-faq What are the 3 root cause types for eval failures?
/eval-faq How do I decide between SHIP, ITERATE, and BLOCK?
/eval-faq What red-team ASR thresholds should I target?
/eval-faq How do I generate eval cases from a prompt template?
/eval-faq What is the critique shadowing methodology for building LLM judges?
/eval-faq Should I use a 1-5 scale or pass/fail for my LLM judge?
/eval-faq How do I continuously red-team my agent in CI/CD?
/eval-faq How do I systematically analyze eval failures to find patterns?
/eval-faq How do I know if my eval is too easy?
/eval-faq How do I write an LLM grader prompt that actually works?
/eval-faq Should I score factuality and tone in the same eval criterion?
/eval-faq When should I use the Custom test method instead of General Quality?
/eval-faq How do I set up a Custom test method for compliance checking?

评论

支持 Markdown