评估框架
Agent Framework 包含内置的评估框架,可用于衡量 Agent 质量、安全性和正确性。
设计原则
| 原则 | 说明 |
|---|---|
| 与提供程序无关 | 核心评估类型和业务流程函数适用于任何评估提供程序 |
| 零摩擦 | 从"我有 Agent"到"我有一个评估结果",只需最少代码 |
| 渐进式披露 | 简单方案接近零代码,高级方案基于同一基元构建 |
核心概念
| 类型 | 用途 |
|---|---|
EvalItem | 要评估的单个项——包装完整对话,通过拆分策略派生查询/响应 |
Evaluator | 对项目评分的提供程序——本地检查、Azure AI Foundry 或自定义实现 |
EvalResults | 评估运行的聚合结果——通过/失败计数、逐项详细信息和可选门户链接 |
评估器实现 IAgentEvaluator 接口,通过 AIAgent 上的扩展方法提供业务流程调度。
本地评估器
LocalEvaluator 无需 API 调用即可在本地运行检查——非常适合内部循环开发、CI 冒烟测试和快速迭代。
内置检查
csharp
using Microsoft.Agents.AI;
var local = new LocalEvaluator(
EvalChecks.KeywordCheck("weather", "temperature"),
EvalChecks.ToolCalledCheck("get_weather"));自定义函数评估器
csharp
var local = new LocalEvaluator(
// 仅检查响应文本
FunctionEvaluator.Create("is_concise",
(string response) =>
response.Split(' ').Length < 500),
// 对比预期输出
FunctionEvaluator.Create("mentions_city",
(string response, string? expectedOutput) =>
expectedOutput != null &&
response.Contains(expectedOutput,
StringComparison.OrdinalIgnoreCase)),
// 访问完整 EvalItem
FunctionEvaluator.Create("used_search",
(EvalItem item) =>
item.Conversation.Any(m =>
m.Text?.Contains("search",
StringComparison.OrdinalIgnoreCase)
== true))
);Azure AI Foundry 评估器
FoundryEvals 连接到 Azure AI Foundry 的评估服务,进行基于云的 LLM即评评估:
csharp
using Microsoft.Agents.AI.AzureAI;
var foundry = new FoundryEvals(chatConf, ...);结果可通过仪表板和比较视图在 Foundry 门户中查看。
下一步:智能体技能 — 可移植的代理知识和指令包。