このページでは、Gen AI Evaluation Service を使用して、Agent Platform の Managed Agents API で構築されたエージェントを評価する方法について説明します。合成テストシナリオを生成し、それに対してエージェントを実行して、結果の会話トレースを事前構築済みの指標でスコア付けできます。
始める前に
エージェントを作成して管理するの手順に沿って、マネージド エージェント リソースを作成します。
評価拡張機能を含む Agent Platform SDK をインストールします。
pip install google-cloud-aiplatform[evaluation]認証を設定し、プロジェクトを構成します。
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
import agentplatform client = agentplatform.Client( project="PROJECT_ID", location="global", )
評価ワークフロー
マネージド エージェントの評価は、次の 3 つのステップで行われます。
- シナリオを生成する: エージェントの指示とツール定義から、多様なマルチターン テスト シナリオを自動的に作成します。
- 推論を実行する: 生成されたシナリオに対してエージェントを実行し、会話トレースをキャプチャします。
- 評価: 事前構築済みの指標を使用して会話トレースをスコアリングします。
ステップ 1: 会話シナリオを生成する
generate_conversation_scenarios を使用すると、エージェントの構成に基づいてテストシナリオを自動的に作成できます。このメソッドは、エージェントのシステム指示とツールを読み取り、現実的なユーザー プロンプトを生成します。
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- AGENT_ID: エージェント リソースの ID。カスタム エージェントを取得または一覧表示して ID を確認する方法については、エージェントを一覧表示するをご覧ください。
AGENT_RESOURCE = f"projects/PROJECT_ID/locations/global/agents/AGENT_ID"
scenarios = client.evals.generate_conversation_scenarios(
agent=AGENT_RESOURCE,
config={
"count": 5,
"generation_instruction": "Generate scenarios where a user asks for a refund.",
},
)
scenarios.show()
生成された各シナリオには、会話の最初のユーザー メッセージを表す starting_prompt が含まれています。
ステップ 2: 推論を実行する
run_inference を使用して、生成されたシナリオに対してエージェントを実行します。エージェントは各シナリオを実行し、ツール呼び出し、中間ステップ、最終レスポンスなど、インタラクション全体をキャプチャする会話トレースを生成します。
inference_results = client.evals.run_inference(
agent=AGENT_RESOURCE,
src=scenarios,
config={"user_simulator_config": {"max_turn": 5}}
)
inference_results.show()
ステップ 3: 評価する
evaluate を使用して、事前構築済みの指標で会話トレースをスコア付けします。エージェントの評価には、次の指標を使用できます。
| 指標 | 説明 |
|---|---|
final_response_quality_v1 |
エージェントがユーザーのタスクを正常に完了したかどうかを評価します。 |
safety_v1 |
エージェントの回答が安全かどうかを評価します。 |
multi_turn_task_success_v1 |
エージェントがユーザーのマルチターン タスクを正常に完了したかどうかを評価します。 |
from agentplatform import types
eval_result = client.evals.evaluate(
dataset=inference_results,
metrics=[
types.RubricMetric.MULTI_TURN_TASK_SUCCESS,
],
agent=AGENT_RESOURCE,
)
eval_result.show()
show() メソッドは、集計スコア、ケースごとの根拠、エージェントの会話トレース(システム トポロジ(エージェント ツールと指示)を含む)を含むインタラクティブ レポートを表示します。
既存のインタラクションを評価する
エージェントですでに記録されているインタラクションを評価することもできます。これは、本番環境の会話の品質を評価する際に役立ちます。エージェントにインタラクションを送信する方法と interaction_id を取得する方法については、カスタム エージェントにインタラクションを送信するをご覧ください。
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- INTERACTION_ID: 記録されたインタラクションの ID。
- AGENT_RESOURCE: エージェントの完全なリソース名(
projects/PROJECT_ID/locations/global/agents/AGENT_ID形式)。
interactions_dataset = types.EvaluationDataset(
eval_cases=[
types.EvalCase(
interactions_data_source=types.InteractionsDataSource(
interaction=f"projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID",
gemini_agent_config=types.GeminiAgentConfig(
gemini_agent=AGENT_RESOURCE,
),
),
),
]
)
eval_result = client.evals.evaluate(
dataset=interactions_dataset,
metrics=[
types.RubricMetric.MULTI_TURN_TASK_SUCCESS,
],
agent=AGENT_RESOURCE,
)
eval_result.show()