このページでは、Gen AI Evaluation Service を使用して、Agent Platform 上の Managed Agents API で構築されたエージェントを評価する方法について説明します。合成テスト シナリオを生成し、それに対してエージェントを実行して、事前構築済みの指標で会話トレースをスコアリングできます。
始める前に
エージェントを作成して管理 の手順を完了して、Managed Agent リソースを作成します。
評価拡張機能を使用して Agent Platform SDK をインストールします。
pip install google-cloud-aiplatform[evaluation]認証を設定してプロジェクトを構成します。
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
import agentplatform client = agentplatform.Client( project="PROJECT_ID", location="global", )
評価ワークフロー
Managed Agent の評価は、次の 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()