自定义法官

自定义 LLM 法官允许你使用自然语言为 GenAI 应用程序定义复杂和细微的评分准则。

虽然 MLflow 内置的 LLM 评判标准为常见质量维度提供了出色的起点,但使用make_judge()自定义的评判标准可以完全控制评估标准。

提示信息和模板变量

为了创建评委,您需要提供用自然语言编写的说明来评估代理的质量。 make_judge() 接受模板变量以访问代理的输入、输出、预期输出或行为,甚至完成跟踪。

说明必须至少包含一个模板变量,但不需要使用所有这些模板变量。

  • {{ inputs }} - 向代理提供的输入数据
  • {{ outputs }} - 输出代理生成的数据
  • {{ expectations }} - 实际数据或预期结果
  • {{ trace }} - 代理的完整的运行轨迹

这是唯一允许的变量。 自定义变量(例如 {{ question }} 将引发验证错误)以确保一致的行为并防止模板注入问题。

基于跟踪的评审员

基于轨迹的审查员分析执行轨迹,以便了解代理执行期间发生的情况。 它们使用模型上下文协议 (MCP) 工具自主探索跟踪,并且可以:

  • 验证工具使用模式
  • 查明性能瓶颈
  • 调查执行失败
  • 验证多步骤工作流

以下示例定义一个评估器,通过分析记录来评估工具调用的正确性。

from mlflow.genai.judges import make_judge

# Agent judge for tool calling correctness
tool_usage_judge = make_judge(
    name="tool_usage_validator",
    instructions=(
        "Analyze the {{ trace }} to verify correct tool usage.\n\n"
        "Check that the agent selected appropriate tools for the user's request "
        "and called them with correct parameters.\n"
        "Rate as: 'correct' or 'incorrect'"
    ),
    model="databricks:/databricks-gpt-5-mini"  # Required for trace-based judges
)

要使基于跟踪的分析员分析完整的跟踪,必须在 model 中指定 make_judge() 参数。

有关完整教程,请参阅创建自定义评审,使用make_judge()

基于跟踪的法官的模型要求

基于跟踪的法官需要一个能够进行跟踪分析的模型。 模型可通过以下方式提供:

建议的模型:

  • databricks:/databricks-gpt-5-mini
  • databricks:/databricks-gpt-5
  • databricks:/databricks-gpt-oss-120b
  • databricks:/databricks-claude-opus-4-1

编写法官说明的最佳做法

特定于预期的输出格式。 说明应明确指定评判者应返回的格式。

  • 分类响应:列出特定值(例如,“fully_resolved”、“partially_resolved”、“needs_follow_up”)
  • 布尔响应:明确声明法官应返回 truefalse
  • 数值分数:指定评分范围以及每个分数的含义

分解复杂的评估。 对于复杂的评估任务,请将说明结构化为明确的部分:

  • 要评估的内容
  • 要审查的信息
  • 如何做出判断
  • 要返回的格式

使法官与人类专家保持一致

基础评判标准是一个起点。 收集有关应用程序输出的专家反馈时,可以将 LLM 评委与反馈保持一致,以进一步提高法官的准确性。 请参阅 与人类对齐的评委

后续步骤

有关基于标准和跟踪的评测器的实践教程,请参阅 创建自定义评测器