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)

  • 定位:解决“告警风暴”,提供全局视野。

  • 核心链路

    1. 接入层:对接 Zabbix、Foxeye、Ambari 的 Webhook 或 API。

    2. 清洗层:将异构告警统一格式化为标准事件模型。

    3. 聚合层:利用大模型提取告警特征,结合发生时间、组件标签进行语义聚类。

    4. 存储层:将明细与聚合结果写入 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 接入(优先保障长上下文理解能力与逻辑推理能力)。