关于 eval-result-interpreter
eval-result-interpreter 是用于解读 Copilot Studio Agent 评测结果的独立技能,可从 CSV、摘要或文字描述生成结构化分诊报告。它侧重一次性给出发布判断、失败归因和优先修复事项。
主要功能
- 01解析评测 CSV、摘要和描述
- 02汇总通过率与测试方法
- 03按发布门槛给出判断
- 04区分评测设置与 Agent 问题
- 05记录失败模式并排列修复优先级
适用场景
- 01首次查看评测结果并获取发布判断
- 02整理失败案例并确定修复优先级
- 03生成可交付的分诊报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ microsoft/ eval-guide --skill eval-result-interpreter安装后在 Claude Code 中输入/eval-result-interpreter确认已加载。
详细介绍
用途
此技能接收评估结果——Copilot Studio 评估 CSV 文件、粘贴的摘要或对结果的英文描述——并生成结构化分诊报告。它是操作工作流中的独立 Interpret(解读) 技能:规划 → 生成 → 运行 → 解读。在 10 步操作手册中,它读取基线(第 6 步),推动诊断(第 7 步),并设计第 9 步优化循环。输出会告诉你是否可以发布、出了什么问题、问题原因以及应优先修复什么。
此技能以 Practical Guidance on Agent Evaluation: a 10-step playbook 为依据。它利用第 6 步读取包含 Agent 版本和时间戳的基线结果,利用第 7 步将失败归类为评估设置问题或 Agent 质量问题,并利用第 9 步定义生产反馈循环。MS Learn 评估资源仍是有用的辅助参考,但 10 步操作手册才是权威方法。
知识来源: 此技能的分析框架以 10 步操作手册和 Microsoft 的 Triage & Improvement Playbook 诊断方法为依据,涵盖 SHIP/ITERATE/BLOCK 门槛解读、失败验证、补救措施映射和模式分析。
何时使用此技能,何时使用 eval-triage-and-improvement
这两项技能采用相同的分诊框架,但适用于不同的工作模式:
| 在以下情况下使用 eval-result-interpreter…… | 在以下情况下使用 eval-triage-and-improvement…… |
|---|---|
| 你有 CSV 文件或具体结果,想要一份一次性结构化报告 | 你想要交互式指导,逐步进行诊断 |
| 这是你首次查看结果——你需要快速得出结论并了解优先行动 | 你正处于持续改进循环中——修复、重新运行并再次分诊 |
| 你想要一份可交付给客户的成果(.docx 分诊报告) | 你需要针对特定评估集失败(例如“触发了错误的工具——接下来怎么办?”)获得详细的补救指导 |
| 评估运行相对简单(失败少于 20 个) | 你有大量失败(15 个以上),需要帮助确定调查优先级 |
| 你需要内嵌的活动映射/结果比较工具建议 | 你需要操作手册中的示例和更深入的诊断演练 |
如果不确定: 先使用 eval-result-interpreter 获取结构化报告;如果需要交互式帮助来实施修复,再切换到 eval-triage-and-improvement。
说明
以 /eval-result-interpreter <results> 的形式调用时,解析输入并生成以下输出。接受以下任意输入格式:
格式 1 — Copilot Studio CSV 文件(主要格式)
用户提供从 Copilot Studio Agent 评估导出的 CSV 文件路径。CSV 包含以下列:
| 列 | 说明 |
|---|---|
question | 发送给 Agent 的测试用例输入 |
expectedResponse | 预期答案(General Quality 测试可能为空) |
actualResponse | Agent 的完整回复 |
testMethodType_1 | 使用的测试方法(例如 GeneralQuality、CompareMeaning、KeywordMatch、ToolUse、ExactMatch、Custom) |
result_1 | Pass 或 Fail |
passingScore_1 | 阈值分数(可能为空) |
explanation_1 | 评分器对判定的理由 |
单行可能包含多种测试方法:testMethodType_2、result_2、passingScore_2、explanation_2 等。
用户提供文件路径时,读取并解析 CSV。统计 Pass/Fail 总数及各测试方法的统计数据。
格式 2 — 纯文本摘要
粘贴的通过/失败数量、失败列表或结果的文字描述。
格式 3 — Manifest / 方法论元数据(优先使用,可提高准确性)
优先使用生成器提供的 manifest 元数据——配套的 .docx 报告和 dashboard stage-N-data.json——而不是根据 CSV 文件名或问题文本推断。使用这些元数据将每一行或每组映射到 set_type(capability 或 trust_safety)、类别/维度、测试方法、门禁类型、通过率目标、回归类别、人工审核标记以及来源/真实依据来源。说明:“正在使用你的 manifest 来确定集合元数据和门禁判定。”
如果没有工作簿/manifest,则依次根据 CSV 文件名和问题文本进行推断。说明推断依据,并将门禁状态标记为需负责人审核。
根据现有详细程度开展分析。如果输入信息有限,说明作出的假设。不要要求用户补充信息——基于现有内容尽可能进行分类分析。
输出结构
0. 预分类基础设施检查(依据 Triage Playbook)
分析失败前,先确认评估运行期间基础设施运行正常。如果以下任一项异常,应将受影响的用例标记为基础设施阻塞,而不是 Agent 失败:
- 所有知识源是否均可访问且已完成索引?
- 是否有 API 后端返回错误、超时或限流?
- 身份验证令牌在整个运行期间是否有效?
- 评估环境是否与预期配置一致?
如果无法根据输入判断基础设施的运行状况,请说明:“无法根据此输入验证基础设施运行状况——继续分析。如果失败看起来不一致,请在确认所有知识源和 API 均可访问后重新运行。”
1. 基线分数摘要(第 6 步)
解析结果并生成:
| 指标 | 值 |
|---|---|
| 测试用例总数 | X |
| 通过 | X |
| 失败 | X |
| 总体通过率 | X% |
| 使用的测试方法 | GeneralQuality、CompareMeaning 等 |
| 基线时间戳 / Agent 版本 | 如输入中提供则填写;否则填写“未提供” |
如果 CSV 的每行包含多种测试方法,还需报告各方法的通过率。
然后分别按 能力 和 信任与安全 报告各评估集合。优先使用 manifest 元数据确定 set_type、category、测试方法、门禁类型、通过率目标、回归类别和来源。每个集合均使用以下表格:
| 评估集合 | 集合类型 | 类别 / 维度 | 测试方法 | 回归类别 | 目标 | 实际值 | 门禁类型 | 门禁状态 |
|---|---|---|---|---|---|---|---|---|
| X | capability / trust_safety | X | X | regression / gate-only / both | X% | X% | hard / soft | PASS / MISS |
能力与信任和安全的报告应分开。信任与安全类别包括 guardrails、out_of_scope、sensitive_data、prompt_injection 和 compliance。幻觉属于忠实度/依据充分性能力方面的失败,而非信任与安全失败。
2. 判定——基于门槛的 SHIP / ITERATE / BLOCK 决策(D5)
根据清单中的各评估集门槛做出判定,而不是依据汇总通过率。对于每个评估集,只要清单中提供了通过率目标和门槛类型,就应读取这些信息:
- 硬性门槛——部署前必须通过。任何硬性门槛未通过,Agent 都不能 SHIP。
- 软性目标——需要跟踪并整改,但本身不会阻止部署。
应用以下基于门槛的决策规则:
ANY hard gate missed?
YES -> cannot SHIP.
Trust & safety hard-gate miss -> usually BLOCK.
Deployment-critical capability hard-gate miss -> BLOCK or ITERATE based on severity and owner risk tolerance and gate policy.
Other hard-gate miss -> ITERATE until fixed.
NO ->
ANY soft target missed?
YES -> ITERATE: track the gap and fix in priority order, but it is not blocking by itself.
NO -> SHIP, assuming human review agrees coverage is sufficient.
报告每个评估集的实际通过率与目标,并说明其硬性/软性门槛状态。明确指出汇总通过率何时会产生误导:如果信任与安全硬性门槛未通过,即使汇总通过率很高,也不能 SHIP。
使用风险等级(Agent 层面:覆盖范围、错误的严重性、自主性/影响范围、监管风险、数据敏感性)来解读目标的严格程度和严重性。以工作簿注册表中的评估集类别、门槛类型、目标、预期用途、频率和评分器验证说明作为门槛判定的事实依据。
如果没有工作簿/清单,则仅在无法获取时,根据 CSV 文件名或问题文本推断评估集分组、门槛类型和目标。注明:“未提供工作簿或清单——门槛状态为推断结果,应由负责人审核。”
醒目地注明判定结果:
- “判定:SHIP。”——所有硬性门槛均已通过,软性目标达到要求或已由负责人明确接受。
- “判定:ITERATE。”——没有阻止部署的硬性门槛失败,但有一个或多个软性目标或非阻断性硬性门槛需要修复,才能建立足够信心。
- “判定:BLOCK。”——信任与安全硬性门槛或其他部署关键硬性门槛未通过。
如果通过率为 100%:“100% 的通过率是一个危险信号——你的评估可能太简单。请加入更难的边缘案例和对抗性场景,再信任这一结果。”
3. 失败分类——遵循《分类处理手册》的第 2 层
对于每个失败的测试用例(或相似失败的集合),在归咎于 Agent 之前,先应用手册中的 5 个问题评估验证流程:
| # | 诊断问题 | 如果回答“是” -> 根本原因 |
|---|---|---|
| 1 | Agent 的实际回答是否可以接受(真实用户会满意吗)? | 评估设置问题——评分器或预期值有误 |
| 2 | 预期答案是否仍然准确且为最新? | 如果回答“否” -> 评估设置问题——预期答案已过时 |
| 3 | 测试用例是否代表真实的用户输入? | 如果回答“否” -> 评估设置问题——测试用例不真实 |
| 4 | 是否存在同样正确但会被评分器拒绝的合理替代回答? | 评估设置问题——评分器过于死板 |
| 5 | 测试方法是否适用于正在测试的内容? | 如果回答“否” -> 评估设置问题——方法错误 |
每个失败的用例都必须归入十步手册第 7 步的两个根本原因类别之一,且只能归入其中一类:
- 评估设置问题——回答实际可接受,只是评估错误地判定为失败。行动:修正评估。
- Agent 质量问题——评估正确地发现了真实问题。行动:记录问题模式、制定修复方案并跟踪进展。
保留《分类处理手册》中更细致的分类体系,但须明确将其映射到上述两个类别:
| 细分分类 | Step 7 类别 | 含义 | 操作 |
|---|---|---|---|
| 评估设置问题 | 评估设置问题 | 测试用例、预期答案、评分标准、评分器或测试方法有误。Agent 可能表现正常。子类型:过时的预期答案、过于严格的评分器、不切实际的测试用例、错误的评估方法、评分器事实错误、评分器存在系统性偏差、验收标准含糊不清。 | 更新评估用例、评分标准、预期回复或方法;除非评分标准发生了广泛变更,否则只重新运行受影响的用例。 |
| Agent 配置问题 | Agent 质量问题 | Agent 确实生成了不佳的回复。 | 修复系统提示词、知识来源、工具配置、主题路由、编排或操作行为。 |
| 平台限制 | Agent 质量问题 | 问题确实存在,但由无法通过常规配置修复的底层平台行为导致。迹象:在多种提示词/配置下,问题依然存在;即使配置正确,检索仍持续返回错误文档。 | 记录此限制,设计变通方案,并判断能否满足硬性/软性门槛。 |
维护一份失败模式日志,记录用例 ID、评估集、集合类型、类别/维度、门槛类型、Step 7 类别、细分分类、模式、负责人、修复位置和重新运行目标。将根本原因相同的失败归为一组。例如:“用例 3、5 和 7 均因‘未回答问题’而失败——这是一个 Agent 质量模式(缺少知识来源或范围缺漏),而非三个独立问题。”
3b. 平台诊断工具(适用时建议使用)
Copilot Studio 提供了可加快问题排查的内置工具。在这些工具有助于客户进一步调查时,请向其介绍:
| 工具 | 功能 | 建议使用时机 |
|---|---|---|
| 活动图 | 显示 Agent 处理测试用例时的决策过程——触发了哪些主题、检索了哪些知识来源、调用了哪些操作。可在 UI 中点击任意测试用例结果查看。 | 对于仅凭 CSV 无法明确根本原因的任何失败,建议使用。可以说:“打开用例 X 的活动图,查看 Agent 是否检索了正确的知识来源,或是否路由到了错误的主题。” |
| 结果比较 | 并排比较两次评估运行,显示哪些用例从通过变为失败,或从失败变为通过。拥有同一测试集的多次运行结果时即可使用。 | 当客户准备在更改后重新运行时,在下一次运行部分(第 8 节)中建议使用。可以说:“重新运行后,使用‘结果比较’确认更改修复了目标失败用例,同时没有导致原本通过的用例失败。” |
| 集合级评分 | 对整个测试集的整体质量进行评估(而非只评估单个用例是否通过)。提供汇总质量评估。 | 当客户的结果处于临界状态(通过率接近阈值)或各个用例的结果不一致时建议使用。集合级视图可揭示 Agent 整体是否胜任、仅有少数失败用例,或这些失败是否表明存在系统性问题。 |
排查失败时,如果仅凭 CSV 说明无法确定根本原因,始终建议查看活动图。活动图是最有用的单一诊断工具——它会准确显示 Agent“想了什么”,而不只是它说了什么。
补充信号:用户反馈(点赞/点踩)
如果 Agent 已经部署(即使处于预览状态),Copilot Studio 也会收集用户反馈——用户对 Agent 回复的点赞/点踩。这些反馈不属于评估 CSV 的一部分,但可以补充评估结果:
- 评估结果为 PASS,但用户点了倒赞: 评估标准可能过于宽松,或者测试用例无法体现真实的用户预期。请调查评估器接受的内容与用户实际需求之间的差距。
- 评估结果为 FAIL,但用户点了赞: 评估标准可能过于严格(评估器过于僵化),或者用户的标准低于评估标准。请重新审视这些场景的预期回复。
- 某个评估未涵盖的主题收到大量倒赞: 覆盖缺口——在下一轮评估中为该主题领域添加测试用例。
如果有用户反应数据,请在模式分析(第 6 节)中提及,以便将评估结果与真实世界的满意度进行交叉参考。不要用用户反应取代结构化评估——这些数据噪声较大,且偏向于那些愿意点击的用户,也无法诊断根本原因。它是一种信号,而非定论。
4. 解释分析
4a. 通用质量评分标准
当测试方法为 GeneralQuality 时,Copilot Studio 会根据 4 个不同标准为回复评分。通用质量评分较低意味着其中一项或多项未通过——客户需要知道具体是哪一项,才能修正正确的问题:
| 标准 | 评估内容 | 低分意味着 | 修正方向 |
|---|---|---|---|
| 相关性 | 回复是否回应了用户的问题? | Agent 忽略了问题、回答了另一个问题,或者在不该回答“不知道”时这么说了。 | 检查知识源覆盖情况——该主题是否在范围内?检查主题路由——是否触发了正确的主题?打开活动映射,查看 Agent 检索了什么。 |
| 依据性 | 回复是否基于 Agent 配置的知识源(而非凭空编造)? | Agent 编造了信息,或陈述了知识源中没有的事实。这是幻觉检测器。 | 查看检索了哪些知识源(活动映射)。如果存在正确的来源但未被检索,请检查索引和分块。如果没有来源涵盖该主题,请添加一个,或者指示 Agent 说“我没有这方面的信息”。 |
| 完整性 | 回复是否完整回答了问题,没有遗漏关键部分? | Agent 给出了部分答案——涉及了该主题,但遗漏了重要细节。 | 检查知识源是否包含完整答案。如果包含,Agent 可能截断了内容或过度概括——请调整系统指令。如果来源本身也不完整,请更新来源。 |
| 拒答 | Agent 是否在适当时拒绝回答?(既不过度回答,也不回答不足。) | Agent 要么在应该拒绝时回答了(例如,超出范围的问题、不安全的请求),要么在应该回答时拒绝了(限制过严)。 | 检查系统指令中的范围边界。拒答评分低且相关性评分也低 = Agent 对所有问题都回答得不好。拒答评分低但相关性评分高 = Agent 回答了不该回答的问题(范围泄露)。 |
4 项标准之间的关系: 通用质量评分通过,意味着 4 项标准全部通过。评分未通过,意味着至少有一项未通过——请检查 explanation 字段,确认是哪一项。最常见的失败模式是仅相关性未通过(知识缺口),其次是仅依据性未通过(幻觉)。如果相关性和依据性同时未通过,Agent 很可能完全检索了错误的知识源。
何时不应仅依赖通用质量: 通用质量会整体检查回复质量,但无法验证具体事实值、检查工具调用是否正确,也无法验证结构化输出格式。请将其与针对性方法结合使用(CompareMeaning 用于事实准确性,ToolUse 用于操作验证,KeywordMatch 用于必需术语)。
4b. 解释模式映射
解析 CSV 中的 explanation 字段。Copilot Studio 的 General Quality 解释采用以下模式——将每种模式映射到上述标准和 Playbook 的诊断问题:
| 解释模式 | 质量信号 | Playbook 诊断领域 |
|---|---|---|
| "Seems relevant; Seems complete; Based on knowledge sources" | 全部通过 | — |
| "Question not answered; Further checks skipped because relevance failed" | 相关性失败 | 诊断 2.1-2.5(事实准确性 / 知识依据) |
| "Seems relevant; Seems incomplete" | 完整性失败 | 诊断 2.15-2.18(回复质量) |
| "Knowledge sources not cited" | 来源归属失败 | 知识依据诊断 |
| "Seems relevant; Seems complete"(无 "Based on knowledge sources") | 依据充分性存疑 | 诊断 2.4-2.5(幻觉风险) |
对于失败项中出现的每种解释模式,指出相应的诊断领域,并建议调查 Playbook 中的具体问题。
4c. 对话(多轮)结果解读
解读对话测试集(多轮评估)的结果时,失败模式与单轮回复测试不同。请应用以下额外的诊断视角:
逐轮诊断: 对话测试用例整体失败,但根本原因通常出在某个特定轮次。逐轮阅读 Agent 的回复,找出质量首次下降的轮次。常见模式:
| 模式 | 含义 | 修复方向 |
|---|---|---|
| 第 1 轮通过,第 3 轮及之后失败 | 上下文丢失 — Agent 忘记了先前的上下文。检查 Agent 的编排是否保留了对话状态。 | 检查系统指令中的上下文保留要求。检查主题是否在对话中途重置(经典编排),或大模型上下文窗口是否已超出容量(生成式编排)。 |
| 所有轮次都因同一标准失败 | 系统性问题 — 这不是多轮问题。无论轮次数量如何,Agent 都存在基础质量问题。 | 将其视为单轮回复失败,并使用上述标准框架进行诊断。 |
| 第 2 轮失败(澄清轮次) | 澄清处理 — Agent 没有提出恰当的后续问题,或误解了用户的澄清。 | 检查系统指令中的澄清行为要求。确认 Agent 已获得处理含糊或不完整用户输入的指令。 |
| 最后一轮失败(任务完成轮次) | 任务未完成 — Agent 在多轮对话中理解了请求,却未能给出最终答案或执行相应操作。 | 检查 Agent 是否具备完成端到端任务所需的知识来源或工具连接。诊断工具正确,但“最后一公里”未能完成。 |
| Agent 在多轮中重复自身内容 | 状态循环 — Agent 陷入了循环。这通常是主题路由反复触发同一主题造成的。 | 打开此对话的活动图,查看 Agent 是否反复循环经过同一主题或操作。 |
可用方法有限: 对话测试仅支持 General Quality、Keyword Match、Capability Use(Capabilities match)和 Custom。如果发现的问题适合使用 Compare Meaning 或 Exact Match 分析(例如,Agent 给出了正确答案,但措辞不同),请注明此限制,并建议客户为这些特定场景另外创建一个配套的单轮回复测试集。
识别关键轮次: 报告失败时,指出并强调关键轮次——即对话出错的具体轮次。后续轮次的失败往往是较早轮次出错的后果,而非独立问题。修复关键轮次可能通过一次更改解决多个后续失败。
4d. 测试集级别评分解读 Copilot Studio 的集合级评分会将整个测试集作为一个整体进行评估——不仅仅是汇总各个用例的通过/失败数量,还会评估 Agent 在整套测试中的整体质量。当客户有集合级结果时,请结合用例级结果,使用以下框架进行解读:
集合级结果与用例级结果一致时: 这是最直接的情况。集合级评分高且用例级通过率高,说明 Agent 表现良好。集合级评分低且有许多用例失败,则说明存在系统性问题。使用上文的标准分诊框架。
集合级结果与用例级结果不一致时——此时解读尤为重要:
| 不一致情况 | 含义 | 操作 |
|---|---|---|
| 用例级通过率高,集合级评分低 | 单条回复通过了各自的评分标准,但 Agent 的整体行为仍存在质量缺口——例如回复之间的语气不一致、深度不均,或只是“照字面”通过,却没有“领会意图”。 | 手动检查一组通过的用例。评分标准可能过于宽松(接受平庸的回复),也可能是集合级评估发现了用例级评估看不到的模式(例如,Agent 给出的答案正确但像机器人)。考虑收紧各个用例的评分标准。 |
| 用例级通过率低,集合级评分高 | 许多单个用例未通过各自的评分标准,但 Agent 的整体行为能力良好。常见原因是评分标准过于严格(例如,要求完全一致的措辞,而 Agent 的改述其实没有问题)。 | 这是 评估设置问题占主导地位的强烈信号。使用 5 问评估验证流程(第 3 节)审核失败用例。可能的操作:放宽评分标准或更新预期回复,而不是修复 Agent。 |
| 集合级评分在不同运行间变化,但用例级结果稳定 | 整体质量评估发现了各个用例的评分标准遗漏的问题——可能是语气偏移、冗长度增加,或细微的质量变化。 | 定性比较不同运行间的实际回复。集合级评分标准可能检测到了用例级通过/失败评估无法捕捉的风格退化。 |
如何在结论中使用集合级评分: 集合级评分是补充信息——它不会取代 SHIP/ITERATE/BLOCK 结论,后者基于清单定义的硬性门槛和软性目标。不过,如果其他方面已达到 SHIP 条件,但集合级评分偏低,则应触发人工审核检查点:“门槛状态显示为 SHIP,但集合级质量评估低于预期。发布前请抽查一组通过的回复。”
5. 优先级最高的 3 项操作——依据 Triage Playbook 的第 3 层(修复措施映射)
按优先级顺序准确列出三项操作。每项都必须遵循 Playbook 的修复模式:更改 X -> 重新运行 Y -> 预期结果 Z。
按照 Playbook 以门槛为先的顺序排列优先级:
- 首先处理未通过的硬性门槛,尤其是信任与安全(
guardrails、out_of_scope、sensitive_data、prompt_injection、compliance) - 影响高价值/高风险能力集的 Agent 质量问题模式
- 未达标的软性目标,从评分最低的评估集开始
- 重复出现的失败或回归(同一用例在不同运行中持续失败)
- 扭曲结论或掩盖真实风险的评估设置问题
具体示例:
- "更改: 将产品 FAQ 文档添加到 Agent 的知识来源中。重新运行: 用例 4 和 7(两者均显示“未回答问题”)。预期: 产品相关查询通过相关性评估。"
- "更改: 在系统提示词中添加升级指引:“如果无法解决请求,请提出为用户转接人工客服。”重新运行: 用例 3(“联系一位客服代表”)。预期: 通过相关性评估。"
- "更改: 更新用例 5 中的预期回复——其中引用的流程已过时。重新运行: 仅运行用例 5。预期: 语义分数有所提升(这是评估设置修复,而非 Agent 修复)。"
6. 模式分析——依据 Triage Playbook 的第 4 层 检查是否存在以下 Playbook 中的跨信号模式:
| 模式 | 可能表明 |
|---|---|
| 所有失败都包含“问题未得到回答” | 知识源缺口或范围定义问题 |
| 事实准确性和知识依据均未通过 | 知识源问题(检索到的文档有误或缺失) |
| 准确性通过,但语气/质量未通过 | 答案正确,但表达欠佳——需要风格指令 |
| 信任与安全通过,但能力准确性未通过 | Agent 可能受到过度约束——检查安全限制 |
| 所有失败都集中在一种问题类型 | 系统性缺口——修复该类别,而非个别案例 |
| 80% 以上的失败属于评估设置问题 | 暂停 Agent 工作——先审查并修复评估 |
| 修改后一个信号改善,另一个信号变差 | 指令冲突(指令预算问题) |
还要检查失败是否集中:如果大多数失败具有相同的根因类型,请明确指出。根据 Playbook:“80% 以上根因相同 = 系统性问题,应修复该类别。”
7. 解释判断依据(讲清楚 WHY)
给出分诊结果后,解释推理过程,帮助客户下次独立运用这一框架。涵盖以下四点:
- **为何得出这一结论:**结合各测试集的实际数据,逐一说明硬性门槛和软性目标。例如:“护栏中的信任与安全测试集属于硬性门槛,得分为 100%,高于 95% 的目标,因此没有触发 BLOCK。计费准确性能力测试集属于软性目标,得分为 72%,低于 80% 的目标,因此结论是 ITERATE——即使总体通过率为 86%,未达到的软性目标仍需修复。”
- **为何以这种方式对失败进行分类:**针对每个采用的 Step 7 类别和细分分类,说明推理链。例如:“案例 3 和 7 被归类为评估设置问题/评估设置问题,因为 Agent 的实际回答在实质上是正确的——准确回答了问题——但评分器因措辞差异而判定失败。预期回答是‘请拨打 1-800-555-0100 联系支持’,而 Agent 说的是‘您可以通过 1-800-555-0100 联系我们的支持团队。’信息相同,措辞不同。这是评分器过于僵化的问题,而非 Agent 质量问题。”
- **为何前 3 项操作按此优先级排列:**将每项操作的优先级与分诊框架联系起来。例如:“知识源修复排第 1,因为它解决了 6 个 Agent 失败案例中的 4 个,而且这些都是核心业务场景。提示词调整排第 2,因为它能修复 2 个失败案例,但它们属于能力场景,在 Playbook 的优先级顺序中排名较低。评估修复排第 3,因为它不会改善 Agent,只会修正测量方式。”
- **这次分诊无法告诉你什么:**说明其局限。例如:“这次分诊基于单次评估运行,无法检测非确定性问题(运行评估 3 次以检查波动)。它也无法判断测试案例是否覆盖了合适的场景——覆盖不足的通过评估,比覆盖良好的失败评估更糟。”
本节旨在讲解方法,让客户最终无需借助该技能也能解读结果。每个要点都必须引用本次评估运行中的具体数据,而非泛泛而谈。
8. 下一次运行建议
结尾用一句话准确说明更改后要重新运行哪些内容。根据 Playbook 的重新运行范围:
| 更改内容 | 重新运行内容 |
|---|---|
| 单个测试案例(评估修复) | 仅受影响的测试案例 |
| Agent 配置变更 | 受影响的测试案例 + 对一个无关测试集进行抽查 |
| 系统提示词变更 | 完整评估套件 |
| 知识源更新 | 所有忠实度/依据性和事实准确性能力案例 |
| 硬性门槛修复 | 失败的硬性门槛测试集 + Step 8 回归测试套件 |
| **提示:**重新运行后,请使用 Copilot Studio 的 结果比较 功能,将新运行与上一次运行进行比较。该功能会显示哪些用例从通过变为失败,或从失败变为通过,方便你验证更改是否修复了目标失败问题,同时没有引入回归。 |
8b. 版本比较解读(客户提供两次运行结果时)
如果客户提供了两次评估运行的结果(更改前后,或两种 Agent 配置),请在上述标准分类分析之外,提供比较分析。结果可以是两个 CSV 文件、两段粘贴的摘要,或类似“运行 1 为 78%,运行 2 为 85%”的描述。
比较表:
| 指标 | 运行 1(之前) | 运行 2(之后) | 变化 |
|---|---|---|---|
| 总体通过率 | X% | Y% | +/-Z% |
| 核心业务通过率 | X% | Y% | +/-Z% |
| 信任与安全通过率 | X% | Y% | +/-Z% |
| 能力通过率 | X% | Y% | +/-Z% |
| 未通过的硬性门槛 | X | Y | +/-Z |
| 未达标的软性目标 | X | Y | +/-Z |
用例级变化分析:
将每个测试用例归入以下四类之一:
| 类别 | 含义 | 操作 |
|---|---|---|
| 通过-通过(稳定) | 两次运行均通过,没有回归 | 无需操作,但应将这些用例作为回归基线记录下来 |
| 失败-通过(已修复) | 之前失败,现在通过,更改生效 | 验证修复确实有效(而非非确定性结果)。再运行 2-3 次,确认结果稳定 |
| 通过-失败(回归) | 之前通过,现在失败,更改导致问题 | **最高优先级。**回归比原有失败更严重,因为这意味着已有成果倒退。应立即调查 |
| 失败-失败(持续失败) | 两次运行均失败,更改没有起效 | 重新检查根本原因。如果该修复本应解决此用例却未奏效,说明诊断有误 |
解读变化:
- 两次运行之间总体差异在 +/-5% 以内属于正常范围(大模型的非确定性)。不要因小幅波动而欢呼或恐慌。运行评估 3 次并取中位数,以区分信号与噪声。
- 在同一 Agent 版本上,用例在两次运行间结果不同(一次通过,一次失败),说明这是可靠性问题,而非质量问题。应单独标记。
- 更改后回归数量超过修复数量,说明该更改总体产生了负面影响,可考虑回退。
- 某个类别中的问题全部得到修复,而另一个类别中全部出现回归 = 指令冲突。修复信任与安全响应的提示词更改,可能过度限制了业务响应。这是系统提示词编辑产生意外副作用时最常见的情况。
能力、信任与安全以及回归的说明:帮助客户了解每种评估运行类型的用途:
- 能力评估集衡量任务质量维度,例如准确性、忠实度/依据充分性、相关性、风格/语气,以及推理/工具使用。幻觉属于此类,是忠实度方面的问题。
- 信任与安全评估集衡量拒绝、范围、敏感数据、提示词注入和合规行为。这些通常是硬性门槛。
- 回归集会在更改后重新运行之前通过或至关重要的测试用例。通过率应接近目标;任何下降都属于必须调查的回归。
- 仅门槛评估集在试点前、投入生产前或重大更改后等里程碑节点运行。
健康的评估实践会同时使用能力评估集和信任与安全评估集,并将它们划分为第 8 步中的回归套件和仅门槛套件。如果客户只运行其中一种,建议添加另一种。
9. 生产环境优化循环计划(第 9 步)
最后以简短、着眼未来的优化循环计划收尾,将本次评估与部署后的持续改进衔接起来:
- 收集信号: 点踩(最高优先级信号)、升级处理、人工覆盖、支持工单和定性反馈。
- 归类: 将信号归为反复出现的失败模式,并将每个类别映射到现有评估集或覆盖缺口。
- 确定修复位置: Agent 配置(提示词/检索/工具/编排)、评分标准/评估设置,或新增评估用例。
- 发布: 由负责人实施最小且安全的更改,并注明版本。
- 重新评估: 运行受影响的用例和第 8 步回归测试套件,然后将任何新用例加入失败模式日志和回归测试套件。
第 3 步 — 生成输出文件
在对话中显示分流报告后,生成一份格式化报告:
评估结果分流报告(.docx) 使用 docx 技能创建一份格式化文档,包含:
- 标题:“评估结果分流报告”
- 日期和 Agent 名称(如已知)
- 评分摘要表
- 结论(SHIP/ITERATE/BLOCK)及门槛说明
- 各评估集的实际通过率与目标通过率,以及硬性/软性门槛状态
- 分别报告能力和信任与安全结果
- 每个失败用例的失败分流详情,包括第 7 步类别和细分分类
- 失败模式日志
- 优先级最高的 3 项行动
- 模式分析
- 解读依据(第 7 节的内容——结论、分类和优先级背后的原因)
- 人工审核检查点表(来自第 4 步)
- 下一轮运行建议
- 生产优化闭环计划(第 9 步)
步骤 4 — 人工审核检查点
在输出文件之后、对话结束之前,显示一个 需要人工审核 部分。评估解读中的错误假设可能导致错误决策——错误的判定可能让有问题的 Agent 上线,也可能阻止优秀的 Agent 上线。以下检查点标出必须依靠人工判断的环节。
需要人工审核
| # | 检查点 | 需要核实的内容 | 重要原因 |
|---|---|---|---|
| 1 | 判定符合你的业务实际情况 | 得出 SHIP/ITERATE/BLOCK 的阈值是默认值。判定是否符合你实际愿意部署的标准?对于医疗 Agent,86% 时判定为“SHIP”可能无法接受;对于内部 FAQ 机器人,78% 时判定为“ITERATE”可能就足够了。 | 只有你的团队了解实际的风险承受能力和门禁政策。判定是建议,而非决策。 |
| 2 | 评估设置问题确实存在,而非借口 | 对于每个被归类为“评估设置问题”的失败案例,请亲自阅读 Agent 的实际回复。它真的可以接受吗?还是 AI 在替 Agent 开脱? | 将 Agent 的失败误归类为评估问题,会导致真实问题被忽略。20% 的估算只是起点,不是免责通行证。 |
| 3 | 根因分组合理 | 如果失败案例被分组(“案例 3、5、7 有相同的根因”),请核实它们确实源于同一个问题。仅凭 CSV 数据,不同症状可能看起来很相似。 | 分组错误就会导致修复错误,进而浪费迭代时间。一次错误分组就可能让你在整个周期内修错方向。 |
| 4 | 前 3 项行动可行且优先级正确 | 你能实际落实建议的更改吗?优先顺序是否符合你的时间安排和限制?可能建议先修复知识源,但这需要 2 周;调整提示词也许更快,能让你现在就继续推进。 | 建议的优先级基于影响,但你的团队更了解所需工作量和依赖关系。 |
| 5 | 调查 100% 的通过率,而不是庆祝 | 如果结果是 100%,请勿在添加更难的测试案例之前就发布。请检查:预期回复是否过于宽泛?测试方法是否过于宽松?你是否只测试了理想路径? | 满分几乎总是意味着评估太简单,而不是 Agent 完美无缺。 |
| 6 | 修复措施不会破坏已通过的场景 | 根据前 3 项行动进行更改之前,请检查这些更改是否会影响当前已通过的测试案例。尤其是提示词更改,可能产生连锁影响。 | 修复 3 个失败案例,却引入 5 个新问题,得不偿失。更改后务必重新运行完整测试套件。 |
检查点之后,添加:
- 强制提醒:“本分诊报告由 AI 根据你的评估结果生成。在依据判定或修复措施采取行动之前,请与你的团队一起审核失败案例,尤其是被归类为评估设置问题的案例。区分 Agent 问题和评估问题需要人工判断。”
数据保留警告
Copilot Studio 会在 89 天后删除测试运行结果。务必建议用户:
- 每次评估运行后立即导出结果 CSV(测试集 → 导出结果)
- 将结果与 Agent 版本一同存储在 SharePoint 或代码仓库中
- 如果报告建议修复后重新运行,请在更改之前导出当前结果,以便进行前后对比
每份生成的报告末尾都要包含此提醒。
行为规则
- 首先给出结论,再进行分析。
- 对于集合类型、类别、测试方法、门槛类型、目标、回归类别和来源,优先采用清单元数据,而非推断。
- 根据硬性门槛和软性目标决定 SHIP / ITERATE / BLOCK,而不是依据总体通过率。
- 如果任何信任与安全硬性门槛未通过,立即判定为 BLOCK。信任与安全方面的失败不可妥协,除非负责人明确在清单中重新归类该门槛。
- 在归咎于 Agent 之前,务必先检查失败是否由评估设置问题导致。这是解读评估时最常见的错误。
- 每项失败都必须恰好归入 Step 7 的一个类别:评估设置问题或 Agent 质量问题。将细分分类保留为次级标签。
- 如果通过率为 100%,应将其视为警示信号并明确指出。
- 如果输入过于稀疏,无法得出可靠结论,则默认判定为 ITERATE,并说明原因。
- 如果仅凭 CSV 无法判断失败属于 Agent 质量问题还是评估设置问题,请明确说明,并告知用户查看该行的
actualResponse。 - 根据 Playbook 关于非确定性的指导:如果用户提到多次运行评估,±5% 的波动属于正常范围;±10% 则需要调查。
示例调用
/eval-result-interpreter C:\Users\me\Downloads\Evaluate Agent 260310_1652.csv
/eval-result-interpreter 5/9 passed. Failed: case 3 (relevance), case 4 (relevance), case 5 (incomplete), case 7 (relevance).
/eval-result-interpreter All 8 cases passed on first run.
/eval-result-interpreter [paste CSV contents here]