模擬代理程式行為

事前準備

如要模擬及評估代理程式行為,請確保已完成下列步驟:

  • 建立代理程式版本:模擬需要代理程式設定的不變快照,包括系統指令、工具和模型等。請確保您已在代理程式登錄中建立至少一個代理程式版本。
  • 初始化 SDK:如要以程式輔助方式執行模擬,請安裝 Agent Platform SDK,並按照「評估代理程式」一文所述初始化用戶端。

即使沒有現有的正式環境資料,您也能從頭開始建構完整的評估套件。這個程序會使用 LLM 自動產生測試案例,然後扮演使用者,對代理程式的多輪對話邏輯進行壓力測試。

兩步驟模擬工作流程

測試新代理通常會經過兩個階段:

  1. 生成情境:根據代理程式的指令和工具定義,建立「測試規格」資料集。

  2. 模擬工作階段:讓模擬使用者與代理程式互動,產生行為追蹤記錄,藉此執行這些規格。追蹤記錄是代理程式行為的不可變更事實記錄,包括模型輸入內容、回覆和工具呼叫。

在第一個步驟中,系統會建立評估案例評估案例是定義代理程式工作的規格。每個案例都包含兩個元素:

  • 起始提示:使用者傳送給服務專員的第一則訊息。
  • 對話計畫:模擬使用者的隱藏「指令」,說明目標,以及代理程式詢問特定問題時的反應。

在第二個步驟中,系統會以標準代理程式資料格式產生代理程式行為清單。

在控制台中生成情境

  1. 在 Google Cloud 控制台,前往「Agent Platform」>「Agents」>「Evaluation」頁面。

    前往「Evaluation」(評估)

  2. 按一下「New evaluation」(新評估),然後選取「Simulate sessions」(模擬工作階段)

  3. 輸入生成指令來引導情境 (例如「Generate scenarios where the user tries to book a flight but then changes their mind」(生成使用者嘗試預訂航班但隨後改變心意的情境))。

  4. 查看生成的表格。您可以編輯提示,或手動新增自己的測試案例。

執行使用者模擬

生成情境後,使用者模擬工具會扮演使用者,推動對話進行。

使用者模擬設定

執行模擬時,您可以設定下列屬性:

  • 最大回合數:多回合代理程式執行時允許的叫用次數上限。這項屬性可讓我們停止代理程式和使用者模擬器進入永無止盡的迴圈, (預設值為 5)。
  • 模型名稱:模擬下一則使用者訊息的模型名稱,適用於多輪代理程式執行。
  • 模型設定:設定模型,模擬使用者訊息。

SDK 範例:以程式輔助模擬

您也可以使用 Agent Platform SDK 啟動評估套件:

# 1. Define agent
travel_agent = Agent(
    model="gemini-3-flash-preview",
    name='travel_agent',
    instruction='You are a travel expert, help users to find flights, book flights with flight ID',
    tools=[find_flights, book_flight],
)

# 2. Generate scenarios from agent info
travel_agent_info = types.evals.AgentInfo.load_from_agent(agent=travel_agent)

eval_dataset = client.evals.generate_conversation_scenarios(
    agent_info=travel_agent_info,
    config={
        "count": 5,
        "generation_instruction": "Generate scenarios where the user tries to book a flight.",
        "environment_context": "Today is Monday. I am located in San Francisco. Flights to Paris, New York, Tokyo, Chicago, Sydney, etc are available.",
    },
)

# 3. Simulate multi-turn interactions
eval_dataset_with_traces = client.evals.run_inference(
    agent=travel_agent,
    src=eval_dataset,
    config={
        "user_simulator_config": {
            "max_turn": 5
        }
    }
)