o11y-bench:评估可观测性AI代理的开源基准测试

概述

在SRE和可观测性实践中,AI代理正逐渐成为辅助故障排查、性能分析和仪表板管理的强大工具。然而,评估一个代理是否真的“可靠”——尤其是在复杂、动态的生产系统环境中——远比评估其编码或通用工具调用能力要困难得多。o11y-bench 是由 Grafana Labs 开源的一个基准测试框架,旨在专门解决这一评估难题。它让开发者能够在真实的 Grafana 技术栈(包括 Metrics、Logs、Traces)中,对AI代理执行一系列可观测性工作流任务,并依据可观测的结果而非仅仅是流畅的文本来进行评分。这对于筛选能够在生产环境中真正帮助工程师的、值得信赖的AI代理至关重要。

核心概念

为什么可观测性需要专属的基准测试?

可观测性任务与标准的工具调用问题有本质区别。例如,调查一次根因故障或修复一个仪表板,需要代理能够:

  • 关联多种信号:在指标(Metrics)、日志(Logs)和追踪(Traces)之间建立联系。
  • 理解时间上下文:正确处理时间范围查询。
  • 处理有状态操作:例如修改仪表板时,需保证不影响其他工程师依赖的配置。
  • 区分噪音与症状:判断一个指标峰值是偶发噪音还是问题征兆。

因此,仅仅生成一个语法正确的查询语句或让仪表板成功渲染是不够的。一个查询可能选错了数据系列,一个仪表板可能保存了错误的变量配置。o11y-bench 通过模拟这些复杂性,旨在区分一个“看起来有用”的代理和一个“在真实工作流中值得信赖”的代理。

评估指标:一致性优于偶然成功

o11y-bench 引入了两个核心评分指标来全面衡量代理性能:

  • Pass^3:衡量一致性。计算代理在三次独立尝试中获得的平均分。分数越高,表示代理越稳定、越可靠。
  • Pass@3:衡量最佳结果。表示代理在三次尝试中至少有一次成功完成任务。这反映了代理的潜在能力上限。

在SRE场景中,一致性(Pass^3)比偶然成功(Pass@3)更重要。一个在大部分情况下能给出正确答案的代理,远比一个时好时坏的代理更有价值。后者的一个微小失误就可能将工程师引向错误的调查方向。

实践

基准测试环境与任务

o11y-bench 基于 Harbor 框架构建,它会启动一个沙盒环境,其中包含一个运行着合成指标、日志和追踪数据的 Grafana Docker 容器。代理可以通过 Grafana MCP Server 与该环境交互。

首次公开发布包含 63个任务,覆盖了核心的可观测性工作流:

  • Prometheus 与 PromQL 查询:例如,查询特定服务的CPU指标、识别重试队列堆积。
  • Loki 与 LogQL 查询:例如,分析错误日志模式。
  • Tempo 与 TraceQL 查询:例如,追踪特定请求链路。
  • 多步骤事故调查:需要跨多个信号和步骤进行关联分析。
  • 仪表板编辑与修复:修改现有仪表板的面板、变量或数据源。

例如,任务 promql-retry-backlog-triage 要求代理诊断过去六小时内重试积压最严重的服务。这需要代理能精准构造PromQL查询,而不是收集过多无关信息导致超时。

验证机制:基于事实的评分

o11y-bench 的关键创新在于其严格的验证逻辑。它不依赖代理的自然语言解释作为评判依据,而是执行以下步骤:

  1. 运行参考查询:针对查询类任务,基准测试会在同一数据集上运行一个预先定义的“标准答案”查询。
  2. 比对结果:将代理生成的查询结果与参考查询的结果进行比对,验证数值或数据点的准确性。
  3. 检查有状态变更:对于仪表板任务,它会检查保存后的 Grafana 仪表板状态(如面板JSON、变量绑定),并执行保存的查询,以确认其行为符合预期。
  4. 综合评分:结合结果正确性(主要依据)和代理的解释进行评分,确保评分基于可验证的事实。

如何运行

快速开始非常简单。克隆 grafana/o11y-bench 仓库后,可以使用如下命令运行单个任务:

mise run bench:job -- --model openai/gpt-5.4-nano --task-name query-cpu-metrics --agent opencode

该命令会在指定的模型和代理上运行 query-cpu-metrics 任务,并将结果(包括代理的执行轨迹、LLM评委和启发式评分)输出到 /jobs 目录供分析。

SRE 要点

与可靠性工程的关联

o11y-bench 直接服务于提升自动化可观测性工作流的可靠性。其结果可以帮助SRE团队:

  • 筛选可靠的AI工具:选择在一致性和准确性上表现最好的代理,用于自动化巡检、初步事故分诊或常见问题诊断。
  • 识别潜在风险:了解不同模型/代理组合在特定任务(如仪表板修改)上的弱点,避免将其用于高风险操作。
  • 衡量改进:为未来开发或微调的、专注于可观测性的AI模型提供客观的评估基准。

最佳实践与常见反模式

  • 最佳实践:在考虑将AI代理集成到事故响应流程前,使用类似 o11y-bench 的基准测试对其进行严格评估。优先关注其 Pass^3 分数,确保其输出稳定可靠。
  • 反模式:仅凭演示环境(demo)或少量成功案例就信任一个代理用于生产调查。可观测性任务中,“几乎正确”和“完全正确”之间的差距可能导致严重的调查偏移。
  • 关注成本与效率:基准测试还记录了代理的 token 消耗和耗时。高思考量的模型可能最终能得出正确答案,但若耗时过长或成本过高,在实际的事件响应中可能不适用。

相关指标与进一步阅读

o11y-bench 的评分理念与 observability-slis-slos 中的 可靠性 定义高度一致:它关注系统(此处为AI代理)是否能够持续、稳定地执行其预期功能。评估AI代理的性能,正成为构建可靠AI系统的新前沿。

更多关于评估方法论的深入探讨,可参考 Anthropic 博客关于代理评估的文章。o11y-bench 本身也是一个持续演进的开放项目,欢迎社区贡献新的任务、模型评估结果和改进建议。