学習内容
- エージェントを、ターンとツール呼び出しで構成される会話としてトレースする。
- 各runをLLM judgeでスコアリングする。
- 2つのエージェントのバージョンを並べて比較する。
- マルチターン会話内のターンをスコアリングする。
- 単一のスコアをスコアカードに拡張する。
このチュートリアルでは、エージェントはClaude Sonnetで実行し、judgeはClaude Opusで実行します。評価対象よりも強力で異なるモデルを使用して採点することは、優れた評価手法です。
前提条件
- W&Bアカウント。
- Python 3.10 以降。
- 必須パッケージ:
pip install weave anthropic。 ANTHROPIC_API_KEY環境変数に設定した Anthropic APIキー。
エージェントを構築してトレースする
lookup_order と issue_refund の 2 つのツールを使用し、30 日以内の返金のみを許可するポリシーに従って返金リクエストを確認し、対応します。ツール定義、モデルループ、メッセージ変換を含む完全なエージェントは、付属のノートブックにあります。このセクションでは、Weave 固有の部分に焦点を当てます。
まず、W&B チームと project を指定して Weave を初期化します。[YOUR-TEAM] と [YOUR-PROJECT] を自分の値に置き換えてください。
implicitly_patch_integrations) を有効にしたままにすると、会話は 2 回トレースされます。1 回は Conversation span として、もう 1 回はトレースされた Op として記録されます。
weave.conversation を使用してエージェントをトレースします。会話はターンで構成され、各ターンにはモデル Call と任意の tool Call が含まれます。
convo_idとnew_id():UUID など、会話ごとに一意の ID。user_message:そのターンにおけるユーザーの入力。anthropic_client:初期化済みの Anthropic クライアント。response_tool_callsとrun_tool():モデルが要求したツール呼び出しと、それらを実行する関数。run_agent_turn():エージェントループ全体。最終的な応答と、judge が読み取るための軌跡 (ターン、ツール呼び出し、結果) のプレーンテキストのトランスクリプトを返します。judge_task_completion():次のセクションで導入する LLM judge。
LLM judge でエージェントをスコアリングする
transcript (run_agent_turn が返すプレーンテキストの軌跡) をタスクの success_criteria に照らして評価し、{"passed", "reason"} の辞書を返す LLM judge です。
EvaluationLogger で記録します。トレースされた会話を評価行にリンクするには、log_prediction(...) 内でエージェントを実行します。
passed 列には judge の判定結果が表示されます。Evaluation タブの View spans ボタンをクリックすると、この評価にリンクされたトレース済みのスパンを含む Agents ページが開きます。
評価を整理して比較する
model ラベルで再実行します。
マルチターンの会話をスコアリングする
このアプローチでは、固定された履歴に対して次のターンをスコアリングします。これは実用的なオフライン手法です。エージェントがセッション全体を主導する完全なマルチターンタスクをエンドツーエンドで測定するには、本番環境でライブ A/B テストを実施する必要があり、このチュートリアルの対象外です。
Scorer を拡張する
- 機能面: ツール呼び出しの正確性、指示への追従、ツールエラーからの復旧。
- 非機能面: 安全性と拒否の動作、レイテンシ、コスト、幻覚に基づくツールの使用。
pred.log_score(...) の呼び出しとして追加します。すぐに使える Scorer やクラスベースの Scorer を含む Weave 提供の Scorer タイプ、および独自の Scorer を作成するためのガイダンスについては、スコアリングの概要を参照してください。
次のステップ
- このチュートリアルの完全な実行可能版は、付属のノートブックで実行できます。
- 別のサービスで実行されるエージェントや独自の OTel インストルメンテーションを使用するエージェントなど、エージェントのトレースを評価結果にリンクするその他の方法については、エージェントのトレースを評価にリンクするを参照してください。