实时智能体的评估¶
你可以按照实际使用方式来评估实时智能体:模拟用户以音频形式说出对话轮次,你的智能体通过真实的双向会话进行回答,然后你对其回答进行评分。评估数据集、评估标准和 adk eval 循环与你已经用于文本智能体的相同,详见评估智能体。
使用语音驱动智能体¶
llm_audio 用户模拟器使用文本转语音模型合成每个模拟用户的对话轮次,并将其作为音频流式传输给你的智能体。这完整运行了用户实际经历的路径:语音输入、语音活动检测、轮次切换、语音输出、转录。而直接将文本输入给语音智能体会跳过所有这些环节。
{
"user_simulator_config": {
"type": "llm_audio",
"model": "gemini-3.7-flash",
"max_allowed_invocations": 10,
"audio_model": "gemini-3.1-flash-tts-preview",
"audio_model_configuration": {
"response_modalities": ["AUDIO"],
"speech_config": {
"voice_config": {
"prebuilt_voice_config": { "voice_name": "Kore" }
},
"language_code": "en-US"
}
}
}
}
这里有两个模型各司其职。model 决定模拟用户接下来说什么,audio_model 则将其转换为语音。更改 voice_name 和 language_code 可以测试智能体面对不同语音和口音的表现,而这类回归问题是文本评估无法捕获的。
你的评估用例保持不变。相同的对话场景或固定对话既可以驱动文本运行,也可以驱动语音运行,因此你可以复用已有的测试套件。完整的 schema、角色定义以及如何编写场景,请参阅音频用户模拟。
使用评分标准进行评分¶
语音回复可以用几十种不同的措辞来表达正确答案,因此基于参考字符串比较的标准会将正确答案判为失败。基于评分标准的评判器让你只需用自然语言编写一次意图,就能将其应用于套件中的每一段对话:
| 标准 | 评分对象 |
|---|---|
rubric_based_final_response_quality_v1 |
单轮回复 |
rubric_based_tool_use_quality_v1 |
工具是否被正确调用 |
rubric_based_multi_turn_trajectory_quality_v1 |
端到端的对话 |
{
"criteria": {
"rubric_based_multi_turn_trajectory_quality_v1": {
"threshold": 0.7,
"judge_model_options": { "judge_model": "gemini-3.7-flash" },
"rubrics": [
{
"rubric_id": "verifies_identity_first",
"rubric_content": {
"text_property": "Across the call, the agent confirms the caller's name and validates their date of birth before disclosing any appointment details."
}
}
]
}
}
}
在使用工作流时,应选用轨迹评估标准,因为工作流关注的是智能体按顺序运行并顺利完成交接,而非单个轮次说了什么。对于答案确实固定的情况,tool_trajectory_avg_score 仍然会检查工具调用的精确序列,完全忽略措辞。
运行评估¶
在 test_config.json 中添加 live_model_config 块。它用于将评估切换到实时模式,并且是实时模型所必需的,因为实时模型不通过文本评估使用的单一 generateContent 端点提供服务:
timeout_seconds(默认 300)限制了 ADK 等待一个轮次完成的最长时间。如果你的智能体在长工具调用中会进行叙述,请调高该值;如果希望更快地判定会话卡死,请调低该值。
adk eval path/to/your_agent \
path/to/your_agent/live.evalset.json \
--config_file_path path/to/your_agent/test_config.json
这需要安装评估扩展依赖(pip install "google-adk[eval]")以及 Live API 和 TTS 模型的凭据。同样的运行也可以通过 AgentEvaluator 完成,这是将语音评估集成到 CI 中的方式。
在 adk web 中,评估对话框有一个 Standard | Live 切换开关,可以显示输入模态以及模拟用户的语音和语言。当运行完成后,ADK 会将音频重新组装为文本记录,并在每个轮次上附带可播放的音频片段,这样你就能听到智能体的实际语音表现,而不仅仅阅读它说了什么。
示例¶
live_workflow 示例是一个完整的语音评估,可以直接运行:三个实时智能体在一个图工作流中运行,中间有一次工具调用,评估集和 test_config.json 已配置好全部三个评分标准。