模拟智能体行为

准备工作

如需模拟和评估代理行为,请确保您已完成以下操作:

  • 创建智能体版本:模拟需要智能体配置的不可变快照,包括系统指令、工具和模型等。请确保您已在智能体注册表中创建至少一个智能体版本。
  • 初始化 SDK:如果您计划以编程方式运行模拟,请安装 Agent Platform SDK 并按照评估代理中的说明初始化客户端。

借助模拟功能,您可以从头开始构建全面的评估套件,即使没有现有的生产数据也可以。此流程使用 LLM 自动生成测试用例,然后扮演用户角色来对代理的多轮对话逻辑进行压力测试。

两步模拟工作流

测试新代理通常需要经历两个阶段:

  1. 生成场景:根据代理的指令和工具定义创建“测试规范”数据集。

  2. 模拟会话:通过让模拟用户与智能体互动来执行这些规范,从而生成行为轨迹轨迹是代理行为的真实且不可变的记录,包括模型输入、响应和工具调用。

在第一步中,系统会创建评估案例评估用例是一种用于定义智能体任务的规范。每个案例都包含两个要素:

  • 初始提示:用户向代理发送的第一条消息。
  • 对话方案:针对模拟用户的隐藏“指令”,描述了他们的目标以及在智能体提出特定问题时他们应如何回应。

在第二步中,系统会以规范的代理数据格式生成代理行为列表。

在控制台中生成场景

  1. 在 Google Cloud 控制台中,依次前往 Agent Platform > 智能体 > 评估页面。

    前往“评估”页面

  2. 点击新评估,然后选择模拟会话

  3. 输入生成指令来引导场景(例如,“生成用户尝试预订航班但随后改变主意的场景”)。

  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
        }
    }
)