MA-RCA: 多智能体根因分析
AIOPS论文学习
本文提出MA-RCA方法,通过专业化Agent分工、集成历史诊断经验及双重验证机制,有效抑制大语言模型在根因分析中的幻觉问题。实验表明,该方法在提升诊断准确率的同时显著降低了幻觉率,为复杂系统故障定位提供了更可靠的解决方案。
目录
MA-RCA: 多智能体根因分析
原文标题: MA-RCA: Multi-Agent Root Cause Analysis
来源: Complex & Intelligent Systems (Springer, November 2025)
关键词: 多智能体、幻觉抑制、历史经验检索、验证Agent
摘要
LLM在根因分析(RCA)中面临幻觉问题——生成看似合理但无依据的因果假设。现有多智能体方法(如mABC)虽然采用投票机制,但忽略了多步推理中上下文切换导致的幻觉。
本文提出MA-RCA,通过:
- 专业化Agent分工: 将RCA工作流分解为专门子任务,减少上下文切换
- 历史诊断经验集成: 引导Agent扩展假设空间并验证潜在指标
- 双重机制抑制幻觉: Agent专业化 + 知识接地
实验表明MA-RCA在真实数据集上达到更高的F1分数,同时有效减少幻觉。
1. 引言
1.1 RCA的核心挑战
- 异常描述与运行数据的复杂映射
- 非结构化日志与结构化指标的语义鸿沟
- 因果关系的组合爆炸
1.2 现有LLM方法的局限
| 方法 | 局限性 |
|---|---|
| 微调方法 | 需要高质量训练数据,难以持续更新 |
| 预定义处理器 | 缺乏对动态拓扑的适应性 |
| ReAct/RCAgent | 工作流自动化但存在幻觉问题 |
| mABC | 忽略上下文切换导致的幻觉 |
1.3 MA-RCA的创新
- 减少上下文切换: 每个Agent专注单一领域
- 知识接地: 历史经验引导假设生成
- 验证机制: 独立Agent验证假设
2. 系统架构
2.1 整体框架
┌─────────────────────────────────────────────────────────────┐
│ MA-RCA Framework │
├─────────────────────────────────────────────────────────────┤
│ │
│ 用户查询 → RCA Agent (中央调度) │
│ ↓ │
│ ┌───────┴───────┐ │
│ ↓ ↓ │
│ Retrieval Agent Validation Agent │
│ (历史检索) (实时验证) │
│ ↓ ↓ │
│ └───────┬───────┘ │
│ ↓ │
│ Report Agent │
│ (报告生成) │
│ ↓ │
│ 诊断结果 │
│ │
│ 支撑组件: │
│ - 历史异常案例库 │
│ - 工具仓库 │
└─────────────────────────────────────────────────────────────┘
2.2 四大核心Agent
| Agent | 职责 | 核心功能 |
|---|---|---|
| RCA Agent | 中央调度 | 输入解析、工作流协调、假设综合 |
| Retrieval Agent | 历史检索 | 从案例库检索相似案例 |
| Validation Agent | 实时验证 | 验证假设与当前数据的一致性 |
| Report Agent | 报告生成 | 生成专业诊断报告 |
3. 核心技术
3.1 RCA Agent - 中央调度器
3.1.1 输入解析机制
强制提取的实体:
- 设备类型: 能量表、传感器等
- 症状: 电压丢失、通信故障等
- 设备ID: 精确硬件标识符
- 时间框架: 时间上下文
完整性检查:
输入: "电表[METER_ID]下午突然电压下降"
解析结果:
{
"device_type": "energy_meter",
"symptom": "voltage_drop",
"device_id": "METER_ID",
"timeframe": "afternoon"
}
缺失字段时 → 触发用户重新输入
3.1.2 Agent调度
工作流程:
- 历史模式匹配: 调度Retrieval Agent检索相似案例
- 实时证据验证: 激活Validation Agent验证
- 因果综合与报告: 协调Report Agent生成结论
3.2 Retrieval Agent - 历史检索
核心功能:
- 基于解析实体查询历史案例库
- 识别相似/相关事件
- 返回可能的根因假设
检索策略:
给定查询 Q = {device_type, symptom, device_id, timeframe}
1. 向量化查询
2. 在案例库中进行相似度搜索
3. 返回Top-K相关案例
4. 提取历史根因作为假设
3.3 Validation Agent - 假设验证
核心功能:
- 验证检索假设与当前系统遥测数据的一致性
- 动态假设验证,减少幻觉
验证流程:
假设: "电容器老化"
验证步骤:
1. 查询相关指标(电压波形、功率因数)
2. 检查是否符合老化特征
3. 交叉验证多数据源
4. 输出: 验证结果 + 置信度
关键设计: 独立于RCA Agent运行,减少上下文切换
3.4 Report Agent - 报告生成
输出结构:
1. 异常摘要
2. 根因分析
3. 证据链
4. 置信度评估
5. 修复建议
4. 幻觉抑制机制
4.1 Agent专业化
问题: 单Agent处理全流程时频繁切换上下文,容易幻觉
解决: 每个Agent专注单一领域
RCA Agent: 只负责解析和调度
Retrieval Agent: 只负责检索
Validation Agent: 只负责验证
Report Agent: 只负责报告
效果: 减少上下文污染,降低错误传播
4.2 知识接地
问题: 无历史经验时Agent容易”编造”假设
解决: 强制从历史案例库检索
假设生成必须来自:
1. 历史相似案例的根因
2. 领域知识库的已知模式
禁止: 凭空生成未见过的假设
4.3 验证机制
问题: 即使有假设,也可能不适用当前情况
解决: 独立验证Agent
每个假设必须通过:
1. 数据一致性检查
2. 时间相关性验证
3. 多源交叉验证
未通过验证的假设被过滤
5. 实验
5.1 数据集
- 电网异常诊断数据集
- 云平台事件数据集
5.2 基线方法
- ReAct
- RCAgent
- mABC
5.3 主要结果
| 方法 | 准确率 | F1 Score | 幻觉率 |
|---|---|---|---|
| ReAct | 52.3% | 0.54 | 28% |
| RCAgent | 61.5% | 0.63 | 21% |
| mABC | 67.2% | 0.69 | 15% |
| MA-RCA | 74.8% | 0.76 | 8% |
关键发现:
- 准确率提升11%
- 幻觉率降低47%
5.4 消融研究
| 配置 | F1 Score |
|---|---|
| 完整MA-RCA | 0.76 |
| 无Validation Agent | 0.68 |
| 无历史检索 | 0.62 |
| 单Agent | 0.58 |
6. 与mABC的对比
| 维度 | MA-RCA | mABC |
|---|---|---|
| 幻觉来源认识 | 上下文切换 | 单Agent决策 |
| 解决方案 | 专业化分工+验证 | 多Agent投票 |
| 历史知识 | 强制检索 | 可选 |
| 验证机制 | 独立Agent | 投票验证 |
7. 结论
MA-RCA通过Agent专业化和知识接地双重机制有效抑制LLM幻觉:
- 专业化分工减少上下文切换导致的错误传播
- 历史检索确保假设有据可查
- 独立验证过滤不一致假设
实验证明MA-RCA在准确率和幻觉抑制方面都优于现有方法。
附录:Agent提示词模板
RCA Agent - 输入解析
请从以下异常描述中提取关键实体:
- 设备类型
- 症状描述
- 设备ID
- 时间信息
如有缺失,请标注需要补充的字段。
Validation Agent - 假设验证
假设: {hypothesis}
相关数据: {telemetry_data}
请验证假设与数据的一致性:
1. 数据是否支持该假设?
2. 是否存在矛盾证据?
3. 置信度评估(0-100)