praveenpandey-ai-researcher/ira-incident-response-agent
GitHub: praveenpandey-ai-researcher/ira-incident-response-agent
这是一个基于多代理架构的生产事故自动调查系统,通过证据优先推理来分析日志和指标,从而避免幻觉并确定根本原因。
Stars: 0 | Forks: 0
# Incident Response Agent


## 📋 概述
**Incident Response Agent** 是一个旨在通过分析日志、指标、警报和聊天数据来自动调查生产事故的代理系统。该代理不会产生推测性结论,而是根据确凿的证据验证每一个主张,并在信心不足时安全地降级为不确定结果。
### 🎯 核心理念
- **证据优先推理** – 每个主张都可追溯到确凿证据
- **防止幻觉** – 不接受毫无根据的假设
- **模块化设计** – 具有严格契约的职责明确的代理
- **安全故障模式** – 明确的“不确定”结果,绝无静默失败
## 🔍 问题背景
现代事故响应要求工程师在时间压力下手动关联多个数据源:
- 📊 应用和服务日志
- 📈 系统和业务指标
- 🚨 告警信号
- 💬 人员聊天或运行手册上下文
手动调查**缓慢**、**容易出错**,并且在证据微弱或相互矛盾时,往往会导致**幻觉般的根本原因**。
## ✨ 解决方案
该系统采用**多代理架构**,其中每个代理都有严格定义的职责和严格的输入/输出契约,从而确保:
- 明确的主体验证
- 确定性的工具行为
- 可解释的输出
- 健壮的调查工作流
## 🏗️ 代理架构
### 1. **Triage Agent**
确定事故是否存在,对严重程度和范围进行分类,并建立初步的调查边界。
### 2. **Forensics Agent**
分析日志、指标、警报和聊天数据,以检测异常、时间相关性并提取具体的证据信号。
### 3. **Hypothesis Agent**
生成潜在的根本原因假设,将每个假设与观察到的证据联系起来,并生成结构化的、可测试的主张。
### 4. **Verifier Agent**
根据确凿证据验证每个假设,拒绝没有根据的主张,并将模棱两可的结果标记为**Inconclusive**(不确定)。
## 🔄 调查工作流
```
1. Load structured and unstructured input data
↓
2. Detect anomalies in logs and metrics
↓
3. Extract entities and correlate signals across sources
↓
4. Construct chronological incident timeline
↓
5. Generate root-cause hypotheses
↓
6. Verify claims using explicit evidence references
↓
7. Produce final, explainable incident report
```
## 📁 项目结构
```
incident-response-agent/
├── main.py # Entry point
├── app.py # Application logic
├── README.md # This file
├── requirements.txt # Dependencies
│
├── agents/ # Multi-agent investigation system
│ ├── triage_agent.py # Incident classification
│ ├── forensics_agent.py # Evidence extraction
│ ├── hypothesis_agent.py # Root-cause generation
│ └── verifier_agent.py # Claim validation
│
├── tools/ # Utility tools
│ ├── file_loader.py # Load input data
│ ├── log_search.py # Query logs
│ ├── metrics_parser.py # Parse metrics
│ ├── anomaly_detector.py # Detect anomalies
│ ├── entity_extractor.py # Extract entities
│ └── runbook_engine.py # Execute runbooks
│
├── state/ # State management
│ └── graph.py # Investigation graph
│
├── logs/ # Sample incident logs
│ ├── auth.log
│ ├── payments.log
│ └── orders.log
│
├── gold/ # Test fixtures
│ └── expected.json # Expected outputs
│
└── tests/ # Test scenarios
└── test_scenarios.md
```
## 🚀 快速开始
### 环境要求
- Python 3.9+
- pip(Python 包管理器)
### 安装
```
# 克隆仓库
git clone
cd incident-response-agent
# 安装依赖
pip install -r requirements.txt
```
### 运行系统
```
python main.py
```
### 预期输出
系统将生成:
- ✅ 带有时间戳的结构化事故时间线
- ✅ 严重程度和影响分类
- ✅ 带有证据引用的根本原因分析
- ✅ 当证据不足时显示“Inconclusive”结果
## 📊 评估结果
该 Agentic Incident Response 系统根据预定义的黄金标准用例(`gold/expected.json`)和一组 12 个鲁棒性场景进行了评估。
### 1. **Timeline Accuracy** ✓ 100%
| 指标 | 数值 |
|--------|-------|
| **定义** | 在 ±2 分钟容差范围内正确识别的预期时间线锚点的百分比 |
| **结果** | 6 / 6 个关键锚点匹配 (100%) |
| **方法** | 将代理生成的时间线事件与黄金标准用例中的 `expected_timeline_anchors` 进行比较 |
### 2. **Evidence Coverage** ✓ 100%
| 指标 | 数值 |
|--------|-------|
| **定义** | 由明确证据引用(日志、指标、警报、聊天)支持的主要主张的百分比 |
| **结果** | 100% 的严重程度、开始时间、影响和根本原因主张都包含证据引用 |
| **方法** | Verifier agent 会拒绝任何缺乏证据的主张 |
### 3. **Hallucination Rate** ✓ 0%
| 指标 | 数值 |
|--------|-------|
| **定义** | 在没有支持证据的情况下提出的主张的百分比 |
| **结果** | 0% — 未检测到幻觉 |
| **方法** | 所有假设和结论均由 Verifier Agent 验证;缺乏根据的主张被拒绝或标记为不确定 |
### 4. **Tool-Call Correctness** ✓ 100%
| 指标 | 数值 |
|--------|-------|
| **定义** | 产生有效、预期输出的工具调用的百分比 |
| **结果** | 所有工具类别均为 100% |
| **覆盖的工具** | 文件加载、日志搜索、指标解析、异常检测、实体提取、运行手册应用 |
| **方法** | 具有明确输入/输出契约的确定性工具;故障安全传播,不会出现静默错误 |
### 5. **Robustness Across Scenarios** ✓ Passed
| 指标 | 数值 |
|--------|-------|
| **摘要** | 代理在部分数据、噪声输入、冲突信号和缺失源的情况下表现正确 |
| **结果** | 在模糊情况下,系统正确降级为“Inconclusive”,而不是幻觉出根本原因 |
## 🛡️ 设计原则
1. **证据优先推理** – 每个主张都由确凿证据支持
2. **确定性工具行为** – 可重现、可预测的工具调用
3. **模块化、可测试的代理** – 关注点清晰分离
4. **可解释的输出** – 每个结论都有据可依
5. **安全故障模式** – 无推测性结论或静默失败
## 🎓 关键保证
✅ **每个主张均可追溯**至确凿证据(日志、指标、警报或聊天)
✅ **拒绝不受支持的假设** – 不接受部分证据
✅ **无静默失败** – 明确的错误处理和降级
✅ **防止推测性结论** – 强制执行信心阈值
## 许可证
本项目采用 MIT 许可证。详情请参见 LICENSE。
## 🎯 关键要点
**Incident Response Agent** 展示了一种可靠且可解释的自动化事故调查方法。通过执行严格的证据验证和代理级别的问责制,该系统:
- **避免幻觉**,即使在输入不完整和有噪声的情况下
- **保持鲁棒性**,能够应对各种数据源和场景
- **提供可解释的推理**,并附带完整的证据链
- **自然扩展**,得益于模块化、可测试的代理架构
*Built with 🔍 for evidence-driven incident response.*
标签:AIOps, C2, CIDR输入, incident-response, LLM, MIT License, PyRIT, Python, Unmanaged PE, 人工智能, 告警聚合, 多智能体系统, 故障排查, 无后门, 智能运维, 根因分析, 用户模式Hook绕过, 监控指标, 自动化调查, 证据链, 逆向工具