AgentEval
首个面向 .NET 生态的 AI Agent 评测工具包,集成 MAF,支持工具调用断言、RAG 质
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个面向 .NET 生态的 AI Agent 评测工具包,集成 MAF,支持工具调用断言、RAG 质
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:AgentEval 项目 Logo
想象这样一个场景:你和团队花了两周时间,基于 Microsoft Agent Framework(MAF)构建了一个客服 AI 助手,它能够调用搜索航班、查询订单、修改地址等工具。功能看起来一切正常,但上线后用户反馈"AI 经常调用错误工具"、"回复的航班信息根本不是真实数据"。你该如何系统地量化这些问题?
在 Python 生态中,开发者可以用 RAGAS、DeepEval、PromptFoo 这类工具对 AI 模型和 RAG 系统做量化评测。但如果你是一个 .NET 团队,一切代码都用 C# 编写,引入 Python 工具链意味着额外的环境隔离、进程间通信和部署复杂度——这正是 AgentEval 诞生的背景。
AgentEval 由 AgentEvalHQ 团队开发,是首个专门面向 .NET 生态的 AI Agent 评测工具包。它深度集成 Microsoft Agent Framework(MAF)和 Microsoft.Extensions.AI,提供了工具调用验证、RAG 质量评估、随机性评测、模型对比等全套能力,让 .NET 开发者能够在自己的技术栈内完成 AI Agent 的系统化质量评估,而无需引入异构语言工具链。
图2:AgentEval CLI 输出示例(Tool Chain 断言效果)
这是 AgentEval 最具差异化的能力。它允许开发者用流式 Fluent API 断言 AI Agent 的工具调用行为,包括工具名称、调用顺序、参数内容、执行时长、异常处理等维度。
一个典型的评测用例长这样:
result.ToolUsage!.Should()
.HaveCalledTool("SearchFlights", because: "must search flights before booking")
.HaveCalledTool("BookFlight", because: "booking follows search")
.InOrder(because: "search must precede booking")
.WithArgument("destination", "SEA", because: "user's destination is Seattle");
这种表达方式天然契合 .NET 开发者对 Fluent API 的熟悉感,比写 JSON 配置或 Python 脚本更直观。
AgentEval 提供了 13 个 RAG 评测指标,涵盖 LLM 评判(高成本高精度)、质量评估、Embedding 相似度(低成本快速)以及免费的召回率指标:
| 指标类型 | 代表指标 | 成本 | 适用场景 |
|---|---|---|---|
| LLM 评判 | Faithfulness、Relevance、Answer Correctness | $$$ | 生产环境抽检 |
| 质量评估 | Groundedness、Coherence、Fluency | $$$ | 安全验证 |
| Embedding 相似度 | Answer Similarity、Context Similarity | $ | 快速迭代 |
| 信息检索 | Recall@K、MRR | 免费 | CI/CD 集成 |
基于 OWASP LLM Top 10(10/10 全覆盖)+ MITRE ATLAS(8 项技术),内置 14 种攻击类型、264 个探针,支持 LLM-as-attacker 的多轮对话对抗(CREScendo、PAIR、TAP),以及针对工具调用 escalation 的专项测试。所有结果可导出为合规报告,覆盖 GDPR 和 EU AI Act。
AI Agent 的输出天然具有非确定性。AgentEval 内置了统计框架,支持对同一 Prompt 多次运行的输出分布进行量化分析,避免"碰运气通过"的评测假象。
支持将同一 Agent 在不同模型(GPT-4o、Claude、Llama 等)上的表现进行横向对比,并生成详细的评测报告。
AgentEval 采用清晰的分层架构,从底层接口到业务模块共分为以下几层:
Core Layer(核心接口层)
├── IMetric / IMetric<T> — 度量标准抽象
├── IEvaluableAgent — 被测 Agent 抽象
├── IEvaluationHarness — 评测运行器
├── IExporterRegistry — 导出器注册表
└── 工具类:MetricRegistry / ScoreNormalizer / RetryPolicy
Metrics Layer(度量层)
├── RAG Metrics(Faithfulness, Relevance, Context Precision/Recall...)
├── Agentic Metrics(ToolSelection, ToolArguments, TaskCompleteness...)
├── Embedding Metrics(Answer/Context/Query Similarity...)
├── Performance Metrics(Latency, Token Count, Cost...)
└── Red Team Metrics(14 attacks × 264 probes)
Compliance Layer(合规层)
├── GDPR Reporter
└── EU AI Act Reporter
Application Layer(应用层)
├── AgentEval.Cli(命令行工具)
├── AgentEval.MissionControl.Spa(React Web UI)
└── AgentEval.MAF(MAF 集成适配器)
源码结构中值得关注的亮点:
整体技术栈:C# + .NET 8/9/10 + ASP.NET Core + React + Vite + NuGet,遵循 SOLID 原则和接口隔离设计,扩展性强。
图3:AgentEval NuGet 包发布页
安装只需一行命令:
dotnet add package AgentEval --prerelease
AgentEval 支持全功能 Mock 模式——在不配置 Azure OpenAI 或 OpenAI 凭证的情况下,工具调用追踪、性能指标、对话流等核心功能均可正常运行。Samples 1-4、25-27 在 Mock 模式下完整可用,Samples 5-24 会优雅降级并提示需要凭证。
真实评测模式需要配置:
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
export AZURE_OPENAI_API_KEY="***"
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
Web UI(Mission Control)通过 docker-compose 一键启动,5 分钟内可访问本地评测控制台。
AgentEval 目前处于 Preview(实验性)阶段,官方明确警告"不要在生产环境或安全关键系统中使用"。具体局限包括:
随着 AI Agent 从研究走向生产,系统化评测能力正在成为 AI 交付质量的关键环节。Python 生态已有 RAGAS、DeepEval、PromptFoo 等成熟工具,但 .NET 领域的工具链长期空白。
AgentEval 的出现让 .NET 团队终于能在自己的技术栈内完成 AI 质量的量化评估,这对于以下场景尤为关键:
截至 2026 年,该项目持续活跃更新中,具备长期维护的潜力。但鉴于目前 Stars 基数较小(131),是否选择它取决于团队对 .NET 技术栈的依赖程度和对微软生态的认可度。