AI FaultLab:故障演练 Agent 的设计思路
一个诊断型 Agent 的工程化实践从故障证据到大模型诊断报告最近在做一个后端故障演练和诊断平台里面有一个比较核心的模块把一次故障实验中的指标、Trace、规则诊断结果整理出来再交给大模型生成一份结构化诊断报告。一开始我没有把它做成一个“聊天机器人”因为这类系统真正需要的不是自由问答而是稳定、可控、能解释的诊断流程。后端故障排查本身是有证据链的不能让模型凭感觉猜。所以这个 Agent 的设计重点不是“让模型多聪明”而是先把证据准备好再让模型在证据范围内生成结论。为什么不能直接让大模型诊断最开始如果直接把一句话丢给大模型比如“MQ 堆积了帮我分析一下”它当然也能说出一些看起来合理的答案比如消费者太慢、队列积压、需要扩容消费者、检查死信队列等。但问题是这些回答不一定来自当前系统的真实数据。后端诊断最怕这种情况模型说得很像对的但实际上没有任何指标支撑。比如系统里明明没有消费失败大模型却开始分析死信队列Trace 里没有慢 SQL它却建议先优化数据库。这种回答在面试展示里可能还能糊弄一下但放到工程系统里就不可靠。所以我把诊断链路拆成了几层故障演练 - 指标采集 - Trace 追踪 - 规则诊断 - Evidence Package - LLM 诊断报告 - JSON 校验 - fallback大模型不是第一判断者而是最后的报告生成者。Evidence Package先把证据整理清楚Java 后端会负责收集一次实验的完整上下文包括实验信息、指标列表、Trace 树和规则诊断结果。这些数据会被组装成一个 Evidence Package再发给 Python AI Service。大概结构是这样的{ experiment: {}, metrics: [], traceTree: {}, ruleResult: {} }这里面比较关键的是ruleResult。规则诊断是确定性的比如 MQ 堆积场景会看publishCount、consumeCount、avgConsumeMs、consumerDelayMs这些指标。只要生产数量明显大于消费数量并且消费耗时较高就可以判断存在消息积压风险。规则诊断的好处是稳定、可测试、可解释。它给大模型提供了一个基础结论大模型后续只是在这个基础上把报告组织得更完整而不是重新猜一遍。Python AI Service固定流程不做自由发挥AI Service 没有一上来就引入复杂框架而是先用 FastAPI 做了一个固定工作流build_trace_summary - build_prompt - select_model - call_llm - parse_json - fallback_if_needed这样做的好处是链路很清楚。每一步职责单一出了问题也容易定位。比如模型超时那就是call_llm的问题模型返回的不是合法 JSON那就是parse_json处理如果 API Key 没配置那直接进入 fallback不会影响接口可用性。我不希望这个模块一开始就变成一坨很大的generate_report()方法。因为后续还要接 Runbook RAG、工具调用、模型路由如果现在没有把流程拆干净后面改起来会很痛苦。Prompt 约束只基于证据生成Prompt 里有几个强约束只能基于 Evidence Package 生成诊断 不能编造不存在的指标 不能编造不存在的 Trace 节点 不能输出 Markdown 必须输出严格 JSON 证据不足时要说明证据不足输出结构也固定{ experimentId: , faultType: , faultName: , confidence: 0.0, summary: , phenomenon: [], evidence: [], rootCauses: [], suggestions: [], runbookReferences: [], fallback: false }固定 JSON 很重要。因为 Java 后端要把结果保存到diagnosis_report.ai_report_json前端也要把这些字段展示出来。如果模型返回一段 Markdown页面就没法稳定渲染后续也没法做结构化分析。JSON 解析和 fallback不能让模型拖垮主链路实际接大模型的时候有几个问题很常见模型可能返回 Markdown 代码块json {...}也可能缺字段或者 confidence 给出超过 1 的值。更极端一点模型可能直接输出一段自然语言。 所以 AI Service 里做了一层 JSON Parser。它会先清理代码块再尝试解析 JSON。字段缺失时补默认值confidence 会限制在 0 到 1 之间。数组字段如果不是数组也会被兜底成空数组。 如果解析失败或者模型调用超时就不让接口直接 500而是走 fallback。 fallback 的报告来自规则诊断结果 text AI 诊断服务暂时不可用当前返回基于规则诊断的降级报告。这块看起来不起眼但工程上很关键。AI 服务不能成为主链路的单点故障。哪怕大模型不可用系统至少还能返回一份规则诊断报告。配置设计只把 API Key 放到环境变量一开始配置项都走环境变量比如模型名、base_url、timeout、retry 次数。后来我做了一次简化只有DASHSCOPE_API_KEY从环境变量读取其他配置都放到config.py里作为默认值。原因很简单真正敏感的只有 API Key。模型名、base_url、超时时间这些都是普通运行参数不需要每次都让开发者手动配置。现在配置更清晰dashscope_base_url https://dashscope.aliyuncs.com/compatible-mode/v1 llm_enabled True llm_timeout_seconds 90 llm_max_retries 0 llm_default_model qwen-plus llm_fast_model qwen-turbo llm_reasoning_model qwen-plus llm_long_context_model qwen-plus本地只需要长期配置DASHSCOPE_API_KEY这样既安全也减少了启动成本。ModelRouter不是所有请求都打同一个模型后面我又加了一个简单的 ModelRouter。它不会做复杂调度只根据当前诊断任务的复杂度选择模型。规则大概是ruleResult 缺失或未命中 - fast model Trace 节点较多 - reasoning model evidence 数量较多 - reasoning model metrics 数量较多 - long context model 其他情况 - default model这个设计的目的不是炫技而是给后续扩展留口子。实际系统里不同任务对模型的要求不一样。证据不足的时候用强模型也没有意义因为模型没有足够上下文Trace 很大、指标很多的时候才值得使用能力更强或上下文更长的模型。当前路由结果只打日志不返回给前端。这样对外接口不用变Java 后端和前端也不需要跟着改。为什么暂时没有直接上 LangGraph这个阶段我没有直接引入 LangGraph。不是因为它不好而是当前链路还比较固定证据整理 - prompt 构造 - 模型调用 - JSON 校验 - fallback用普通 Python 函数已经能表达清楚。如果现在直接上复杂框架项目成本会变高调试也更麻烦。不过我在拆分的时候保留了类似工作流节点的结构。后续如果要做多轮工具调用、人工审核、状态恢复、多分支诊断再迁移到 LangGraph 会比较顺。目前还缺什么现在这套链路已经能完成Java 后端组装证据 - Python AI Service 调用百炼大模型 - 生成结构化 JSON 报告 - Java 落库 - 前端展示但它还不是完整的 RAG 诊断系统。目前模型只基于实验证据和规则结果生成报告还没有引入 Runbook。后续应该补一层 Runbook RAG把故障排查手册、处理经验、常见原因和修复步骤检索出来再注入 Prompt。到那个阶段链路会变成Evidence Package - Runbook 检索 - ModelRouter - Prompt Builder - LLM - JSON 校验 - fallback这样模型生成的报告就不只是“根据指标分析”还可以结合项目里的排查手册给出更接近真实运维经验的建议。总结这个 Agent 的核心不是让大模型自由发挥而是把它放在一个受控的诊断流程里。前面用规则诊断保证确定性中间用 Evidence Package 统一证据输入后面用 Prompt 和 JSON Schema 限制输出格式再用 fallback 保证服务可用。模型路由则是在成本、延迟和效果之间做一个简单平衡。这套设计不复杂但比较符合工程落地的思路先保证链路稳定再逐步增强智能能力。现在它已经可以算是一个基础的诊断型 Agent后续接入 Runbook RAG 后才会更接近一个完整的故障诊断助手。

相关新闻

如何快速掌握绝区零一条龙:新手的完整自动化游戏指南

如何快速掌握绝区零一条龙:新手的完整自动化游戏指南

如何快速掌握绝区零一条龙:新手的完整自动化游戏指南 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 绝区零一条…

2026/7/30 10:44:20 阅读更多 →
麒麟V10系统php7.2安装redis扩展

麒麟V10系统php7.2安装redis扩展

有一台服务器系统为麒麟V10安装了php7.2.33,需要安装redis扩展。手头只有一个redis4.3就尝试一下,中途没有报错,生成了redis.so,修改php.ini挂在redis.so。重启php,结果挂载失败。查了下资料,php7.2需要5.3版本以上的插件。这台服…

2026/7/30 10:44:20 阅读更多 →
AI搜索营销:从关键词匹配到价值深耕的范式转移

AI搜索营销:从关键词匹配到价值深耕的范式转移

1. 项目概述:AI搜索营销的范式转移2026年的企业营销战场正在经历一场静默革命。当大多数从业者还在讨论流量获取和转化率优化时,前沿企业已经将AI搜索营销的重心转向价值深耕。这不是简单的技术迭代,而是从底层逻辑重构用户与品牌的连接方式。…

2026/7/30 10:44:20 阅读更多 →

最新新闻

bitbrick_k1集群部署prima_cpp实现分布式大模型推理

bitbrick_k1集群部署prima_cpp实现分布式大模型推理

1. 项目概述:bitbrick_k1集群部署prima_cpp实现分布式大模型推理最近在bitbrick_k1集群上成功部署了prima_cpp框架,实现了大语言模型的分布式推理。这套方案特别适合需要处理高并发推理请求的企业级场景,比如智能客服、内容生成平台等。bitbr…

2026/7/30 11:02:26 阅读更多 →
国自然申请冲刺:30天高效优化策略与实战技巧

国自然申请冲刺:30天高效优化策略与实战技巧

1. 国自然申请倒计时:最后冲刺阶段的紧迫性与应对策略距离国家自然科学基金(以下简称"国自然")申报截止仅剩三十多天,这个时间节点让许多科研工作者进入了高度紧张的冲刺状态。作为国内最具权威性的基础研究资助体系&am…

2026/7/30 11:02:26 阅读更多 →
显卡驱动深度清理完全指南:Display Driver Uninstaller (DDU) 终极解决方案

显卡驱动深度清理完全指南:Display Driver Uninstaller (DDU) 终极解决方案

显卡驱动深度清理完全指南:Display Driver Uninstaller (DDU) 终极解决方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-…

2026/7/30 11:02:26 阅读更多 →
HBM5内存技术解析:2nm基础裸片如何突破AI算力带宽瓶颈

HBM5内存技术解析:2nm基础裸片如何突破AI算力带宽瓶颈

最近在关注高性能计算和AI芯片发展的开发者可能已经注意到一个趋势:内存带宽正在成为制约算力提升的关键瓶颈。当GPU的计算能力以每年翻倍的速度增长时,内存带宽的提升却远远跟不上这个节奏。三星最新宣布的HBM5内存技术,特别是其中引入的2nm…

2026/7/30 11:02:26 阅读更多 →
Minecraft服务器可视化监控:从Dynmap到性能优化的完整指南

Minecraft服务器可视化监控:从Dynmap到性能优化的完整指南

你是否曾经在管理《我的世界》服务器时,面对复杂的后台数据和玩家行为感到无从下手?传统的命令行监控方式不仅操作繁琐,而且难以直观展示服务器运行状态。这正是可视化交互插件要解决的核心痛点。 本文要介绍的并不是简单的界面美化工具&…

2026/7/30 11:02:26 阅读更多 →
H3C M-LAG环境下PXE启动异常分析与解决方案

H3C M-LAG环境下PXE启动异常分析与解决方案

1. 问题背景与现象描述在数据中心网络部署中,H3C 6880系列交换机配合M-LAG(Multichassis Link Aggregation Group)技术构建高可用网络架构时,技术人员常会遇到PXE启动异常的问题。具体表现为:客户端在启动阶段反复显示…

2026/7/30 11:01:26 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻