使用 Agent Observability 简化故障排除
你的语音智能体感觉很慢。一位用户报告说它在句子中间打断了他们。另一位用户说它未能完成任务。你知道出问题了,但要弄清楚具体原因,你需要跳到你的大语言模型提供商的仪表板、你的转录服务的日志以及你自己的服务器日志之间,尝试关联时间戳并猜测何时发生了什么。
对于基于文本的应用程序,几秒钟的额外延迟通常不会被注意到。但在实时对话中,时机就是一切。如果你的语音智能体响应时间过长或打断了某人,体验会立即中断。难点在于找出根本原因:是模型、转录、网络、轮次检测,还是所有这些因素的组合?到目前为止,这通常意味着需要手动将整个管道的数据拼接在一起。
今天,我们正在 LiveKit Cloud 仪表板中发布 **智能体可观测性** 的测试版。对于任何智能体会话,你现在都可以在一个地方查看同步的音频回放、转录、逐轮追踪和日志。
查看(并收听)会话中实际发生的情况
LiveKit 为完整的语音智能体堆栈提供支持,从流式传输音频、管理轮次转换到在你的智能体代码和模型提供商之间路由请求。这意味着我们已经掌握了会话期间发生情况的完整画面。
智能体可观测性使该画面 **可见** 且 **可操作**。
当你在仪表板中打开一个会话时,你会看到一个名为 **Agent insights** 的新标签页。在其中,你会发现三个视图,所有视图都与回放时间线同步
转录
第一个视图是带有音频回放的对话时间线。擦洗到会话中的任何时间点,以准确查看用户和智能体说了什么。内联警报突出显示了工具调用和智能体切换等关键事件,因此你可以立即跳转到最关键的时刻。

追踪
接下来是幕后发生情况的逐轮视图。对于每个智能体响应,你都会看到用于大语言模型、文本转语音、轮次结束检测和工具调用的节点。每个跨度都包含详细的时间戳、持续时间以及完整的请求和响应元数据,因此你可以准确了解时间花在了哪里以及哪里出了问题。

日志
第三个标签页按时间顺序显示来自整个堆栈的信息、警告、错误和调试消息。如果你的智能体代码中出现故障,媒体服务器遇到网络问题,或者客户端建立连接遇到困难,你都会在这里看到。

一个具体的例子:修复一个缓慢、中断的智能体
想象一下,你部署了一个免下车服务智能体,帮助用户在快餐店点餐。
一位用户报告说智能体总是打断他们,并且在轮次之间感觉迟钝。通过智能体可观测性,你可以
- 回放确切的通话:打开会话,点击播放,然后擦洗到报告的问题区域。你可以听到用户正在点餐,并注意到智能体在他们说完之前插了进来。
- 检查轮次检测和模型时序:在“追踪”视图中,你看到轮次结束检测在用户的发言实际结束之前触发了。你还注意到大语言模型延迟在几个轮次中出现峰值,在发送每个响应之前增加了数百毫秒。
- 与日志关联:在“日志”视图中,你看到关于智能体用于获取餐厅菜单的下游 API 的警告。这些调用花费的时间比预期要长,并且超时偶尔会迫使智能体重试。
将所有这些信息集中在一个地方,你可以快速得出结论
- 轮次检测过于激进,需要调整。
- 菜单 API 引入了延迟,应该缓存或优化。
- 模型和文本转语音的运行符合预期。
你不再需要跨越三个不同的工具进行猜测,而是可以得到一个清晰、端到端的解释,了解用户体验到了什么以及需要修复什么。
工作原理
智能体可观测性在 **Python Agents SDK** 的 v1.3+ 版本中可用,对 TypeScript Agents SDK 的支持即将推出。
会话录制是可选的,可以在项目级别或单个智能体级别进行控制。对于新项目和现有项目,智能体可观测性将默认禁用。
要启用它,请导航到项目 **设置** 页面的 **数据和隐私** 部分

要在智能体级别禁用可观测性,请在智能体代码中设置 record=False。即使启用了项目级别设置,智能体也不会记录任何数据。

所有可观测性数据目前存储在美国,保留 30 天。我们正在努力在未来几周内提供按地区划分的本地化数据存储。
如果你需要数据的副本,可以直接从会话中下载音频、转录和日志。我们还计划增加对将会话数据自动导出到你自己的云存储的支持。
下一步
智能体可观测性为你提供了单个智能体回话的详细视图。在此基础上,我们已经在进行以下工作
- 跨会话的聚合指标,以便你可以在智能体和部署中发现模式、回归或异常值。
- 自动化测试、评估和模拟,基于会话数据构建,因此你可以在将提示、模型和工具的更改部署到生产流量之前持续验证它们。
立即免费试用测试版
所有 LiveKit Cloud 用户今天都可以使用智能体可观测性。在测试期间,使用是免费的,直到年底。
试一试吧——我们很想听听你的想法。在我们的 社区 Slack 中的 #agents 频道分享你的反馈。