↓ 跳过正文
  1. Post/

评测一个运维 Agent:阿里云 STAROps 的评测集构建与调优实践

·132 字·1 分钟

最近读了阿里云云原生公众号的《完整还原已经服务千家企业的 AIOps Agent 的评测和调优实践》,讲的是他们的生产运维 Agent STAROps 怎么构建评测集、怎么用评测结果反过来调优。这篇文章信息密度很高,把其中我认为最值得记的思路整理在这里。

原文:https://mp.weixin.qq.com/s/U3djT_peTic52CdpxEhNeQ (收录于开源项目 Alibaba AI Agent Handbook)

核心观点:结论正确 ≠ 过程可信
#

传统评测只看 Agent 最后给出的根因对不对,像考场答题。但一次根因分析实际是「Agent 判断 → 工具取证」的多轮循环,真正的能力藏在这个循环里。文章提出要评三件事:

  1. 思路是否通用——在一类故障上表现好,换个场景可能就不行,评测集要覆盖足够多的场景才能看出差异;
  2. 结果错在哪一步——要能对照每一步:调了什么工具、返回了什么、据此做了什么判断;
  3. 执行效率——有没有无效调用、上下文是否越堆越乱。

还有一类最难发现的错误:时间窗查错。工具调用成功、数据真实、推理自洽,甚至结论碰巧正确——但数据对应的根本不是这次故障的时间段。要抓住这类错误,评测数据必须记录故障的真实时间窗供对照。这是全文反复强调「证据」的由来。

一条评测数据长什么样
#

核心要求是能还原一次完整的分析轨迹,而不只是答案。轨迹分五步:目标、观测、工具、动作、结果。轨迹与答案的区别在于:只存答案只能比结论;存了轨迹,才能看出 Agent 在哪一步查错了数据、做错了判断。答案对了也可能是碰巧对的。

除轨迹外,还要一起保存两样东西:

  • 配套条件(环境、工具、观测手段)——否则下一个版本的 Agent 跑同一道题时换了环境,结果不可比;
  • 核验依据(评价标准)——否则分数变化说不清是 Agent 变了还是判分的人变了。

运维场景还有四个特有约束:环境绑定(故障要在真实服务和流量里发生)、时间绑定(调用链等证据保留期短,要及时保全)、完整因果链(每一步都要有证据)、低频高风险(生产故障不能反复试,用故障注入在评测环境里造出来)。

标准答案的七个字段
#

这一节最具体、最有参考价值。一份可核验的标准答案由七个字段组成:

字段作用
根因实体写到具体资源或服务,才能判断定位准不准
故障类型记录可验证的机制,不是表面现象
因果链原因、传播、影响分开写,Agent 把传播节点当根因时能看出错在哪
鉴别点为什么排除了相似候选——答案不仅说明「是什么」,还要说明「不是什么」
告警锚点实际触发的事件和时间窗,专治时间窗查错
关键数字必须附上原查询,谁都可以重查一遍
评分规则按字段独立打分,可以根因对而传播链错

其中对数字的要求近乎苛刻:文中有个例子,一条答案写着「错误率约 25%」,人工阅读没发现异常,工具重新查连续五个时间窗的错误数均为零。由此形成的规则是:写不出可执行查询的数字,不能进入标准答案。

构建流程:注入只是其中一步
#

一条数据的构建共十二步、四个阶段:设计(Agent 选场景、设计故障)→ 注入与验证(工具执行,必须确认干净基线、验证信号真生效、等告警真触发、恢复环境)→ 取证与写答案(故障期间和恢复后各取一次)→ 检查与入库(程序门禁查规则可判的事,准入复核查需要判断的事)。

两个容易踩的坑值得记下:

  • 注入命令执行成功 ≠ 故障发生了。注入完成要逐项证明信号真的出现,包括告警源头对不对、有没有别的变更混进来、异常有没有沿调用链传播出去;
  • 噪音干扰直接作废。同一个时间窗里有别人的故障在跑,这次注入的信号就说不清是谁的。

多 Agent 分工与「AI Native」的压力测试
#

构建拆给四个 Agent 并行:ScenarioAgent(题目)、EnvironmentAgent(环境)、BuildAgent(构建与复核)、SupervisorAgent(质量监督)。人的位置是三件事:定目标、定验收、终审——这些要结合业务判断,留给人类;逐条构建、逐条核对交给 Agent。值得注意的是:复核时不沿用构建时的上下文,要重新取证据核对,否则复核会顺着已有的答案走。

文章有个很有意思的视角:评测集是用来评 Agent 的,但构建评测集本身也是一项复杂的 Agent 任务,能看出一个组织的 Agent 工程成熟度——它同时考验 Agent 自身能力、Agent 间协同、基础设施(环境可重建、状态保存、失败重试)和治理机制(程序检查、独立复核、人工终审)。

题目从哪来:能力地图 + 线上回流
#

两个出题来源:

  1. 能力地图:横轴是能力域(代码与变更、数据库、容器、中间件、云产品、主机、网络),纵轴是难度(单点故障 → 有传播链 → 多故障并发 → 告警风暴)。纵轴的本质是要排除多少干扰才能定位。空着的格子就是没覆盖的能力,告警风暴那一格是下一批构建任务;
  2. 线上回流:真实发生过的问题还原成评测数据。顺序很要紧——先保全,再还原,因为调用链这类证据保留期短。机制还原(Agent)→ 等价重放(工具)→ 重建验证(程序比对线上与重放的信号时序)。

评测集本身也要被评测
#

入库前合格不代表一直有效,五项检查按短板执行(不能用平均分抵消局部问题):质量、覆盖、区分度、规模、新鲜度。

最有启发的是区分度:评测集用久了,强弱模型都能拿高分,分数失去区分能力。此时主动提高难度再比较——把简单题换成有传播链的、多故障并发的,看分差能否重新拉开。加难后分数下降不能读成能力退步,是题目变难了。

新鲜度也不能只看数据年龄:基础镜像、告警规则一变,昨天刚建好的数据也可能跑不通。主要看抽样原样重跑,年龄只是辅助。失效数据要下架,否则被评 Agent 答错会被记成能力问题,研发可能去修一个并不存在的缺陷。

成本的诚实提醒
#

三项投入(人工、环境、模型调用)的走向:起步靠人工,中期环境投入追上来,后期构建侧模型调用超过人工,而环境成为最高的一块——集群、流量、观测常年在跑。所以用了 Agent,总成本不一定下降,真正减少的是重复的人工操作。文中引用公开研究:自动化流水线构建一条被接受的评测任务约 40 美元、1-2 小时。

我的几点收获
#

  1. 「结论正确不等于过程可信」对任何 Agent 评测都成立,不只运维——评估要从「看答案」转向「看轨迹」;
  2. 标准答案的质量决定评估上限:七个字段的设计(尤其鉴别点和告警锚点)是可直接借鉴的模板;
  3. 评测集是活的东西,需要和产品一样持续迭代、检查、下架失效数据;
  4. 自动化构建评测集本身,就是检验一个团队 Agent 工程能力的试金石。

相关文章