kauthamd/multi-agent-SRE-assistant
GitHub: kauthamd/multi-agent-SRE-assistant
一个基于 n8n 的多智能体 SRE 事件响应模拟系统,通过分析模拟的生产证据并检索 runbook 来自动化完成故障调查、根因分析和修复建议报告。
Stars: 0 | Forks: 0
# 多智能体 SRE 助手
这是一个用于站点可靠性工程(SRE)工作流的智能体事件响应模拟器。本项目将 n8n 多智能体工作流与模拟的生产事件数据集相结合,使 AI 系统能够对告警进行分类、检查 Kubernetes 和应用程序证据、识别可能的根本原因、检索 runbook 指南,并生成具备人工审批意识的事件报告。
默认场景会调查一起生产环境的 `checkout-api` 事件,即用户在部署后遇到结账失败的情况。
## 本项目演示的内容
- 由专门的 SRE 智能体进行的多智能体事件调查
- 跨告警、Kubernetes 状态、日志和发布历史的证据驱动型根因分析
- 基于 runbook 指导的修复建议
- 在执行影响生产环境的操作前设定明确的人工审批边界
- 提供可重用的本地数据集,用于测试和迭代智能体 SRE 工作流
## 项目结构
```
.
|-- agentic_incident_dataset/
| |-- alerts.json
| |-- application_logs.txt
| |-- deployment_history.txt
| |-- expected_agent_output.md
| |-- incident_input.txt
| |-- kubectl_describe_pod.txt
| |-- kubectl_get_pods.txt
| |-- recent_changes.json
| |-- additional_scenarios/
| | |-- cpu_saturation_incident.txt
| | |-- db_timeout_incident.txt
| | `-- imagepullbackoff_incident.txt
| `-- runbooks/
| |-- crashloopbackoff_runbook.md
| `-- high_5xx_runbook.md
`-- n8n/
`-- Agentic Incident Response System.json
```
## 系统架构
n8n 工作流 `Agentic Incident Response System` 采用分阶段的多智能体模式:
```
flowchart TD
User[Incident prompt from SRE or operator] --> Trigger[n8n Chat Trigger]
Trigger --> Evidence[Incident evidence bundle]
Evidence --> AlertAgent[Alert Analysis Agent]
Evidence --> KubeAgent[Kubernetes Investigation Agent]
Evidence --> LogAgent[Application Log Analysis Agent]
AlertAgent --> Findings[Consolidated specialist findings]
KubeAgent --> Findings
LogAgent --> Findings
Findings --> RCAAgent[Root Cause Analysis Agent]
RCAAgent --> RemediationAgent[Remediation Agent]
RemediationAgent -. RAG lookup .-> Runbooks[Runbook knowledge base]
Runbooks -. Retrieved guidance .-> RemediationAgent
RemediationAgent --> ApprovalAgent[Human Approval Boundary Agent]
ApprovalAgent --> ReportAgent[Incident Report Agent]
ReportAgent --> Output[Final incident report]
```
1. **Chat Trigger** 接收事件提示词。
2. **专家智能体 (Specialist Agents)** 并行分析告警、Kubernetes 健康状况和应用程序日志。
3. **RCA 智能体** 关联专家发现并识别可能的根本原因。
4. **修复智能体 (Remediation Agent)** 使用 RAG 检索 runbook 指南并推荐安全的下一步操作。
5. **人工审批智能体 (Human Approval Agent)** 定义哪些生产操作需要审批。
6. **事件报告智能体 (Incident Report Agent)** 创建最终面向管理层的事件报告。
该工作流使用 `gpt-4o-mini` 并将 temperature 设为 `0` 以进行确定性分析。它还包含 OpenAI embeddings 和用于 runbook 检索的 Pinecone 向量存储工具。
### 架构说明
- **n8n** 负责编排工作流,并在各智能体之间传递结构化的证据。
- **OpenAI Chat Model** 为专家智能体、根因分析、修复规划、审批边界审查以及最终报告生成提供支持。
- **修复智能体 RAG** 从 runbook 知识库中检索指南,确保建议立足于已知的标准操作程序。
- **事件数据集文件** 模拟生产环境遥测数据和运维人员产出的数据,无需直接实时访问 Kubernetes、Prometheus 或日志系统。
- **人工审批边界** 可防止系统声称或执行影响生产环境的操作,例如回滚、重启、配置更新或扩缩容。
## 默认事件场景
使用 [agentic_incident_dataset/incident_input.txt](agentic_incident_dataset/incident_input.txt) 中的默认提示词:
```
checkout-api is failing after the latest deployment. Users are seeing 500 errors during checkout. Please investigate and recommend next steps.
```
预期的根本原因:
```
PAYMENT_PROVIDER_URL was changed to an invalid internal endpoint during deployment checkout-api:v2.4.8, causing startup dependency validation to fail and checkout-api pods to enter CrashLoopBackOff.
```
预期的修复方案:
```
Request human approval, then either roll back checkout-api from revision 43 to revision 42 or correct PAYMENT_PROVIDER_URL and redeploy.
```
## 设置
### 前置条件
- 启用了 LangChain 节点的 n8n
- 在 n8n 中配置好 OpenAI 凭证
- 在 n8n 中配置好 Pinecone 凭证
- 一个用于 runbook 检索的 Pinecone index,且需与工作流配置相匹配:
```
devops-runbook-assistant
```
### 导入 n8n 工作流
1. 打开 n8n。
2. 导入 [n8n/Agentic Incident Response System.json](n8n/Agentic%20Incident%20Response%20System.json)。
3. 确认已为以下项目分配凭证:
- OpenAI Chat Model
- OpenAI Embeddings
- Pinecone Vector Store
4. 确认 Pinecone index 名称在您的环境中是正确的。
### 使 n8n 能够访问数据集文件
工作流目前从以下位置读取文件:
```
/home/node/.n8n-files/agentic_incident_dataset/
```
将 `agentic_incident_dataset` 目录复制或挂载到您的 n8n runtime 中的该路径下。
对于基于 Docker 的 n8n 设置,请将此仓库目录挂载到 container 中,并根据需要更新文件读取节点的路径。
## 运行演示
1. 打开导入的 n8n 工作流。
2. 启动一次 chat 执行。
3. 粘贴来自 [agentic_incident_dataset/incident_input.txt](agentic_incident_dataset/incident_input.txt) 的事件提示词。
4. 运行工作流。
5. 将最终报告与 [agentic_incident_dataset/expected_agent_output.md](agentic_incident_dataset/expected_agent_output.md) 进行对比。
最终响应应将事件归类为与部署相关的 Kubernetes 应用程序事件,引用高 5xx 错误率和 CrashLoopBackOff 证据,识别出无效的支付提供商 URL,并在回滚或配置修正前要求审批。
## 数据集内容
默认数据集包括:
- `alerts.json`:关于结账影响的 Prometheus 和 Kubernetes 告警
- `kubectl_get_pods.txt`:显示三个 `checkout-api` pod 处于 `CrashLoopBackOff` 状态的 pod 状态
- `kubectl_describe_pod.txt`:详细的 pod 证据,包括镜像 `checkout-api:v2.4.8` 和无效的 `PAYMENT_PROVIDER_URL`
- `application_logs.txt`:显示支付提供商 endpoint 发生 DNS 查找失败的启动失败日志
- `deployment_history.txt`:当前版本 `43`,之前稳定的版本 `42`
- `recent_changes.json`:事件发生前紧接着的部署、配置更改和 feature flag 活动
- `runbooks/`:针对 CrashLoopBackOff 和高 5xx 错误率事件的运维指南
- `additional_scenarios/`:用于测试 ImagePullBackOff、CPU 饱和和数据库超时事件的提示词
## 扩展项目
要添加新场景:
1. 在 `agentic_incident_dataset/additional_scenarios/` 下添加一个提示词。
2. 添加或更新用于告警、Kubernetes 输出、日志、部署和近期变更的模拟证据文件。
3. 在 `agentic_incident_dataset/runbooks/` 下添加相应的 runbook。
4. 将新的 runbook 内容在 Pinecone 中建立索引。
5. 运行 n8n 工作流,并将输出与预期的调查路径进行比较。
好的场景应该包含充足的证据,使智能体能够跨至少两个独立的来源进行关联,例如告警加日志、Kubernetes 状态加部署历史,或近期变更加 runbook 指南。
## 安全模型
本项目特意被设计为一个模拟器。工作流应给出生产操作的建议,但不应自动执行回滚、重启、扩缩容、配置更新或部署更改。
人工审批智能体 (Human Approval Agent) 必须阻止影响生产环境的操作,直到人工运维人员审查并批准该修复路径。
## 备注
- 数据集是模拟的,但是参照真实的 SRE 事件数据资料构建的。
- 工作流文件在导入后默认处于未激活状态。
- 根据您的 n8n 部署方式,可能需要更新 n8n 工作流内部的文件路径。
- 我无法访问所提及的 ChatGPT 对话,因此本 README 是根据仓库内容和工作流配置创建的。
标签:BurpSuite集成, n8n, PyRIT, SRE, 偏差过滤, 告警分诊, 多智能体系统, 工作流自动化, 根因分析, 自动化运维