线上事故发生时的大模型排障引导交互设计
线上事故发生时的大模型排障引导交互设计当生产环境突然爆发出大面积 5xx 错误、电话告警响个不停时值班工程师On-call面临的最大敌人往往不是技术复杂度本身而是严重的信息过载与极度紧张下的决策混乱。传统的故障辅助工具要么是简单罗列海量指标与日志让排障人员在各个监控面板之间反复横跳要么是粗暴地接入大模型 Chat 窗口输入一句“线上服务 CPU 100% 怎么办”模型吐出几百字涵盖“可能是死循环、GC 频繁、线程泄漏”等宽泛的通用建议。在分秒必争的故障止血黄金五分钟内这类宽泛对话毫无实操价值。设计一个真正面向线上事故场景的大模型排障引导系统核心在于将自由对话重构为确定性的 SOP标准作业程序引导流坚持“止血优先于根因排查”的交互哲学。事故引导交互的四大核心设计原则告警风暴触发 (Prometheus / PagerDuty) │ ▼ ┌─────────────────────────────────────────┐ │ 1. 自动上下文汇聚 (MetricsLogsDeploys) │ └─────────────────┬───────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ 2. 状态机排障引导止血优先向导 (SOP) │ │ ┌─────────────────────────────────┐ │ │ │ [Actionable Card] 一键切流 / 扩容 │ │ │ └─────────────────────────────────┘ │ └─────────────────┬───────────────────────┘ │ 止血完成 (SLA 恢复) ▼ ┌─────────────────────────────────────────┐ │ 3. 根因深度溯源 (Trace / Dump / 代码定位) │ └─────────────────────────────────────────┘止血第一Mitigation First引导界面首屏绝不展示长篇分析而是直接根据当前上下文如“10分钟前有新版本发布”、“下游数据库连接池打满”输出最高可信度的止血动作卡片如版本回滚、切断弱依赖、限流扩容。结构化动作卡片Actionable Cards大模型输出的内容必须包含可一键执行或复制的命令与确认按钮严禁让值班人员在多套系统中复制粘贴参数。确定性状态流转排障流程遵循严格的状态机告警感知 - 影响面定级 - 止血建议 - 效果确认 - 根因下钻 - 事故报告生成。上下文全自动感知系统在调起大模型 Agent 时必须已自动挂载最近发版记录、配置变更历史、核心 JVM 堆栈摘要与 Prometheus 异常指标杜绝让用户手工提供上下文。排障引导交互协议与数据模型在大模型与排障前端之间交互协议不能采用纯文本或 Markdown而应采用结构化的 UI 协议Schema-driven UI{ incidentId: INC-20260923-01, currentPhase: MITIGATION, urgencyLevel: P0, summary: order-service 接口 504 超时激增伴随 JVM Old Gen 飙升, contextSummary: { recentDeploy: v2.14.0 (发布于 8 分钟前), affectedNodes: 12, errorRate: 34.2% }, actionCards: [ { id: act-rollback, type: EXECUTE_PIPELINE, title: 一键回滚至上一稳定版本 (v2.13.9), confidence: 0.92, riskLevel: LOW, payload: { pipelineId: deploy-order-service, targetVersion: v2.13.9 } }, { id: act-degrade-rec, type: TOGGLE_SWITCH, title: 紧急关闭推荐与积分弱依赖, confidence: 0.85, riskLevel: ZERO, payload: { configKey: order.dependency.recommend.enabled, targetValue: false } } ], followUpQuestions: [ 是否需要临时调大 Gateway 路由重试次数, 是否需要提取当前故障节点的 jstack 线程快照 ] }核心后端引导状态机与提示词工程实现在 Spring Boot 中构建事故排障交互调度器package com.example.incident.agent; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.ai.chat.client.ChatClient; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; Service public class IncidentGuideAgentService { private final ChatClient chatClient; private final ObjectMapper objectMapper; public IncidentGuideAgentService(ChatClient.Builder builder, ObjectMapper objectMapper) { this.chatClient builder.build(); this.objectMapper objectMapper; } private static final String SOP_SYSTEM_PROMPT 你是一名资深生产环境排障指挥官。当前系统发生生产事故你的目标是帮助值班工程师以最快速度止血。 【交互准则】 1. 必须优先推荐能立刻止血的运维操作回滚、降级、限流、切流、重启禁止首先进行耗时的大段代码调试分析。 2. 严格以 JSON 格式输出 ActionableCard 结构。 3. 每个操作必须评估风险等级LOW, MEDIUM, HIGH与置信度。 ; public IncidentGuideResponse generateGuideStep(IncidentContext context) { String userContextJson; try { userContextJson objectMapper.writeValueAsString(context); } catch (Exception e) { userContextJson {}; } String rawLlmResponse chatClient.prompt() .system(SOP_SYSTEM_PROMPT) .user(当前事故上下文如下请给出第一步止血决策建议\n userContextJson) .call() .content(); return parseResponse(rawLlmResponse); } private IncidentGuideResponse parseResponse(String rawJson) { try { return objectMapper.readValue(rawJson, IncidentGuideResponse.class); } catch (Exception e) { // 异常兜底保护 return IncidentGuideResponse.fallback(); } } public record IncidentContext( String incidentId, String appName, ListString activeAlerts, String lastDeploymentInfo, MapString, Object metricsSnapshot ) {} public record IncidentGuideResponse( String incidentId, String currentPhase, String summary, ListActionCard actionCards ) { public static IncidentGuideResponse fallback() { return new IncidentGuideResponse( UNKNOWN, MITIGATION, 正在分析系统上下文建议先行检查发布系统并准备回滚操作, List.of() ); } } public record ActionCard( String id, String type, String title, double confidence, String riskLevel, MapString, Object payload ) {} }生产实战从“慌乱查日志”到“30秒止血”在实际落地该系统前某次典型的线上事故处理流程如下监控告警群收到 500 告警多位工程师在群内询问“谁发了版”、“数据库有慢查吗”。开发登录跳板机查看日志耗时 3~5 分钟。发现是发布引入了连接泄漏再通知运维走回滚流水线整体 MTTR平均恢复时间长达 18 分钟。引入大模型排障交互后告警触发同时Agent 自动抓取 Git 提交记录与 Pod 异常指标并在应急工作台生成排障向导。首屏直接推送置信度为 95% 的“回滚版本 v2.14.0”操作卡片同时附带影响范围和变更差异。值班工程师点击确认系统自动联动 CI/CD 完成金丝雀回滚止血时间压缩至 45 秒内。业务恢复后Agent 自动切换至“根因诊断模式”抓取当时的堆栈日志精准定位到具体文件的连接未释放代码段并自动起草事故复盘初稿。这种以状态机 结构化指令卡片为核心的设计真正发挥了大模型在信息整合与意图识别上的优势避开了自由文本对话在极端高压场景下的低效与不确定性。