Skip to main content
评估(“evals”)通过评估智能体的执行轨迹——它产生的消息和工具调用序列——来衡量其性能。与验证基本正确性的集成测试不同,评估根据参考或评分标准对智能体行为进行评分,使其在更改提示、工具或模型时对捕获回归很有用。 评估器是一个接受智能体输出(以及可选的参考输出)并返回分数的函数:
agentevals 包提供了用于智能体轨迹的预构建评估器。你可以通过执行轨迹匹配(确定性比较)或使用 LLM 评委(定性评估)来进行评估:

安装 AgentEvals

或者,直接克隆 AgentEvals 仓库

轨迹匹配评估器

AgentEvals 提供 createTrajectoryMatchEvaluator 函数来将你的智能体轨迹与参考进行匹配。有四种模式: 以下示例共享一个通用设置——一个带有 get_weather 工具的智能体:
strict 模式确保轨迹包含相同顺序的相同消息和相同工具调用,但允许消息内容不同。当你需要强制执行特定操作序列时(例如要求在授权操作之前先查询策略),这非常有用。
unordered 模式允许相同的工具调用以任意顺序出现。当你想验证检索到了特定信息但不关心顺序时,这很有帮助。例如,一个用不同工具调用检查城市天气和活动的智能体。
supersetsubset 模式匹配部分轨迹。superset 模式验证智能体至少调用了参考轨迹中的工具,允许额外的工具调用。subset 模式确保智能体没有调用参考之外的任何工具。
你还可以设置 toolArgsMatchMode 属性和/或 toolArgsMatchOverrides 来自定义评估器如何考虑实际轨迹与参考之间工具调用的相等性。默认情况下,只有具有相同参数和相同工具的工具调用被认为相等。访问仓库了解更多详情。

LLM 评委评估器

你可以使用 LLM 通过 createTrajectoryLLMAsJudge 函数来评估智能体的执行路径。与轨迹匹配评估器不同,它不需要参考轨迹,但如果可用的话可以提供一个。
如果你有参考轨迹,使用预构建的 TRAJECTORY_ACCURACY_PROMPT_WITH_REFERENCE 提示:
有关 LLM 如何评估轨迹的更多可配置性,请访问仓库

在 LangSmith 中运行评估

要随时间跟踪实验,将评估器结果记录到 LangSmith。首先,设置所需的环境变量:
LangSmith 提供两种主要方法来运行评估:Vitest/Jest 集成和 evaluate 函数。
使用你的测试运行器运行评估:
创建一个 LangSmith 数据集并使用 evaluate 函数。数据集必须具有以下 schema:
  • input{"messages": [...]} 用于调用智能体的输入消息。
  • output{"messages": [...]} 智能体输出中的预期消息历史。对于轨迹评估,你可以选择只保留 assistant 消息。
要了解更多关于评估智能体的信息,请参阅 LangSmith 文档