1. 业务背景与愿景目标
在大规模分布式数据基建的日常运维中,SRE 面临着海量告警噪音、排查链路长、多组件混部导致定界困难等挑战。Oncall Copilot 旨在构建一个由大语言模型(LLM)驱动的智能运维中枢,实现从“被动响应”到“主动预防”的闭环,大幅降低运维认知负载。
核心目标:
-
降噪与提效:智能识别告警风暴,提取高信噪比故障上下文。
-
专家级诊断:固化资深 SRE 的排查 SOP,提供秒级初步诊断与定界建议。
-
日常自动化:接管集群健康巡检、架构绘图、规则迁移等长尾繁琐任务。
2. 总体架构拓扑
系统采用 Master-Sub 多智能体架构,分离意图理解与垂直领域执行。

3. 核心组件详细设计
3.1 对话中枢 (Master Agent)
-
定位:全局调度器与交互入口。
-
实现机制:基于 ReAct 范式,动态思考(Thought)、行动(Action)并观察(Observation)。通过大模型强大的指令遵循能力,自主决策是调用下游哪个子 Agent,还是直接调用效能工具链(通过 MCP 协议)。
-
上下文管理:维护当前会话历史,确保多轮对话中的指代消解(如用户问“那另外一台机器呢?”,Master 知道指代的是 CMDB 中的同组节点)。
3.2 告警聚合 Agent (Alert Agent)
-
定位:解决“告警风暴”,提供全局视野。
-
核心链路:
-
接入层:对接 Zabbix、Foxeye、Ambari 的 Webhook 或 API。
-
清洗层:将异构告警统一格式化为标准事件模型。
-
聚合层:利用大模型提取告警特征,结合发生时间、组件标签进行语义聚类。
-
存储层:将明细与聚合结果写入 Apache Doris,利用 Doris 的 Aggregate Key 模型在后台自动完成同一聚合维度下状态的更新与去重。
-
3.3 故障诊断 Agent (Diag Agent)
-
定位:模拟资深 SRE 的排查大脑。
-
分级诊断策略:
-
L1 通用联动:发生告警时,自动拉取相同时段、同主机(查询 CMDB)的 Loki 异常日志与 Foxeye 关键指标,进行交叉比对。
-
L2 专家 SOP:对于特定严重故障(如 HDFS 坏块风暴、YARN 调度死锁、磁盘 I/O 夯死),加载注入
disk_anay_skill.md等固化诊断工作流,强制 AI 按照“查 IOPS → 查 dmesg → 查节点挂载状态”的严格路径执行。
-
3.4 集群巡检 Agent (Inspect Agent)
-
定位:主动预防与态势感知。
-
工作流:支持配置驱动(Cluster Spec)。通过 Cron 定时任务唤醒,Agent 依次请求各个组件的元数据接口或巡检脚本,综合判定节点容量、活跃度、HA 状态,最终生成图文并茂的 Markdown 巡检报告。
4. 效能工具箱 (Utility Tools)
该模块以插件/工具(Tools)的形式挂载在 Agent 框架中,亦可独立暴露 API。
| 工具名称 | 核心功能 | 解决痛点与业务价值 |
|---|---|---|
| 指标元数据解析器 | 自动抓取 Exporter /metrics 端点,抽取 HELP/TYPE 注释,结构化存入 Doris。 | 消除大模型编写 PromQL 时的“指标幻觉”,使其知道当前环境到底有哪些指标可用。 |
| NL2PromQL | 结合上一步的元数据,将自然语言(如“过去一小时 OOM 的节点列表”)翻译为精准的 PromQL。 | 降低复杂监控聚合语法的记忆门槛,加速排查。 |
| NL2Drawio | 接收架构描述或故障链路描述,生成基于 Drawio 语法的 XML/图表代码。 | 极大地加快复盘文档(COE)与架构分享的图表绘制速度。 |
| 规则迁移器 | 利用 LLM 的代码翻译能力,将传统 Zabbix 触发器表达式重构为符合 PromQL 规范的 Foxeye 告警规则。 | 释放人力,平滑且高效地完成跨代际监控系统的迁移割接。 |
5. 数据流与外部依赖 (Data Flow & Dependencies)
-
Apache Doris (核心仓):
-
承载清洗后的实时告警明细表。
-
承载指标元数据表。
-
优势:轻松应对高频大批量写入,支持亚秒级、多维度的历史告警回溯分析。
-
-
CMDB 拓扑关联:提供服务物理视角的上下文。例如,当节点发生磁盘告警时,能立刻知道该节点混部了哪些数据服务,精准评估爆炸半径。
-
Milvus (RAG 知识库):定时将内部 Confluence 中的历史 Issue、工单记录、踩坑笔记向量化。当面对罕见报错时,Agent 可通过检索召回内部历史经验,避免“重复造轮子”。
6. 技术选型建议
-
底层框架:后端采用 Golang + Eino 框架。Eino 擅长处理复杂的 Agent 编排、流式输出(Streaming)以及高并发的网络 I/O,非常贴合 Oncall 场景对响应速度的要求。
-
前端交互:基于 Node.js + Vue.js 构建,支持流式 Markdown 渲染、代码高亮以及内置 Mermaid/Drawio 的图表解析。
-
LLM 接入:支持主流大模型 API 接入(优先保障长上下文理解能力与逻辑推理能力)。