此集成目前处于测试阶段,其 API 可能会发生变化。
google-genai 连接还是 Google 智能体开发工具包 (ADK) 进行构建,此集成都会将每次对话捕获为一个单一的 LangSmith 追踪,其中包含用于转录文本、模型响应、工具调用、对话轮次边界和中断的跨度。
将您的 Gemini Live 语音智能体追踪到 LangSmith。有关高级约定,请参阅语音追踪基础。
要追踪使用 ADK 构建的非实时文本智能体、工具和多智能体工作流,请参阅追踪 Google ADK 应用。
选择一种方法
LangSmith 为每种连接 Gemini Live 的方式都提供了追踪集成:- 如果您直接使用
client.aio.live.connect(...)连接,请使用wrap_gemini_live。 - 如果您使用 Google ADK 构建,请使用
LangSmithGoogleADKLivePlugin。
安装
使用 Gemini Live 客户端
为原始的google-genai 连接安装 gemini-live 附加组件:
使用 Google ADK
为 ADK 应用安装google-adk-live 附加组件:
ADK Live 集成要求
langsmith[google-adk-live]>=0.9.7。此附加组件与用于批量处理的 langsmith[google-adk] 集成是分开的。设置环境变量
.env
使用 Gemini Live 客户端
当您的应用通过client.aio.live.connect(...) 打开 WebSocket 并自行控制音频和工具循环时,请使用此方法。
设置追踪
在实时配置中启用输入和输出转录。wrap_gemini_live 会为已连接的会话返回一个透明的代理,因此您现有的接收循环、音频处理和工具调度保持不变:
转录是可选启用的。要在追踪中显示转录文本,请在
LiveConnectConfig 上设置 input_audio_transcription 和 output_audio_transcription。将对话分组到一个线程中
每个包装后的会话都会被捕获为其自己的追踪,并拥有自己的线程 ID。要提供 ID(例如,将对话与 LangSmith 线程中的相关交互进行分组),请传递thread_id:
录制对话音频
将麦克风和回放音频输入到包装后的会话中,以附加单个立体声录音,用户在左声道,智能体在右声道:sample_rate 下以 PCM16 格式录制两个声道。从扬声器录制智能体的音频,这样附件仅反映用户听到的内容。有关底层附件 API,请参阅随追踪上传文件。
使用 Google ADK
当 ADK 拥有 Gemini Live 会话和工具循环的控制权时,请使用此方法。设置追踪
导入LangSmithGoogleADKLivePlugin 并将其注册到您的 Runner。它会与您的 run_live 循环并行运行,因此您的循环仅处理音频播放、用户打断和 UI 更新:
转录是可选启用的。要显示转录文本,请在
RunConfig 上设置 input_audio_transcription 和 output_audio_transcription。在正常结束时(当实时请求队列关闭),ADK 会发送其
after_run 回调,插件会完成追踪。在运行被取消时(例如,控制台应用在 Ctrl-C 时停止 run_live),ADK 可能不会发送该回调。在清理期间调用 plugin.finalize(session_id=adk_session.id),以确保追踪和音频附件被完成。该调用是幂等的,因此如果 ADK 的回调已经运行,它将不执行任何操作。将对话分组到一个线程中
每个对话都会被捕获为其自己的追踪,并拥有自己的线程 ID。要提供 ID(例如,将对话与 LangSmith 线程中的相关交互进行分组),请向插件传递一个thread_id_provider:
run_live 调用中共享,并在每次对话开始时解析一次线程 ID。默认情况下,并发对话保持独立。如果在处理并发对话的服务器上传递了 thread_id_provider,请返回当前对话的 ID,例如通过读取在每次运行开始时设置的 ContextVar。
录制对话音频
将麦克风和回放音频输入到插件中,以附加单个立体声录音,用户在左声道,智能体在右声道:sample_rate 默认为 24 kHz。有关底层附件 API,请参阅随追踪上传文件。
后续步骤
语音基础
追踪语音智能体的核心约定。
随追踪上传文件
将对话音频录音附加到您的追踪中。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

