Agents 课程文档
AI Agent 可观测性和评估
并获得增强的文档体验
开始使用
AI Agent 可观测性和评估
🔎 什么是可观测性?
可观测性是指通过查看外部信号(如日志、指标和追踪)来了解 AI Agent 内部发生的情况。对于 AI Agent 而言,这意味着跟踪操作、工具使用、模型调用和响应,以调试和改进 agent 性能。
🔭 为什么 Agent 可观测性很重要
如果没有可观测性,AI Agent 就是“黑盒”。可观测性工具使 agent 透明化,使您能够:
- 了解成本和准确性之间的权衡
- 测量延迟
- 检测有害语言和提示注入
- 监控用户反馈
换句话说,它使您的演示 agent 准备好投入生产!
🔨 可观测性工具
AI Agent 的常用可观测性工具包括 Langfuse 和 Arize 等平台。这些工具帮助收集详细的追踪信息,并提供仪表板以实时监控指标,从而轻松检测问题并优化性能。
可观测性工具的功能和能力差异很大。一些工具是开源的,受益于塑造其路线图和广泛集成的大型社区。此外,某些工具专注于 LLMOps 的特定方面——例如可观测性、评估或提示管理——而另一些工具则旨在涵盖整个 LLMOps 工作流程。我们鼓励您探索不同选项的文档,以选择适合您的解决方案。
许多 agent 框架(如 smolagents)使用 OpenTelemetry 标准向可观测性工具公开元数据。除此之外,可观测性工具还构建自定义检测,以便在快速发展的 LLM 世界中实现更大的灵活性。您应该查看您正在使用的工具的文档,以了解支持哪些内容。
🔬追踪 (Traces) 和跨度 (Spans)
可观测性工具通常将 agent 运行表示为追踪 (traces) 和跨度 (spans)。
- 追踪 (Traces) 表示从开始到结束的完整 agent 任务(如处理用户查询)。
- 跨度 (Spans) 是追踪 (trace) 中的各个步骤(如调用语言模型或检索数据)。
📊 要监控的关键指标
以下是可观测性工具监控的一些最常见指标:
延迟 (Latency): agent 响应的速度有多快?等待时间过长会对用户体验产生负面影响。您应该通过追踪 agent 运行来衡量任务和各个步骤的延迟。例如,一个所有模型调用需要 20 秒的 agent 可以通过使用更快的模型或并行运行模型调用来加速。
成本 (Costs): 每次 agent 运行的费用是多少?AI Agent 依赖于按 token 计费的 LLM 调用或外部 API。频繁的工具使用或多个提示会迅速增加成本。例如,如果 agent 调用 LLM 五次以获得边际质量改进,您必须评估成本是否合理,或者是否可以减少调用次数或使用更便宜的模型。实时监控还可以帮助识别意外的峰值(例如,导致 API 循环过度的错误)。
请求错误 (Request Errors): agent 有多少请求失败?这可能包括 API 错误或工具调用失败。为了使您的 agent 在生产中更健壮地应对这些错误,您可以设置回退或重试。例如,如果 LLM 提供商 A 宕机,您可以切换到 LLM 提供商 B 作为备份。
用户反馈 (User Feedback): 实施直接用户评估可提供有价值的见解。这可以包括明确的评分(👍点赞/👎踩,⭐1-5 星)或文本评论。持续的负面反馈应提醒您,因为这是 agent 未按预期工作的迹象。
隐式用户反馈 (Implicit User Feedback): 即使没有明确的评分,用户行为也提供间接反馈。这可以包括立即重新措辞问题、重复查询或单击重试按钮。例如,如果您看到用户反复询问相同的问题,则表明 agent 未按预期工作。
准确性 (Accuracy): agent 产生正确或期望输出的频率有多高?准确性定义各不相同(例如,解决问题的正确性、信息检索的准确性、用户满意度)。第一步是定义您的 agent 的成功标准。您可以通过自动检查、评估分数或任务完成标签来跟踪准确性。例如,将追踪标记为“成功”或“失败”。
自动化评估指标 (Automated Evaluation Metrics): 您还可以设置自动化评估。例如,您可以使用 LLM 对 agent 的输出进行评分,例如它是否有帮助、准确与否。还有一些开源库可以帮助您对 agent 的不同方面进行评分。例如,用于 RAG agent 的 RAGAS 或用于检测有害语言或提示注入的 LLM Guard。
在实践中,这些指标的组合可以最好地覆盖 AI Agent 的健康状况。在本章的示例 notebook中,我们将向您展示这些指标在实际示例中的外观,但首先,我们将了解典型的评估工作流程是什么样的。
👍 评估 AI Agent
可观测性为我们提供了指标,但评估是分析这些数据(并执行测试)以确定 AI Agent 的性能如何以及如何改进的过程。换句话说,一旦您有了这些追踪和指标,您将如何使用它们来判断 agent 并做出决策?
定期评估非常重要,因为 AI Agent 通常是非确定性的,并且可能会演变(通过更新或漂移模型行为)——如果没有评估,您将不知道您的“智能 agent”是否真的在好好工作,或者它是否退化了。
AI Agent 的评估分为两类:在线评估和离线评估。两者都很有价值,并且相辅相成。我们通常从离线评估开始,因为这是部署任何 agent 之前的最低必要步骤。
🥷 离线评估
这涉及在受控环境中评估 agent,通常使用测试数据集,而不是实时用户查询。您可以使用已整理的数据集,在其中您知道预期的输出或正确的行为,然后在这些数据集上运行您的 agent。
例如,如果您构建了一个数学文字题 agent,您可能有一个包含 100 个已知答案问题的 测试数据集。离线评估通常在开发期间完成(并且可以是 CI/CD 管道的一部分),以检查改进或防止退化。好处是它可重复,并且由于您有真实数据,因此可以获得清晰的准确性指标。您还可以模拟用户查询,并将 agent 的响应与理想答案进行比较,或使用上述自动化指标。
离线评估的关键挑战是确保您的测试数据集全面且保持相关性——agent 在固定的测试集上可能表现良好,但在生产中可能会遇到非常不同的查询。因此,您应该使用新的边缘案例和反映真实世界场景的示例来更新测试集。小型的“冒烟测试”案例和较大的评估集的组合很有用:小型集合用于快速检查,大型集合用于更广泛的性能指标。
🔄 在线评估
这是指在实时的真实世界环境中评估 agent,即在生产中的实际使用期间。在线评估涉及监控 agent 在真实用户交互中的性能并持续分析结果。
例如,您可能会跟踪实时流量的成功率、用户满意度得分或其他指标。在线评估的优势在于它可以捕捉到您在实验室环境中可能无法预测到的情况——您可以观察模型随时间的漂移(如果 agent 的有效性随着输入模式的变化而降低),并捕获测试数据中没有的意外查询或情况。它提供了 agent 在实际应用中的真实表现。
如前所述,在线评估通常涉及收集隐式和显式用户反馈,并可能运行影子测试或 A/B 测试(其中新版本的 agent 并行运行以与旧版本进行比较)。挑战在于,为实时交互获取可靠的标签或分数可能很棘手——您可能依赖于用户反馈或下游指标(例如用户是否点击了结果)。
🤝 结合两者
在实践中,成功的 AI Agent 评估结合了在线和离线方法。您可以运行定期的离线基准测试,以定量评估您的 agent 在已定义任务上的得分,并持续监控实时使用情况,以捕捉基准测试遗漏的内容。例如,离线测试可以捕获代码生成 agent 在已知问题集上的成功率是否正在提高,而在线监控可能会提醒您,用户已开始提出 agent 难以处理的新类别问题。结合两者可以更全面地了解情况。
事实上,许多团队都采用循环方式:离线评估 → 部署新 agent 版本 → 监控在线指标并收集新的失败示例 → 将这些示例添加到离线测试集中 → 迭代。这样,评估是持续且不断改进的。
🧑💻 让我们看看这在实践中是如何运作的
在下一节中,我们将看到如何使用可观测性工具来监控和评估我们的 agent 的示例。
< > 在 GitHub 上更新