agentevals 包为代理轨迹提供了预构建的评估器。您可以通过执行轨迹匹配(确定性比较)或使用LLM 评判(定性评估)来评估:
安装 AgentEvals
轨迹匹配评估器
AgentEvals 提供create_trajectory_match_evaluator 函数来将您的代理轨迹与参考进行匹配。有四种模式:
| 模式 | 描述 | 用例 |
|---|---|---|
strict | 按相同顺序精确匹配消息结构和工具调用(消息内容可以不同) | 测试特定序列(例如,授权前的策略查找) |
unordered | 与参考具有相同的消息结构和工具调用,但工具调用可以按任何顺序发生 | 验证信息检索,当顺序不重要时 |
subset | 代理仅调用参考中的工具(没有额外工具) | 确保代理不超过预期范围 |
superset | 代理至少调用参考工具(允许额外工具) | 验证至少执行了所需的操作 |
get_weather 工具的代理:
严格匹配
严格匹配
strict 模式确保轨迹以相同的顺序包含相同的消息和相同的工具调用,尽管它允许消息内容的差异。当您需要强制执行特定的操作序列时,这很有用,例如在授权操作之前要求策略查找。无序匹配
无序匹配
unordered 模式允许按任何顺序进行相同的工具调用。当您想要验证是否检索了特定信息但不关心顺序时,这很有帮助。例如,一个代理通过不同的工具调用检查城市的天气和事件。子集和超集匹配
子集和超集匹配
superset 和 subset 模式匹配部分轨迹。superset 模式验证代理至少调用了参考轨迹中的工具,允许额外的工具调用。subset 模式确保代理没有调用参考之外的任何工具。您还可以设置
tool_args_match_mode 属性和/或 tool_args_match_overrides 来自定义评估器如何考虑实际轨迹与参考中工具调用之间的相等性。默认情况下,只有对同一工具具有相同参数的工具调用才被视为相等。访问仓库了解更多详情。LLM 评判评估器
您可以使用create_trajectory_llm_as_judge 函数使用 LLM 来评估代理的执行路径。与轨迹匹配评估器不同,它不需要参考轨迹,但如果可用,可以提供一个。
无参考轨迹
无参考轨迹
有参考轨迹
有参考轨迹
如果您有参考轨迹,请使用预构建的
TRAJECTORY_ACCURACY_PROMPT_WITH_REFERENCE 提示:有关如何配置 LLM 评估轨迹的更多详细信息,请访问仓库。
异步支持
所有agentevals 评估器都支持 Python asyncio。异步版本可通过在函数名中的 create_ 后添加 async 来获得。
异步评判和评估器示例
异步评判和评估器示例
在 LangSmith 中运行评估
为了随时间跟踪实验,将评估器结果记录到 LangSmith。首先,设置所需的环境变量:evaluate 函数。
使用 pytest 集成
使用 pytest 集成
使用 evaluate 函数
使用 evaluate 函数
创建一个 LangSmith 数据集并使用
evaluate 函数。数据集必须具有以下架构:- input:
{"messages": [...]}用于调用代理的输入消息。 - output:
{"messages": [...]}代理输出中的预期消息历史。对于轨迹评估,您可以选择仅保留助手消息。

