{
“uuid”: “31392fda-93-...”,
“root_cause”: “shippingservice”,
“fault_type”: “pod_restart”,
“reasoning”: “Metric Agent detected a restart in shippingservice-0 (pod_processes drop). Log Agent confirmed startup logs at the same timestamp. Although CartService showed high latency, it was identified as a downstream effect...”,
“score”: {
“accuracy”: 0.95,
“confidence”: 0.87
}
}
Context-RCA: Multi-Agent Root Cause Analysis System
Context-RCA 是一个基于大语言模型(LLM)和多智能体协作(Multi-Agent Collaboration)架构的微服务故障根因分析系统。它模拟了一支由资深 SRE 专家组成的”虚拟作战室”,通过严谨的 SOP(标准作业程序)和多轮辩论机制,自动化完成从现象发现、证据搜集到根因定性的全过程。
系统架构与方法论
1. 架构分层
Orchestration Layer (编排层)
Expert Layer (专家层)
Reasoning Layer (推理层)
Reporting Layer (报告层)
2. 诊断工作流
分析过程遵循严格的三阶段 SOP:
Phase I: 多视角证据挖掘 Orchestrator 调度 Data Collection Agent 并行启动三位领域专家 (Metric, Log, Trace)。各专家独立从各自的数据源中提取局部证据和异常发现。
Phase II: 协作推理与共识 Consensus Discussion Agent 启动辩论循环:
Phase III: 最终裁决报告 Orchestrator 将最终共识上下文传递给 Report Agent,生成人类可读的最终报告。
graph TD User((User Input)) --> Orch[Orchestrator Agent] Orch -->|Dispatch| DC[Data Collection Agent] DC -->|Parallel| M[Metric Agent] DC -->|Parallel| L[Log Agent] DC -->|Parallel| T[Trace Agent] M -->|Findings| Context[Shared Context] L -->|Findings| Context T -->|Findings| Context Context --> Consensus[Consensus Agent] Consensus -->|Challenge/Query| DC DC -->|Refined Evidence| Context Consensus -->|Final Verdict| Report[Report Agent] Report --> Result[JSON Report] classDef agent fill:#e1f5fe,stroke:#01579b,stroke-width:2px class Orch,M,L,T,Consensus,Report agent3. 方法论亮点
快速开始
1. 环境准备
本项目使用
uv进行依赖管理:2. 配置
在
context_rca/.env文件中配置 LLM API:3. 运行方式
批量运行(推荐)
使用
main.py进行批量分析,支持多进程并行:参数说明:
--batch: 批量运行模式,处理input/input.json中的所有案例--workers N: 并发进程数(默认 1,单进程模式)--random N: 随机选择 N 个案例运行--repeat N: 每个案例重复运行 N 次(默认 1)--output PATH: 指定输出文件路径(默认output/result.jsonl)单案例调试
开发调试时,使用单案例模式快速验证:
4. 输出说明
output/result.jsonllogs/<uuid>/run.log输出格式
系统输出标准的 JSONL 格式,每行包含一个案例的完整分析结果:
项目结构
依赖项
核心依赖:
google-adk: Google Agent Development Kit,多智能体框架litellm: 统一的 LLM API 接口drain3: 日志解析scikit-learn: 异常检测(Isolation Forest)networkx: 服务依赖图分析pandas: 数据处理完整依赖列表见
pyproject.toml。结果分析
使用
analyze_results.py分析批量运行结果:输出包括: