模拟智能体行为

准备工作

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

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

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

2 步模拟工作流

测试新代理通常遵循两个阶段的过程:

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

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

在第一步中,系统会创建评估用例评估用例 是定义代理任务的规范。每个用例都包含两个元素:

  • 起始提示: 用户发送给代理的第一条消息。
  • 对话计划: 模拟用户的隐藏“指令”,描述了他们的目标以及在代理提出某些问题时应如何回应。

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

在控制台中生成场景

  1. 在 Google Cloud 控制台中,依次前往 Agent Platform > Agents > Evaluation 页面。

    前往“评估”

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

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

  4. 查看生成的表格。您可以修改提示,也可以手动添加自己的测试用例。

运行用户模拟

生成场景后,用户模拟器 会充当用户来推动对话。

用户模拟设置

运行模拟时,您可以配置以下属性:

  • 最大轮次: 多轮代理运行允许的最大调用次数。借助此属性,我们可以停止代理和用户模拟器陷入永无止境的循环的失控对话。
  • 模型名称: 用于模拟多轮代理运行的下一个用户消息的模型名称。
  • 模型配置: 用于模拟用户消息的模型配置。

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