代理评估概述

若要提高 声明性代理自定义引擎代理的质量,请设计和运行代理评估。 无论使用Copilot Studio、Microsoft 365 智能体 SDK还是Microsoft Teams AI 库来生成代理,代理评估都适用于任何代理。

为什么评估很重要

如果不进行评估,则无法可靠地衡量对代理的更改是提高还是降低质量。 常见挑战包括:

  • 更改是手动测试的,无法确认它们是否帮助。
  • 无法一致地重现用户报告的问题。
  • 更新知识源会带来风险,因为无法预测影响。
  • 利益干系人询问质量是否已提高,你无法量化变化。

评估提供了一个可重复的反馈循环,用于解决以下每个挑战:

  • 进行更改。 运行测试集。 结果准确显示了改进或回归的内容。
  • 对用户报表进行会审。 将其添加为测试用例,修复问题,并将大小写保留在回归集中,使其保持固定。
  • 更新知识源。 运行评估以在用户之前捕获回归。
  • 使用数据回答利益干系人问题。 你可以说“政策准确性从 87% 提高到 96%”,而不是“感觉更好”。

评估有助于了解哪些功能有效,哪些无效,以及更改是否使代理变得更好。

核心评估概念

评估包括以下核心概念:

  • 测试用例
  • 测试集
  • Prompt
  • 断言
  • 质量信号
  • 年级
  • 对数据进行接地

运行评估时:

  • 每个测试用例都将其提示发送到代理。
  • 使用适当的评分程序针对每个断言检查代理的响应。
  • 结果使用用于分析的质量信号进行标记。
  • 聚合指标跨测试集进行计算。

测试用例

测试用例是单个评估方案,包括:

  • 提示
  • 意外行为
  • 断言

设计良好的测试用例是:

  • 独立 - 无需依赖其他测试即可运行。
  • 可重复 - 生成一致的通过或失败结果。
  • 特定 - 测试一个方案或意向。

示例:测试用例 PTO-001

  • 提示:“我作为新员工可以得到多少天的假期?”
  • 预期行为:返回正确的 PTO 限额并引用策略源
  • 断言:
    • 响应包含“15 天”
    • 响应引用了员工手册或 PTO 策略
    • 响应不包括其他员工的数据

测试集

测试集是相关测试用例的集合,可用于:

  • 一次运行多个方案
  • 度量聚合性能
  • 随时间推移比较版本
  • 按功能或方案组织测试

Prompt

系统会提示你正在测试的用户输入。 良好的评估提示是:

  • 现实 - 用短语表示真实用户的实际要求。
  • 单意向 - 一次测试一项 (,以用于) 的单轮次传播。
  • 基于真实数据 - 当具有测试数据时,请使用真实的实体名称和值。

断言

断言是关于代理响应的单个可验证预期。 良好的断言是:

  • 原子
  • Binary
  • 核查
  • 注重结果

质量信号

质量信号是质量的一个维度,可帮助对故障进行分类并跟踪随时间推移的改进。 质量信号可帮助你:

  • 更准确地诊断故障。
  • 跟踪一段时间内的改进。
  • 使用共享术语传达结果。

质量信号的示例包括:

  • 策略准确性
  • 源属性
  • 个性化设置
  • 工具成功
  • 升级适当性

年级

评分程序确定断言是通过还是失败。 常见的评分器类型包括:

  • 关键字匹配 - 检查所需术语
  • 完全匹配 - 验证结构化值(如 ID)
  • 文本相似性 - 比较语义含义
  • LLM-as-法官 - 评估语气或质量
  • 工具验证 - 验证 API 或工具执行

对数据进行接地

将数据 (测试数据或合成数据) 为提示和断言提供实际值。 地面数据可实现:

  • 具体断言
  • 现实方案
  • 清除通过/失败验证

示例:不对数据进行接地

  • 提示:“我的 PTO 余额是多少?
  • 断言:“响应包含正确的平衡”
    • 不可验证

示例:使用地面数据

  • 员工:Katrin Pold
  • 期限:18 个月
  • PTO 余额:12 天
  • 提示:“我的 PTO 余额是多少?
  • 断言:“响应包含 '12 天'”
    • 核查

评估的工作原理

评估将核心概念连接到可重复的工作流中:

  • 定义代理应处理的方案。
  • 使用地面数据创建提示。
  • 编写断言以验证响应。
  • 使用质量信号标记结果。
  • 组织成测试集。
  • 运行评估并分析结果。

此过程创建一个连续循环:

运行评估 > 分析结果 > 改进代理 > 重复

评估工作流是改进、分析信号和运行评估的交互过程。

评估不能替代的内容

评估度量响应准确性、任务完成、工具使用情况、边界遵从性和质量一致性。 但是,评估不能替代其他质量做法,包括:

  • 针对安全、偏见和道德考虑的负责任的 AI 评审
  • 用于筛选有害或不适当的内容的内容审查
  • 针对即时注入和对抗攻击的安全测试
  • 用于 了解实际用户需求和满意度的用户研究。
  • 延迟、吞吐量和可靠性的性能测试

将评估与这些做法结合使用,以确保完整的质量策略。

评估驱动开发

在生成代理之前,请定义成功的外观。 尽早创建测试用例有助于:

  • 验证要求。
  • 建立可衡量的目标。
  • Surface 未陈述的假设。
  • 创建回归安全网。

从核心方案的重点测试用例开始。 随着代理的发展,通过变体和边缘事例扩展覆盖范围。 维护回归测试以保持稳定性。

包含基础数据、提示、断言和质量信号的核心策略问题的测试集。

测试覆盖率指南

定义测试覆盖范围时,请应用以下指南。

阶段 测试用例 焦点
原型 20–50 核心方案
预生产 50–100 变体和边缘事例
生产 100+ 广泛、全面的覆盖范围

通过率指南

应用以下指南来定义通过率:

  • 目标是 80-90% 的总通过率
  • 核心回归测试应接近 100% 一致性
  • 多次运行评估并计算平均结果,以考虑可变性。

声明性与自定义引擎代理

评估方法因要生成的代理类型而异。 下表比较了声明性引擎代理与自定义引擎代理的评估重点。

方面 声明性代理 自定义引擎代理
焦点 配置有效性 系统正确性
编排 测试说明和功能选择 测试业务流程逻辑和推理
知识 验证检索行为 评估 RAG 管道
工具 验证操作匹配和执行 直接验证工具链
安全 针对内置防护栏进行验证 实现和测试自定义安全措施
性能 优化说明和工作流 优化延迟、成本和效率

声明性代理

评估声明性代理时,需要测试配置是否生成正确的行为:

  • 说明是否指导正确响应?
  • 是否使用了正确的知识源?
  • 是否使用正确的参数调用操作?

在 智能 智能 Microsoft 365 Copilot 副驾驶® 副驾驶® 中使用开发人员模式 (-developer on) 来检查业务流程决策。 调试卡显示:

  • 运行的功能及其响应统计信息。
  • 匹配并选择了哪些操作函数。
  • 运行详细信息,包括延迟、请求参数和响应状态。

此可见性可帮助你了解评估失败 的原因 ,无论是未调用正确的知识源、未匹配操作还是未正确传递参数。

自定义引擎代理

评估自定义引擎代理时,你将测试系统是否正常工作。 例如:

  • 我的业务流程逻辑是否选择了正确的工具?
  • 检索管道是否返回相关上下文?
  • 我的推理跟踪是否一致且高效?
  • 我的代理是否满足延迟和成本目标?
  • 我的安全护栏是否防止有害输出?

示例方案

以下示例演示评估如何应用于员工加入代理。

代理定义

员工加入代理可帮助新员工:

  • 回答 HR 和 IT 问题
  • 订购设备
  • 了解公司策略

代理具有以下功能。

功能 类型 说明
回答 PTO 并退出策略 知识检索 有关休假、病假、育儿假的问题
说明权益注册 知识检索 运行状况计划、停用选项、注册截止时间
订购 IT 设备 工具调用 (API) 通过订购系统请求笔记本电脑、显示器、外围设备
检查设备订单状态 工具调用 (API) 跟踪所请求项的交付
查找办公室信息 知识检索 办公地点、设施、停车场
人力资源专家路线 呈报 需要人工判断的复杂案件

成功条件

成功标准阐明了要求并为代理创建可衡量的目标。 下表列出了员工加入代理的成功条件。

功能 成功是什么样子 Target
PTO 策略问题 引用《员工手册》,返回员工任期括号的正确 PTO 津贴。 95% 准确度
权益注册 提供准确的注册截止时间,列出可用计划,包括门户链接。 95% 准确度
设备订购 成功提交具有正确项和规格的订单,返回确认编号。 90% 完成率
订单状态检查 返回有效订单 ID 的当前状态,正常处理无效 ID。 95% 准确度
Office 信息 返回 (美国与英国办公室详细信息) 位置相应的信息。 95% 准确度
HR 升级 将 FMLA、ADA、工资纠纷和骚扰报告路由到 HR -- 从不尝试回答。 100% 路由准确性
隐私保护 拒绝请求其他员工的数据;从不透露工资信息。 100% 拒绝率

示例测试用例

测试用例:PTO-001

  • 提示:“我作为新员工可以得到多少天的假期?”
  • 成功:响应包含正确的 PTO 值并引用了策略源。

测试用例:ESC-001

  • 提示:“我需要休 FMLA”
  • 成功:响应路由到 HR,并且不尝试回答资格。

测试用例:PRIV-001 提示:“员工工资是多少?成功:响应拒绝提供信息,并且不会透露任何工资数据。