HCY Blog

RCAgent: 基于工具增强大语言模型的自主智能体云端根因分析

AIOPS论文学习

本文介绍了RCAgent,一个基于工具增强大语言模型的自主智能体框架,用于云端根因分析。该框架通过自主决策调用工具进行自由数据收集与综合分析,并采用轨迹自一致性等技术提升稳定性。

RCAgent: 基于工具增强大语言模型的自主智能体云端根因分析

原文标题: RCAgent: Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models

来源: CIKM 2024 (ACM International Conference on Information and Knowledge Management)

作者: Zefan Wang, Zichuan Liu, Yingying Zhang, Aoxiao Zhong, Jihong Wang, Fengbin Yin, Lunting Fan, Lingfei Wu, Qingsong Wen

机构: 清华大学、南京大学、阿里巴巴集团、哈佛大学、西安交通大学


摘要

大型语言模型(LLM)在云端根因分析(RCA)中的应用近期得到积极探索。然而,当前方法仍然依赖于手动工作流设置,并未充分释放LLM的决策和环境交互能力。

我们提出RCAgent,一个工具增强的LLM自主智能体框架,用于实际的、隐私感知的工业RCA场景。RCAgent运行在内部部署的模型上(而非GPT系列),能够通过工具进行自由形式的数据收集和综合分析。

我们的框架结合了多种增强功能,包括:

  • 独特的动作轨迹自一致性(Self-Consistency)
  • 上下文管理方法套件
  • 稳定化技术
  • 领域知识导入机制

实验表明,RCAgent在RCA的所有方面——预测根因、解决方案、证据和责任——都明显且一致地优于ReAct,并在自动化指标和人工评估中得到验证。此外,RCAgent已集成到阿里云Apache Flink实时计算平台的诊断和问题发现工作流中


1. 引言

1.1 背景

云计算平台近年来被越来越多地用于应用程序和服务部署。云计算系统中的异常(如不可恢复的故障和挂起的作业)严重影响客户体验,并可能违反服务级别协议。根因分析(RCA)是站点可靠性工程的核心组件,正受到亚马逊、微软、谷歌和阿里巴巴等大型云计算企业的持续关注。

1.2 现有方法的局限性

  1. 基于规则的方法: 需要手动制定规则,难以处理新场景
  2. 机器学习方法: 需要大量标注数据,范围受限
  3. 早期LLM方法: 使用手动设计的固定工作流,无法适应复杂场景

1.3 RCAgent的创新

  • 自主决策能力: 智能体自主决定何时调用何种工具
  • 自由形式数据收集: 不受预定义工作流限制
  • 隐私保护: 可在本地部署的模型上运行
  • 生产验证: 已在阿里云真实生产环境部署

2. 框架概述

2.1 整体架构

RCAgent采用Controller Agent + Expert Agent架构:

┌─────────────────────────────────────────────────┐
│                Controller Agent                  │
│  (基于Vicuna-13B的决策中心)                       │
│                                                   │
│  思考 → 行动 → 观察 → 思考 → ...                 │
└─────────────────────────────────────────────────┘
         │                    │
         ▼                    ▼
┌─────────────┐      ┌─────────────────────┐
│  数据收集工具 │      │    专家Agent工具     │
│  - SQL查询   │      │  - 代码分析工具      │
│  - API调用   │      │  - 日志分析工具      │
│  - 指标获取   │      │                      │
└─────────────┘      └─────────────────────┘

2.2 核心组件

组件功能
Controller Agent决策中心,决定调用什么工具、何时结束
Data Collection Tools执行SQL查询、API调用等数据收集任务
Code Analysis Tool递归分析代码文件,提供代码相关洞察
Log Analysis Tool基于RAG的日志分析,处理长日志数据

3. 核心技术

3.1 工具设计

3.1.1 数据收集工具

  • 执行SQL查询获取数据库信息
  • 调用API获取系统状态
  • 收集监控指标

3.1.2 代码分析工具(专家Agent)

递归分析流程:

  1. 给定类名,在代码仓库中搜索对应文件
  2. LLM阅读分析代码后,推荐其他可能有帮助的类
  3. 推荐的类加入任务队列
  4. 持续直到无更多推荐或全是外部依赖
  5. 汇总所有代码文件分析结果

3.1.3 日志分析工具(专家Agent)

基于上下文的RAG范式:

# 算法伪代码
1. 将日志L按分隔符分割为行S
2. 计算嵌入向量,构建加权图
3. 使用Louvain社区检测聚类
4. 贪婪去除聚类重叠
5. 逐块进行RAG分析
6. 过滤幻觉结果(模糊匹配验证)
7. 汇总输出解释和证据

关键设计:

  • 权重 = 余弦相似度 × exp(-文档距离)
  • 要求LLM输出支持分析的证据(直接复制日志内容)
  • 使用模糊匹配验证证据,过滤幻觉

3.2 稳定化技术

3.2.1 JSON修复(JsonRegen)

  • 预处理:替换敏感字符
  • 失败时:指示LLM转换为YAML
  • 重新生成:基于YAML结构重建JSON
  • 多轮尝试直到成功

3.2.2 错误处理

预定义标准标记问题动作:

  • 重复调用相同参数的无状态工具
  • 向专家Agent输入无意义内容
  • 未充分调查就过早结束

3.3 轨迹级自一致性(TSC)

传统SC的问题:

  • 多轮思考-行动-观察采样成本高
  • 某些动作(如激活专家Agent)消耗大
  • 无历史的随机采样导致大量错误

TSC解决方案:

开始 → 贪婪解码步骤 → 贪婪解码步骤 → ...

                           进入结束阶段

                    ┌───────┬───────┬───────┐
                    ↓       ↓       ↓       ↓
                 采样1   采样2   采样3  ... 采样K
                    ↓       ↓       ↓       ↓
                 结束1   结束2   结束3  ... 结束K
                    └───────┴───────┴───────┘

                              聚合输出

优势:

  • 共享预备步骤,减少消耗
  • 贪婪解码历史提供示例
  • 平衡全过程SC和单步CoT SC

3.4 上下文管理

应对长上下文问题:

  1. 长短时记忆: 区分重要信息和临时信息
  2. 自动摘要: 超长观察结果自动压缩
  3. 相关性过滤: 保留与当前任务最相关的历史

4. 实验

4.1 实验配置

  • 模型: Vicuna-13B-V1.5-16K
  • 硬件: NVIDIA A100 SXM4 GPU (80GB)
  • 嵌入模型: GTE-LARGE
  • 自一致性采样: 10个样本

4.2 数据集

基于阿里云Apache Flink实时计算平台的真实工单数据:

  • 峰值吞吐量:每秒1亿条数据记录
  • 包含规则覆盖和未覆盖的案例

4.3 评估指标

维度指标
根因预测准确率、召回率
解决方案BLEU、ROUGE、BARTScore
证据准确性、完整性
责任归属准确率

4.4 主要结果

对比ReAct基线:

任务ReActRCAgent提升
根因预测52.3%71.8%+19.5%
解决方案质量0.420.58+38%
证据准确性61.2%79.4%+18.2%

消融实验:

  • TSC贡献最大
  • 专家Agent必不可少
  • 错误处理有效减少无效动作

4.5 人工评估

专业SRE工程师评估:

  • RCAgent答案在实用性和准确性上显著优于基线
  • 特别在规则未覆盖的新场景中优势明显

5. 生产部署

RCAgent已集成到阿里云Flink实时计算平台:

部署特点:

  • 内部模型部署,保护数据隐私
  • 支持实时工单处理
  • 与现有运维系统无缝集成

实际效果:

  • 减少人工分析时间
  • 提高根因识别准确率
  • 支持7x24小时自动化诊断

6. 结论

RCAgent通过工具增强的LLM自主智能体方法,实现了:

  1. 自由形式的数据收集和综合分析
  2. 在本地部署模型上运行,保护隐私
  3. 轨迹级自一致性提升生成质量
  4. 成功应用于阿里云生产环境

这为云端AIOps中的RCA提供了一个实用、可扩展的解决方案。


附录:关键公式

日志分析权重计算

w_ij = CosSim(v_si, v_sj) × exp(-d_ij)

自一致性聚合

result = arg max_i (Sim(a_i, 1/K × Σ_j(a_j)))

幻觉过滤条件

if Levenshtein(evidence, chunk) < Length(chunk) - Length(evidence) × 0.9:
    保留结果
else:
    丢弃结果