agentevals 包提供了用于智能体轨迹的预构建评估器。你可以通过执行轨迹匹配(确定性比较)或使用 LLM 评判者(定性评估)来进行评估:
安装 AgentEvals
轨迹匹配评估器
AgentEvals 提供create_trajectory_match_evaluator 函数来将你的智能体轨迹与参考进行匹配。有四种模式:
以下示例共用一个通用设置——一个带有
get_weather 工具的智能体:
严格匹配
严格匹配
strict 模式确保轨迹包含相同顺序的相同消息和相同工具调用,但允许消息内容不同。当你需要强制执行特定操作序列时(例如在授权操作前要求先进行策略查询),这很有用。无序匹配
无序匹配
unordered 模式允许相同的工具调用以任意顺序出现。当你想验证特定信息已被检索但不关心顺序时,这很有帮助。例如,一个使用不同工具调用检查城市天气和活动的智能体。子集和超集匹配
子集和超集匹配
superset 和 subset 模式匹配部分轨迹。superset 模式验证智能体至少调用了参考轨迹中的工具,允许额外的工具调用。subset 模式确保智能体没有调用参考之外的任何工具。你还可以设置
tool_args_match_mode 属性和/或 tool_args_match_overrides 来自定义评估器如何考虑实际轨迹与参考中工具调用之间的等价性。默认情况下,只有具有相同参数的相同工具的调用才被视为相等。访问仓库了解更多详情。LLM 作为评判者评估器
你可以使用 LLM 通过create_trajectory_llm_as_judge 函数来评估智能体的执行路径。与轨迹匹配评估器不同,它不需要参考轨迹,但如果可用的话可以提供。
不使用参考轨迹
不使用参考轨迹
使用参考轨迹
使用参考轨迹
如果你有参考轨迹,使用预构建的
TRAJECTORY_ACCURACY_PROMPT_WITH_REFERENCE 提示词:要了解 LLM 如何评估轨迹的更多可配置选项,请访问仓库。
异步支持
所有agentevals 评估器都支持 Python asyncio。异步版本通过在函数名中 create_ 后添加 async 来获取。
异步评判者和评估器示例
异步评判者和评估器示例
在 LangSmith 中运行评估
要跟踪随时间变化的实验,将评估器结果记录到 LangSmith。首先,设置所需的环境变量:evaluate 函数。
使用 pytest 集成
使用 pytest 集成
使用 evaluate 函数
使用 evaluate 函数
创建一个 LangSmith 数据集并使用
evaluate 函数。数据集必须具有以下模式:- input:
{"messages": [...]}用于调用智能体的输入消息。 - output:
{"messages": [...]}智能体输出中的预期消息历史。对于轨迹评估,你可以选择只保留 assistant 消息。
连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。

