LLM 评估系统地衡量 LLM 应用在正确性、相关性、安全性和连贯性等维度上的质量。 智能体评估扩展了 LLM 评估,能够评估自主 智能体的多步推理、工具选择、任务完成及其他能力.
评估能让工程团队确信他们的智能体和 LLM 应用确实运行良好:不仅是能否运行,还包括它们是否能产生正确、安全且有用的结果。随着智能体从原型走向生产关键型应用,评估对于维持质量和实现持续改进变得至关重要。
与传统软件不同,智能体和 LLM 应用是 非确定性的:相同的输入可能会产生不同的输出。这使得精确匹配测试显得力不从心。AI 评估使用 LLM 裁判、人工反馈和基于代码的指标,来评估代表性数据集中正确性、相关性、安全性和帮助性等维度的质量。
智能体、LLM 应用和 RAG 系统带来了传统软件测试无法解决的独特挑战
问题:智能体的输出是非确定性的,可能会包含幻觉或无关的回答。
解决方案:自动化的 LLM 裁判会对每一次回答在正确性、相关性和安全性等质量维度上进行持续评估。
问题:提示词变更、模型更新或数据漂移可能会在没有明显错误的情况下暗中降低质量。
解决方案:在部署前针对基准数据集运行评估,并在生产环境中持续评估,以便尽早捕获回归问题。
问题:多步智能体在工具使用、数据访问和控制流方面做出复杂的决策,这些决策很难理解和调试。
解决方案:端到端评估智能体轨迹,评估工具选择的准确性、推理质量和任务完成情况。
问题:智能体可能会产生有害、偏离主题或违反政策的输出,这些输出很难用静态规则捕获。
解决方案:使用 LLM 裁判来评估每一次回答的安全性、毒性和政策合规性。
LLM 评估侧重于衡量大语言模型及 LLM 驱动的应用的输出质量。这包括评估回答是否准确、是否与用户的问题相关、是否基于提供的上下文、是否不含有害内容以及是否对实现用户目标有帮助。
对于单轮 LLM 应用(内容生成器、摘要工具、翻译、分类),评估可以帮助您了解哪些提示词能产生最佳效果,在质量问题触及用户前将其识别出来,并长期跟踪质量变化。 LLM 裁判 使这一评估过程自动化,从而能够进行大规模评估,而无需对每个回答进行人工审核。
MLflow 的评估框架 针对常见的质量维度(安全性、正确性、相关性、依据性)提供了内置裁判,并提供了 API 来创建量身定制的自定义裁判,以满足您的特定需求和领域专业知识。
智能体评估将 LLM 评估扩展到了多步智能体系统。虽然 LLM 评估只评估单个回答,但智能体评估必须评估完整的轨迹:智能体如何对任务进行推理、它们选择哪些工具、它们如何处理错误,以及它们是否高效地实现了目标。
使用 LangGraph、CrewAI、ADK 或 Pydantic AI 等框架构建的智能体可能会表现出不可预测的行为:陷入循环、做出错误的工具选择或在多次运行中产生不一致的输出。智能体评估捕获完整的执行图,使您能够评估智能体是否选择了正确的工具、是否使用了正确的参数、是否能从错误中优雅地恢复,以及是否高效地完成了目标。
MLflow 支持智能体评估 通过基于轨迹的评分器来实现,该评分器评估智能体的完整路径,而不仅仅是最终答案。结合捕获每一步的 Trace 追踪,您可以调试智能体故障、优化提示词和工具选择逻辑,并确信智能体在生产环境中的行为是正确的。
理解智能体评估与 LLM 评估之间的区别对于选择正确的评估策略至关重要。虽然它们共享共同的基础,但在范围、指标和复杂度上存在显著差异。
| 方面 | LLM 评估 | 智能体评估 |
|---|---|---|
| 范围 | 单次输入/输出对 | 包含工具调用的多步轨迹 |
| 评估内容 | 仅评估回答质量 | 推理 + 工具使用 + 最终结果 |
| 核心指标 | 正确性、相关性、安全性、流畅性 | 工具调用准确性、任务完成度、效率、错误恢复能力 |
| 典型使用场景 | 摘要、翻译、单轮问答、内容生成、分类 | 聊天机器人、自主助手、代码智能体、RAG 系统、研究智能体、工作流自动化 |
| 失败模式 | 幻觉、不相关、不安全内容 | 无限循环、错误的工具选择、未完成的目标、低效的路径 |
| MLflow 评分器 | 安全性 (Safety), 正确性 (Correctness), 查询相关性 (RelevanceToQuery), 依据性 (Groundedness) | 工具调用效率 (ToolCallEfficiency), 角色遵从度 (RoleAdherence), 会话安全性 (ConversationalSafety), 自定义轨迹评分器 |
智能体和 LLM 评估不是一次性的活动。它是一个贯穿整个开发和部署过程的持续循环。以下是评估如何融入每个阶段的:
AI 评估解决了整个 AI 开发生命周期中的实际问题
一个全面的 AI 评估平台结合了六大能力
像 MLflow 这样现代的开源 AI 平台,使您能够以极少的代码轻松为智能体和 LLM 应用添加全面的评估功能。
只需几行代码,您就可以使用内置或自定义评分器针对数据集评估您的应用。评估结果会在 MLflow 中进行跟踪,您可以在其中比较版本、深入分析失败案例、收集人工反馈,并长期监控质量。您可以在开发过程中(测试新提示词)、部署前(全面基准测试)以及生产环境中(持续监控)进行评估。
以下是使用 MLflow 进行评估的快速示例。请查看 MLflow 评估文档 以获取全面的指南和特定于框架的示例。
使用内置裁判进行评估
import mlflowfrom mlflow.genai.scorers import Safety, Correctness, RelevanceToQuery# Evaluate your agent or LLM applicationresults = mlflow.genai.evaluate(data="my_eval_dataset", # Your evaluation datasetpredict_fn=my_agent, # Your agent or LLM appscorers=[Safety(), # Check for harmful contentCorrectness(), # Check factual accuracyRelevanceToQuery(), # Check response relevance],)# View results in MLflow UI or programmaticallyprint(f"Safety pass rate: {results.metrics['safety/pass_rate']}")print(f"Correctness pass rate: {results.metrics['correctness/pass_rate']}")
使用自定义 LLM 裁判进行评估
from mlflow.genai.judges import make_judgefrom typing import Literal# Create a custom judge for your specific criteriaconversation_quality_judge = make_judge(name="conversation_quality",instructions=("Analyze the {{ conversation }} for signs of user frustration, ""unresolved questions, incomplete answers, or factual errors. ""Consider the full context of the interaction."),feedback_value_type=Literal["high_quality", "medium_quality", "low_quality"],)# Use in evaluationresults = mlflow.genai.evaluate(data=eval_data,scorers=[conversation_quality_judge],)
使用自定义基于代码的指标进行评估
from mlflow.genai.scorers import scorer@scorerdef response_length(inputs, outputs):"""Check response is within acceptable length limits."""word_count = len(outputs["response"].split())return {"score": 50 <= word_count <= 500,"rationale": f"Response has {word_count} words",}@scorerdef contains_required_sections(inputs, outputs):"""Check response includes all required sections."""response = outputs["response"].lower()required = ["summary", "recommendation", "next steps"]missing = [s for s in required if s not in response]return {"score": len(missing) == 0,"rationale": f"Missing sections: {missing}" if missing else "All sections present",}# Use in evaluationresults = mlflow.genai.evaluate(data=traces_to_evaluate,scorers=[response_length, contains_required_sections],)

MLflow 评估 UI 显示结果,支持版本对比和失败分析
MLflow 是最大的开源 作为适用于智能体、LLM 和 ML 模型的 AI 工程平台,MLflow 每月下载量超过 3000 万次。成千上万家机构使用 MLflow 来调试、评估、监控和优化生产级的 AI 智能体和 LLM 应用,同时控制成本并管理对模型和数据的访问。MLflow 得到了 Linux 基金会的支持,并在 Apache 2.0 许可下开源,它提供了一个完整的评估解决方案,且不存在供应商锁定。 立即开始 →
在选择 AI 评估平台时,在开源与专有 SaaS 工具之间做出的抉择,对您的团队、基础设施和数据所有权有着深远的长期影响。
开源 (MLflow) 使用 MLflow,您可以保持对评估基础设施和数据的完全控制。您可以将其部署在自己的基础设施上,或在 Databricks, AWS 或其他平台上使用托管版本。没有按次评估的费用,没有使用限制,也没有供应商锁定。您的评估数据完全由您掌控,并且您可以根据自己的具体需求定制裁判和指标。
专有 SaaS 工具:商业评估平台虽然提供了便利,但牺牲了灵活性和控制力。它们通常按评估次数或按席位收费,在大规模使用时可能会变得非常昂贵。您的数据会被发送到他们的服务器,从而引发隐私和合规问题。您会被锁定在他们的生态系统中,从而难以更换供应商或自定义功能。
为什么团队选择开源:构建生产级智能体的机构越来越多地选择 MLflow,因为它在不牺牲数据主权、成本可预测性或灵活性的情况下,提供了企业级的评估。Apache 2.0 许可证和 Linux 基金会的支持确保了 MLflow 保持真正的开放和社区驱动,而不受单一供应商的控制。