在 Agent Platform 評估使用 Managed Agents API 建構的代理

本頁面說明如何使用 Gen AI Evaluation Service,評估以 Agent Platform 的 Managed Agents API 建構的代理。您可以產生合成測試情境、針對這些情境執行代理程式,並使用預先建構的指標為產生的對話記錄評分。

事前準備

  1. 完成「建立及管理代理程式」一文所述的步驟,建立受管理代理程式資源。

  2. 安裝 Agent Platform SDK 和評估擴充功能:

    pip install google-cloud-aiplatform[evaluation]
    
  3. 設定驗證並設定專案:

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案 ID。
    import agentplatform
    
    client = agentplatform.Client(
        project="PROJECT_ID",
        location="global",
    )
    

評估工作流程

評估受管理代理的步驟如下:

  1. 生成情境:根據代理的指令和工具定義,自動建立多樣化的多輪測試情境。
  2. 執行推論:針對產生的情境執行代理,擷取對話記錄。
  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()

後續步驟

指南

瞭解如何使用 REST API 建立、更新、列出、取得及刪除代理程式。

指南

瞭解如何在執行階段與代理程式互動、管理工作階段狀態,以及動態覆寫設定。

總覽

瞭解 Google Agent Platform 中的代理評估作業。

指南

瞭解如何在 Google Agent Platform 中管理評估指標。