准备工作
如需模拟和评估代理行为,请确保您已完成以下操作:
- 创建代理版本:模拟需要代理配置的 不可变快照,包括 系统指令、工具和模型等。确保您已在 代理注册表中创建至少一个代理版本。
- 初始化 SDK:如果您计划以编程方式运行 模拟,请安装 Agent Platform SDK 并 按照评估代理中的说明初始化客户端。
借助模拟,您可以从头开始构建全面的评估套件,即使没有现有的生产数据也是如此。此过程使用 LLM 自动生成测试用例,然后扮演用户来对代理的多轮对话逻辑进行压力测试。
2 步模拟工作流
测试新代理通常遵循两个阶段的过程:
生成场景: 根据代理的指令和工具定义创建“测试规范”数据集。
模拟会话: 让模拟用户与代理互动以生成行为跟踪记录 ,从而执行这些规范。跟踪记录 是代理行为的真实、不可变记录,包括模型输入、响应和工具调用。
在第一步中,系统会创建评估用例 。评估用例 是定义代理任务的规范。每个用例都包含两个元素:
- 起始提示: 用户发送给代理的第一条消息。
- 对话计划: 模拟用户的隐藏“指令”,描述了他们的目标以及在代理提出某些问题时应如何回应。
在第二步中,系统会以规范代理数据格式生成代理行为列表。
在控制台中生成场景
在 Google Cloud 控制台中,依次前往 Agent Platform > Agents > Evaluation 页面。
点击新建评估 ,然后选择模拟会话 。
输入生成指令 以指导场景(例如,“生成用户尝试预订航班但随后改变主意的场景”)。
查看生成的表格。您可以修改提示,也可以手动添加自己的测试用例。
运行用户模拟
生成场景后,用户模拟器 会充当用户来推动对话。
用户模拟设置
运行模拟时,您可以配置以下属性:
- 最大轮次: 多轮代理运行允许的最大调用次数。借助此属性,我们可以停止代理和用户模拟器陷入永无止境的循环的失控对话。
- 模型名称: 用于模拟多轮代理运行的下一个用户消息的模型名称。
- 模型配置: 用于模拟用户消息的模型配置。
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
}
}
)