值班机器人与运维工单系统的双向事件驱动联动

封面信息图

在大型企业的生产应急响应(Incident Response)流程中,运维团队在扑灭突发故障时,常常不得不承受一种令人窒息的“双线作战”折磨:

一线战场在企业微信/飞书值班群里,工程师们正在全神贯注地敲命令、拉拓扑、切流量、排查死锁;
然而,企业的 ITIL 安全合规流程又严格要求:

  • 故障爆发 5 分钟内 必须在 Jira / ServiceNow / 自研运维工单系统上完成“线上事故建单”;
  • 排查期间每隔 15 分钟 必须在工单上同步最新的排查进展与时间线(Timeline);
  • 故障恢复后 1 小时内 必须在工单系统里填写完整的故障复盘初稿与核心指标截图。

在真实的救火现场,要求正在全力敲命令止血的 SRE 分心去打开网页表单、逐项填写繁琐的下拉框和文本框,往往会导致信息录入严重滞后、甚至因为沟通脱节引发跨部门信息差。

要将一线值班人员从机械的表单搬运中彻底解脱出来,核心在于构建基于大语言模型(LLM)与事件驱动中枢(EventBridge)的“群聊协同与工单系统双向自动化联动矩阵”

双向事件驱动联动的全景架构设计

 [ 企微 / 飞书生产应急排障群 ]                     [ 企业工单系统 (Jira / ServiceNow / 自研) ]
┌──────────────────────────────────────┐         ┌─────────────────────────────────────────┐
│ 值班人员群聊排障与执行诊断指令        │         │ 生产 Incident 故障工单                  │
└──────────────────┬───────────────────┘         └────────────────────▲────────────────────┘
                   │                                                  │
                   ▼ (1. 实时捕获对话流与诊断动作)                     │ (4. REST API 自动化双向同步)
┌─────────────────────────────────────────────────────────────────────┴────────────────────┐
│ ChatOps 智能工单同步中枢 (Incident Sync Worker)                                          │
│                                                                                          │
│  - 事件 1: 故障定级确认 (Severity Identified) ──► 自动调用 API 创建工单,绑定群 ID       │
│  - 事件 2: 关键排障动作 (如回滚/扩容成功) ──► 自动追加结构化 Timeline 时间线             │
│  - 事件 3: 告警指标恢复 (All Resolved) ──► LLM 自动提取上下文,生成 800 字复盘初稿草案  │
└──────────────────────────────────────────────────────────────────────────────────────────┘

核心联动场景一:智能故障识别与 0 秒自动建单

当监控告警触发且值班团队在群内确认故障后,机器人利用大模型从上下文提取关键元数据,并在 1 秒内 自动完成工单创建并回贴工单链接:

import requests
import json
import time
from typing import Dict, Any
from pydantic import BaseModel, Field
from openai import OpenAI

class IncidentSchema(BaseModel):
    title: str = Field(description="事故简明标题,如: 华东核心结算服务出现大面积 504 超时")
    severity: str = Field(description="事故定级: P1 / P2 / P3")
    impacted_services: list[str] = Field(description="受影响微服务列表")
    root_cause_summary: str = Field(description="当前排查得出的初步根因摘要")

class IncidentTicketBridge:
    def __init__(self, ticket_api_url: str, api_token: str):
        self.ticket_api = ticket_api_url
        self.token = api_token
        self.client = OpenAI()

    def auto_create_incident_ticket(self, chat_history_text: str, chat_room_id: str) -> str:
        """
        利用大模型从群聊排查上下文中提取结构化事故元数据并自动建单
        """
        prompt = "你是一个专业 SRE 事故记录员。请从以下群聊记录中提炼出事故工单的关键信息:"
        
        # 1. 结构化抽取
        completion = self.client.beta.chat.completions.parse(
            model="gpt-4o-mini",
            messages=[
                {"role": "system", "content": prompt},
                {"role": "user", "content": chat_history_text}
            ],
            response_format=IncidentSchema
        )
        data = completion.choices[0].message.parsed

        # 2. 调用工单系统 API 创建事故
        payload = {
            "title": f"[{data.severity}] {data.title}",
            "severity": data.severity,
            "impacted_systems": data.impacted_services,
            "description": data.root_cause_summary,
            "chat_room_id": chat_room_id,
            "status": "INVESTIGATING",
            "created_by": "AIOps-Incident-Bot"
        }
        headers = {"Authorization": f"Bearer {self.token}", "Content-Type": "application/json"}
        resp = requests.post(f"{self.ticket_api}/api/v1/incidents", json=payload, headers=headers, timeout=5)
        ticket_id = resp.json().get("ticket_id", "INC-99999")

        return ticket_id

核心联动场景二:毫秒级 Timeline 时间线自动追加

在故障排障过程中,工程师在群内执行的每一次关键操作(如点击卡片执行了“扩容至 30 副本”、或者执行了“回滚至上一版本”),机器人通过中间件拦截器,自动将带精确时间戳的操作日志沉淀到工单的 Timeline 轴上

[ 14:15:02 ] 🚨 Prometheus 触发 order-pay 延迟告警 (P1 级)
[ 14:16:30 ] 🤖 机器人自动创建工单 INC-20260911-002,并关联当前应急群
[ 14:18:12 ] 👤 工程师 @张三 点击按钮执行了【只读堆栈抓取】
[ 14:20:45 ] 👤 工程师 @李四 发起指令【一键回滚 order-pay 至 v2.3.9】
[ 14:22:10 ] ✅ ArgoCD 回滚完成,Pod 状态就绪
[ 14:25:00 ] 🟢 全链路 5xx 错误率归零,监控告警自动平息

原本需要人工在故障后痛苦回忆、反复翻找聊天记录才能拼凑出来的时间线,在故障处理过程中已经被系统 100% 自动精确记录。

核心联动场景三:故障平息后 1 键生成复盘报告草案

当 Prometheus 判定所有相关告警均已转为 Resolved 状态时,机器人自动唤醒**“复盘 Agent”**:

  • 综合拉取本次事故的时间线、Grafana 异常期间的指标对比图、GitLab 关联的 Commit Diff、以及现场抓取的慢查询日志;
  • 在 3 秒内利用大模型自动生成一份标准的 《8D 生产故障复盘初稿(Post-Mortem Draft)》,并直接回填至工单系统的“复盘记录”富文本框中。

复盘草案包含了事故简述、故障时间线、根因机理剖析、以及 3 条针对性的中长期改进 Action Item,工程师只需在此基础上稍作审核润色即可提交归档。

生产应用收益

自实现值班机器人与工单系统的双向自动化联动以来:

  • 全站重大事故的平均建单与通报时延从原本的 12 分钟 压缩至 30 秒以内
  • 彻底消除了“群里已经热火朝天排查、工单系统却毫无动静”的合规脱节痛点;
  • 工程师在故障后编写复盘文档的时间从平均 2 小时 缩短至 15 分钟,极大地提升了应急协同与知识沉淀的整体流转效能。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐