MLflow 3 GenAI エージェント評価 次のような場合に使用: mlflow.genai.evaluate() のコードを書く、@scorer 関数を作成する、組み込みスコアラー(ガイドライン遵守性、正確性、安全性、検索結果の根拠性)を利用する、トレース(AI システムの動作記録)からサンプルデータセットを構築する、トレース取り込みと本番環境の監視を設定する、ドメイン専門家のフィードバックから MemAlign を使って判定モデルを調整する、または GEPA を使った optimize_prompts() を実行してプロンプト最適化を自動化する場合
MLflow 3 GenAI agent evaluation. Use when writing mlflow.genai.evaluate() code, creating @scorer functions, using built-in scorers (Guidelines, Correctness, Safety, RetrievalGroundedness), building eval datasets from traces, setting up trace ingestion and production monitoring, aligning judges with MemAlign from domain expert feedback, or running optimize_prompts() with GEPA for automated prompt improvement.
mlflow/skills との違いOSS の mlflow/skills リポジトリには、agent-evaluation およびその関連スキル(instrumenting-with-mlflow-tracing、analyze-mlflow-trace、retrieving-mlflow-traces、querying-mlflow-metrics)が含まれています。
これらは、mlflow.genai.evaluate()、スコアラー/ジャッジ、データセット、トレーシングのセットアップ、5ステップの評価ループといった、MLflow GenAI 評価の汎用ワークフロー全般をカバーしています。
本スキルは、そのワークフローを再説明するのではなく、Databricks 固有のパターンをその上に重ねるものです。 次のような場合に使用:
patterns-trace-ingestion.md)patterns-judge-alignment.md)optimize_prompts() GEPAループ — UCデータセット上で動作する、Databricksの自動プロンプト最適化ドライバー(patterns-prompt-optimization.md)patterns-datasets.md、patterns-scorers.md)それ以外のすべて — 汎用の mlflow.genai.evaluate() 呼び出し、スコアラー作成パターン、Databricks 外でのデータセット作成、UCテーブルに紐付かない MLflow トレーシングのセットアップ — については、アップストリームの mlflow/skills/agent-evaluation スキルが正式な情報源であり、MLflow チームによって常に最新の状態に保たれています。
目的に応じて以下のワークフローに従ってください。各ステップには、参照すべきファイルが示されています。
MLflow GenAI 評価を初めて使用するユーザー、または新しい agent の評価を設定するユーザー向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | 何を評価するかを理解する | user-journeys.md(Journey 0: Strategy) |
| 2 | API パターンを学ぶ | GOTCHAS.md + CRITICAL-interfaces.md |
| 3 | 初期データセットを構築する | patterns-datasets.md(Patterns 1–4) |
| 4 | スコアラーを選択/作成する | patterns-scorers.md + CRITICAL-interfaces.md(組み込みリスト) |
| 5 | 評価を実行する | patterns-evaluation.md(Patterns 1–3) |
プロダクショントレースから評価データセットを構築する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | トレースを検索・フィルタリングする | patterns-trace-analysis.md(MCPツールセクション) |
| 2 | トレースの品質を分析する | patterns-trace-analysis.md(Patterns 1–7) |
| 3 | 対象トレースにタグを付ける | patterns-datasets.md(Patterns 16–17) |
| 4 | トレースからデータセットを構築する | patterns-datasets.md(Patterns 6–7) |
| 5 | 期待値/グラウンドトゥルースを追加する | patterns-datasets.md(Pattern 2) |
agent の実行が遅い、またはコストが高い場合のデバッグ向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | スパンごとにレイテンシをプロファイリングする | patterns-trace-analysis.md(Patterns 4–6) |
| 2 | トークン使用量を分析する | patterns-trace-analysis.md(Pattern 9) |
| 3 | コンテキストの問題を検出する | patterns-context-optimization.md(Section 5) |
| 4 | 最適化を適用する | patterns-context-optimization.md(Sections 1–4, 6) |
| 5 | 再評価して効果を測定する | patterns-evaluation.md(Pattern 6–7) |
agent のバージョン間を比較し、リグレッションを検出する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | ベースラインを確立する | patterns-evaluation.md(Pattern 4: named runs) |
| 2 | 現在のバージョンを実行する | patterns-evaluation.md(Pattern 1) |
| 3 | メトリクスを比較する | patterns-evaluation.md(Patterns 6–7) |
| 4 | 失敗したトレースを分析する | patterns-trace-analysis.md(Pattern 7) |
| 5 | 特定の失敗をデバッグする | patterns-trace-analysis.md(Patterns 8–9) |
プロジェクト固有の評価メトリクスを作成する場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | スコアラーのインターフェースを理解する | CRITICAL-interfaces.md(Scorer セクション) |
| 2 | スコアラーパターンを選択する | patterns-scorers.md(Patterns 4–11) |
| 3 | マルチ agent スコアラーの場合 | patterns-scorers.md(Patterns 13–16) |
| 4 | 評価を使ってテストする | patterns-evaluation.md(Pattern 1) |
トレースをUnity Catalogに保存し、アプリケーションをインストルメント化して、継続的なプロダクションモニタリングを有効にする場合向け。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | UCスキーマをExperimentにリンクする | patterns-trace-ingestion.md(Patterns 1–2) |
| 2 | トレースの送信先を設定する | patterns-trace-ingestion.md(Patterns 3–4) |
| 3 | アプリケーションをインストルメント化する | patterns-trace-ingestion.md(Patterns 5–8) |
| 4 | トレースソースを設定する(Apps/Serving/OTEL) | patterns-trace-ingestion.md(Patterns 9–11) |
| 5 | プロダクションモニタリングを有効にする | patterns-trace-ingestion.md(Patterns 12–13) |
| 6 | UCトレースをクエリ・分析する | patterns-trace-ingestion.md(Pattern 14) |
LLMジャッジをドメイン専門家の好みに合わせて調整する場合向け。 適切にアライメントされたジャッジは、評価精度、プロダクションモニタリングのシグナル品質、プロンプト最適化の精度など、すべての下流ユースケースを改善します。 このワークフローはプロンプト最適化とは独立して、単独でも大きな価値をもたらします。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | make_judge でベースジャッジを設計する(任意のフィードバックタイプ対応) |
patterns-judge-alignment.md(Pattern 1) |
| 2 | evaluate() を実行し、成功したトレースにタグを付ける |
patterns-judge-alignment.md(Pattern 2) |
| 3 | UCデータセットを構築し、SMEラベリングセッションを作成する | patterns-judge-alignment.md(Pattern 3) |
| 4 | ラベリング完了後、MemAlignでジャッジをアライメントする | patterns-judge-alignment.md(Pattern 4) |
| 5 | アライメント済みジャッジをExperimentに登録する | patterns-judge-alignment.md(Pattern 5) |
| 6 | アライメント済みジャッジで再評価する(ベースライン) | patterns-judge-alignment.md(Pattern 6) |
optimize_prompts() を使用して、登録済みのシステムプロンプトを自動的に改善する場合向け。
任意のスコアラーと組み合わせて動作しますが、アライメント済みジャッジ(ワークフロー 7)と組み合わせることで、最もドメインに適したシグナルが得られます。
アライメントと最適化を組み合わせたフルエンドツーエンドループについては、user-journeys.md の Journey 10 を参照してください。
| ステップ | アクション | 参照ファイル |
|---|---|---|
| 1 | 最適化用データセットを構築する(inputs + expectations) | patterns-prompt-optimization.md(Pattern 1) |
| 2 | GEPA + スコアラーで optimize_prompts() を実行する |
patterns-prompt-optimization.md(Pattern 2) |
| 3 | 新バージョンを登録し、条件付きでプロモートする | patterns-prompt-optimization.md(Pattern 3) |
| 参照ファイル | 目的 | 読むタイミング |
|---|---|---|
GOTCHAS.md |
よくある間違い | コードを書く前に必ず最初に読む |
CRITICAL-interfaces.md |
APIシグネチャ、スキーマ | 評価コードを書く際 |
patterns-evaluation.md |
評価の実行・比較 | 評価を実行する際 |
patterns-scorers.md |
カスタムスコアラーの作成 | 組み込みスコアラーでは不十分な場合 |
patterns-datasets.md |
データセット構築 | 評価データを準備する際 |
patterns-trace-analysis.md |
トレースのデバッグ | agentの挙動を分析する際 |
patterns-context-optimization.md |
トークン/レイテンシの改善 | agentが遅い、またはコストが高い場合 |
patterns-trace-ingestion.md |
UCトレースのセットアップ・モニタリング | トレースストレージやプロダクションモニタリングを設定する際 |
patterns-judge-alignment.md |
MemAlignジャッジのアライメント、ラベリングセッション、SMEフィードバック | ジャッジをドメイン専門家の好みに合わせる際 |
patterns-prompt-optimization.md |
GEPAによる最適化: データセット構築、optimize_prompts()、プロモート |
自動プロンプト改善を実行する際 |
user-journeys.md |
ハイレベルワークフロー、アライメント+最適化のフルループ | 新しい評価プロジェクトを開始する際、またはフルループを実行する際 |
mlflow.genai.evaluate()(mlflow.evaluate() は不可){"inputs": {"query": "..."}} (ネスト構造が必須)predict_fn: **unpacked kwargs を受け取る(dictではない)float、bool、categorical など任意の feedback_value_type に対応);埋め込みモデルへのトークン消費が多いため、embedding_model を明示的に指定することalign() がスコアを正しく対応付けるために、ラベリングセッション内のラベルスキーマの name は、evaluate() で使用するジャッジの name と必ず一致させることmlflow/skillsThe OSS mlflow/skills repo ships agent-evaluation and related skills (instrumenting-with-mlflow-tracing, analyze-mlflow-trace, retrieving-mlflow-traces, querying-mlflow-metrics) that cover the generic MLflow GenAI evaluation workflow — mlflow.genai.evaluate(), scorers/judges, datasets, tracing setup, and the 5-step evaluation loop.
This skill layers Databricks-specific patterns on top of that workflow rather than restating it. Use this skill when you need any of:
patterns-trace-ingestion.md).patterns-judge-alignment.md).optimize_prompts() GEPA loop — Databricks' automated prompt-optimization driver running on a UC dataset (patterns-prompt-optimization.md).patterns-datasets.md, patterns-scorers.md).For everything else — generic mlflow.genai.evaluate() calls, scorer authoring patterns, dataset creation outside Databricks, MLflow tracing setup that isn't UC-table-bound — the upstream mlflow/skills/agent-evaluation skill is the canonical source and is kept current by the MLflow team.
Follow these workflows based on your goal. Each step indicates which reference files to read.
For users new to MLflow GenAI evaluation or setting up evaluation for a new agent.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Understand what to evaluate | user-journeys.md (Journey 0: Strategy) |
| 2 | Learn API patterns | GOTCHAS.md + CRITICAL-interfaces.md |
| 3 | Build initial dataset | patterns-datasets.md (Patterns 1-4) |
| 4 | Choose/create scorers | patterns-scorers.md + CRITICAL-interfaces.md (built-in list) |
| 5 | Run evaluation | patterns-evaluation.md (Patterns 1-3) |
For building evaluation datasets from production traces.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Search and filter traces | patterns-trace-analysis.md (MCP tools section) |
| 2 | Analyze trace quality | patterns-trace-analysis.md (Patterns 1-7) |
| 3 | Tag traces for inclusion | patterns-datasets.md (Patterns 16-17) |
| 4 | Build dataset from traces | patterns-datasets.md (Patterns 6-7) |
| 5 | Add expectations/ground truth | patterns-datasets.md (Pattern 2) |
For debugging slow or expensive agent execution.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Profile latency by span | patterns-trace-analysis.md (Patterns 4-6) |
| 2 | Analyze token usage | patterns-trace-analysis.md (Pattern 9) |
| 3 | Detect context issues | patterns-context-optimization.md (Section 5) |
| 4 | Apply optimizations | patterns-context-optimization.md (Sections 1-4, 6) |
| 5 | Re-evaluate to measure impact | patterns-evaluation.md (Pattern 6-7) |
For comparing agent versions and finding regressions.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Establish baseline | patterns-evaluation.md (Pattern 4: named runs) |
| 2 | Run current version | patterns-evaluation.md (Pattern 1) |
| 3 | Compare metrics | patterns-evaluation.md (Patterns 6-7) |
| 4 | Analyze failing traces | patterns-trace-analysis.md (Pattern 7) |
| 5 | Debug specific failures | patterns-trace-analysis.md (Patterns 8-9) |
For creating project-specific evaluation metrics.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Understand scorer interface | CRITICAL-interfaces.md (Scorer section) |
| 2 | Choose scorer pattern | patterns-scorers.md (Patterns 4-11) |
| 3 | For multi-agent scorers | patterns-scorers.md (Patterns 13-16) |
| 4 | Test with evaluation | patterns-evaluation.md (Pattern 1) |
For storing traces in Unity Catalog, instrumenting applications, and enabling continuous production monitoring.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Link UC schema to experiment | patterns-trace-ingestion.md (Patterns 1-2) |
| 2 | Set trace destination | patterns-trace-ingestion.md (Patterns 3-4) |
| 3 | Instrument your application | patterns-trace-ingestion.md (Patterns 5-8) |
| 4 | Configure trace sources (Apps/Serving/OTEL) | patterns-trace-ingestion.md (Patterns 9-11) |
| 5 | Enable production monitoring | patterns-trace-ingestion.md (Patterns 12-13) |
| 6 | Query and analyze UC traces | patterns-trace-ingestion.md (Pattern 14) |
For aligning an LLM judge to match domain expert preferences. A well-aligned judge improves every downstream use: evaluation accuracy, production monitoring signal, and prompt optimization quality. This workflow is valuable on its own, independent of prompt optimization.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Design base judge with make_judge (any feedback type) |
patterns-judge-alignment.md (Pattern 1) |
| 2 | Run evaluate(), tag successful traces | patterns-judge-alignment.md (Pattern 2) |
| 3 | Build UC dataset + create SME labeling session | patterns-judge-alignment.md (Pattern 3) |
| 4 | Align judge with MemAlign after labeling completes | patterns-judge-alignment.md (Pattern 4) |
| 5 | Register aligned judge to experiment | patterns-judge-alignment.md (Pattern 5) |
| 6 | Re-evaluate with aligned judge (baseline) | patterns-judge-alignment.md (Pattern 6) |
For automatically improving a registered system prompt using optimize_prompts(). Works with any scorer, but paired with an aligned judge (Workflow 7) gives the most domain-accurate signal. For the full end-to-end loop combining alignment and optimization, see user-journeys.md Journey 10.
| Step | Action | Reference Files |
|---|---|---|
| 1 | Build optimization dataset (inputs + expectations) | patterns-prompt-optimization.md (Pattern 1) |
| 2 | Run optimize_prompts() with GEPA + scorer | patterns-prompt-optimization.md (Pattern 2) |
| 3 | Register new version, promote conditionally | patterns-prompt-optimization.md (Pattern 3) |
| Reference | Purpose | When to Read |
|---|---|---|
GOTCHAS.md |
Common mistakes | Always read first before writing code |
CRITICAL-interfaces.md |
API signatures, schemas | When writing any evaluation code |
patterns-evaluation.md |
Running evals, comparing | When executing evaluations |
patterns-scorers.md |
Custom scorer creation | When built-in scorers aren't enough |
patterns-datasets.md |
Dataset building | When preparing evaluation data |
patterns-trace-analysis.md |
Trace debugging | When analyzing agent behavior |
patterns-context-optimization.md |
Token/latency fixes | When agent is slow or expensive |
patterns-trace-ingestion.md |
UC trace setup, monitoring | When setting up trace storage or production monitoring |
patterns-judge-alignment.md |
MemAlign judge alignment, labeling sessions, SME feedback | When aligning judges to domain expert preferences |
patterns-prompt-optimization.md |
GEPA optimization: build dataset, optimize_prompts(), promote | When running automated prompt improvement |
user-journeys.md |
High-level workflows, full domain-expert optimization loop | When starting a new evaluation project or running the full align + optimize cycle |
mlflow.genai.evaluate() (NOT mlflow.evaluate()){"inputs": {"query": "..."}} (nested structure required)**unpacked kwargs (not a dict)feedback_value_type -- float, bool, categorical); token-heavy on the embedding model so set embedding_model explicitlyname in the labeling session MUST match the judge name used in evaluate() for align() to pair scoresinputs AND expectations per record (different from eval dataset)get_scorer() results won't show episodic memory on print until the judge is first usedSee GOTCHAS.md for complete list.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。