Skip to content

评估框架

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 门户中查看。


下一步:智能体技能 — 可移植的代理知识和指令包。

学而不思则罔,思而不学则殆