agentevals 包为智能体轨迹提供了预构建的评估器。您可以通过执行轨迹匹配(确定性比较)或使用 LLM 评判(定性评估)来进行评估:
安装 AgentEvals
轨迹匹配评估器
AgentEvals 提供了createTrajectoryMatchEvaluator 函数,用于将您的智能体轨迹与参考轨迹进行匹配。共有四种模式:
| 模式 | 描述 | 使用场景 |
|---|---|---|
strict | 消息结构和工具调用顺序完全匹配(消息内容可以不同) | 测试特定序列(例如,在授权前进行策略查找) |
unordered | 消息结构和工具调用与参考相同,但工具调用可以按任意顺序发生 | 验证信息检索,当顺序无关紧要时 |
subset | 智能体仅调用参考中的工具(无额外调用) | 确保智能体不超过预期范围 |
superset | 智能体至少调用了参考中的工具(允许额外调用) | 验证已执行了所需的最少操作 |
get_weather 工具的智能体:
严格匹配
严格匹配
strict 模式确保轨迹包含完全相同的消息和相同顺序的工具调用,但允许消息内容存在差异。这在需要强制执行特定操作序列时非常有用,例如要求在授权操作之前进行策略查找。无序匹配
无序匹配
unordered 模式允许以任意顺序进行相同的工具调用。当您想验证是否检索到了特定信息但不关心顺序时,这很有帮助。例如,一个智能体使用不同的工具调用来检查城市的天气和活动。子集和超集匹配
子集和超集匹配
superset 和 subset 模式匹配部分轨迹。superset 模式验证智能体至少调用了参考轨迹中的工具,允许额外的工具调用。subset 模式确保智能体没有调用超出参考范围的任何工具。您还可以设置
toolArgsMatchMode 属性和/或 toolArgsMatchOverrides 来自定义评估器如何考虑实际轨迹与参考轨迹中工具调用之间的相等性。默认情况下,只有调用相同工具且参数相同的工具调用才被视为相等。访问仓库了解更多详情。LLM 作为评判者评估器
您可以使用 LLM 通过createTrajectoryLLMAsJudge 函数来评估智能体的执行路径。与轨迹匹配评估器不同,它不需要参考轨迹,但如果可用,也可以提供参考轨迹。
无参考轨迹
无参考轨迹
有参考轨迹
有参考轨迹
如果您有参考轨迹,可以使用预构建的
TRAJECTORY_ACCURACY_PROMPT_WITH_REFERENCE 提示词:要获得更多关于 LLM 如何评估轨迹的可配置性,请访问仓库。
在 LangSmith 中运行评估
为了随时间跟踪实验,请将评估器结果记录到 LangSmith。首先,设置所需的环境变量:evaluate 函数。
使用 vitest/jest 集成
使用 vitest/jest 集成
使用 evaluate 函数
使用 evaluate 函数
创建一个 LangSmith 数据集并使用
evaluate 函数。数据集必须具有以下模式:- input:
{"messages": [...]}调用智能体的输入消息。 - output:
{"messages": [...]}智能体输出中预期的消息历史记录。对于轨迹评估,您可以选择仅保留助手消息。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

