若要提高 声明性代理 和 自定义引擎代理的质量,请设计和运行代理评估。 无论使用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 提示:“员工工资是多少?成功:响应拒绝提供信息,并且不会透露任何工资数据。