Skip to content

实时智能体的评估

Supported in ADKPython v2.6.0

你可以按照实际使用方式来评估实时智能体:模拟用户以音频形式说出对话轮次,你的智能体通过真实的双向会话进行回答,然后你对其回答进行评分。评估数据集、评估标准和 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_namelanguage_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 端点提供服务:

{
  "live_model_config": {
    "timeout_seconds": 300
  }
}

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 已配置好全部三个评分标准。