基于 Claude Agent SDK 的多云运维 Multi-Agent 智能体系统
OpsAgent 是一个面向多云环境的运维智能体系统,旨在通过 AI 自动化故障根因分析(RCA)、告警响应和变更关联分析,帮助 SRE 团队快速定位和解决生产问题。
当生产环境出现故障时,证据分散在:
- 日志服务(SLS、ELK)
- 监控指标(Prometheus、CloudWatch)
- 链路追踪(ARMS、Jaeger)
- 变更记录(CI/CD、K8s Events)
- 运维知识库(Runbook、Wiki)
传统工具要求人工跨平台查询、关联和分析,MTTR(平均恢复时间)往往超过 1 小时。
OpsAgent 通过以下方式缩短 MTTR:
- 告警驱动 - 自动响应 Prometheus Alertmanager、钉钉、企业微信告警
- 多源关联 - 时序对齐日志、指标、Trace、拓扑、变更事件
- 智能推理 - 基于 LLM 的假设生成与置信度评分
- 安全防护 - 执行分层、审批机制、副作用控制
| 模块 | 功能 |
|---|---|
| 假设生成 | 基于异常数据生成可能的根因假设 |
| 关联分析 | 跨日志、指标、Trace 做时序对齐与趋势相关性分析 |
| 拓扑感知 | 基于服务依赖图进行向上/下游传播分析 |
| 变更关联 | 自动关联 CI/CD 部署、配置变更、证书过期等变更事件 |
| 置信度评分 | 多维度加权(时间窗口 50%、拓扑 30%、周期性 10%、人工 Hint 10%) |
| 类型 | 支持平台 |
|---|---|
| 日志 | 阿里云 SLS、Elasticsearch |
| 指标 | Prometheus、阿里云 CloudWatch |
| 链路 | 阿里云 ARMS、Jaeger |
| 变更 | Kubernetes Events、GitLab CI |
| 拓扑 | 阿里云 ARMS Service Graph |
- 执行分层 - ReadOnly、ReadValidate、WriteExecute 三级权限
- 审批机制 - 高风险操作需要人工确认
- 副作用控制 - 白名单限制可执行命令
- Prometheus Alertmanager Webhook
- 钉钉机器人回调
- 企业微信应用推送
- 通用 HTTP Webhook
- Go 1.24+
- Docker(可选,用于本地测试)
# 克隆仓库
git clone https://github.com/Havens-blog/OpsAgent.git
cd OpsAgent
# 安装依赖
make install
# 配置数据源
cp config/datasources.yaml.example config/datasources.yaml
# 编辑 config/datasources.yaml 填入你的凭证
# 运行
make rundocker-compose up -d┌─────────────────────────────────────────────────────────────┐
│ OpsAgent │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────┐ ┌─────────────────────────────────┐ │
│ │ Alert Gateway │───▶│ Coordinator Agent │ │
│ │ (Webhook) │ │ - 任务调度 │ │
│ └───────────────┘ │ - 证据汇总 │ │
│ │ - 结论输出 │ │
│ ┌───────────────┐ └─────────────────────────────────┘ │
│ │ CLI / Web │ │ │
│ │ Console │ ▼ │
│ └───────────────┘ ┌─────────────────────────────────┐ │
│ │ RCA Engine │ │
│ ┌───────────────┐ │ - Hypothesis Generator │ │
│ │ LLM │ │ - Correlation Analyzer │ │
│ │ Provider │ │ - Timeline Analyzer │ │
│ │ (Claude) │ │ - Confidence Scorer │ │
│ └───────────────┘ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Data Sources Layer │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ Logs │ │Metrics│ │Trace │ │Topology│ │Change│ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Guardrails & Observability │ │
│ │ - Execution Tier - Approval - Audit Log │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
| Agent | 职责 |
|---|---|
| Coordinator | 总控,任务分发,结论汇总 |
| LogAnalyst | 日志模式识别,异常根因分析 |
| Monitor | 指标异常检测,时序关联分析 |
| Inspector | 变更事件关联,拓扑传播分析 |
# 单元测试
make test
# 覆盖率报告
make test-coverage
# 集成测试
make test-integration
# 合成测试(RCA 准确率)
make test-synthetic# 格式化
make fmt
# Lint
make lint
# 类型检查
make typecheck- 在
internal/datasource/下实现接口 - 在
config/datasources.yaml添加配置模板 - 在
internal/rca/sources/注册为 RCA 数据源 - 编写测试
- 数据源抽象层
- 假设生成与评分
- 单元测试框架
- Alertmanager Webhook 接入
- Incident Lifecycle 模型
- Seed Call 自动证据获取
- CI/CD 部署记录集成
- 配置变更日志采集
- 变更-故障时间窗口分析
- ARMS Service Graph 集成
- 上下游传播分析
- 拓扑路径评分
- Agent 通信协议
- 证据共享机制
- 冲突裁决策略
- Web 控制台
- REST API
- 钉钉/企业微信集成
- Docker/K8s 部署
本项目参考了 OpenSRE 的设计思想,特别是:
- 合成测试框架
- RCA 评估方法
- 工具注册中心模式
Apache License 2.0
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
Made with ❤️ by Havens-blog