当前位置: 首页 > news >正文

AIOps 项目做了一个 SRE 实验排障 AI Agent

一句话定位
项目代号 SRE Lab Doctor,仓库 andersthorvald/sre-lab-doctor,tag v0.1.0(2026-07-02),8/8 主功能完成。已开源,Apache 2.0。

把学员的实验问题贴进来,AI 按主机拆分给出排障步骤、修复建议、验证命令和复盘笔记。严格只诊断不执行命令——所有命令由学员手动复制粘贴,避免 v0.1 出安全问题。

为什么做这个
我在做 SRE 课程实验的过程中,反复踩同一批坑:

防火墙没放行:服务配完发现 80 端口被拦
BIND9 配 listen-on { 127.0.0.1; };:slave 当然连不上 master
Docker 容器内 curl 127.0.0.1:是容器自己,不是宿主机
自定义 NAT 网段宿主机没路由:ping 都 ping 不通
每次都当场查、查完忘、下次再踩一遍。

把这些坑整理成知识库,让 AI 帮我按「踩过的坑」针对性诊断——这是最初的动机。

顺便选了 fork 自 NightMend(Apache 2.0)的开源 AIOps 平台做底座——账号、权限、审计、夜莺原生告警这些基础设施都现成,省得从零造。

明确不做的:不是通用 ChatGPT 替代品、不会自动 SSH 到学员机器、不会自动改配置文件。走 Diagnosis-only Mode。

架构 + 关键代码
诊断流程:

[学员填 7 字段表单] → 基础清洗 → 知识库匹配(top-2)

Markdown 输出 ← 17 条高危命令检测 ← Markdown 渲染

LLM 调用(MiniMax-M2.7,30–50 秒) ← Prompt 构造
技术栈:NightMend(fork 自上游) + FastAPI + Python 3.11 + React + Ant Design + PostgreSQL + Redis + MiniMax-M2.7 + Docker Compose(5 容器)。

知识库匹配简化版:

def match_knowledge(lab_type, error_text):
“”“按 lab_type + 关键词给 10 个内置案例打分,取 top-2"”"
candidates = [c for c in ALL_CASES if c.lab_type == lab_type]
if error_text:
keywords = extract_keywords(error_text)
for c in candidates:
c.score = sum(1 for kw in keywords if kw in c.tags)
return sorted(candidates, key=lambda x: x.score, reverse=True)[:2]
三个有意思的坑
坑 1:双场景 Prompt 的形式错位
prompt 写死「按 7 节排障模板输出」,学员输「DNS 服务器是什么」这种概念性问题,LLM 强行套模板输出「## 1. 当前现象总结」,内容是维基百科腔的科普文——形式错位。

改成「先判断场景再选模板」:故障场景含「报错 / 失败 / refused / timeout / denied」等关键词走排障模板,其他走知识模板。

本质:prompt 是给模型的合同,合同对不上场景就乱套。

坑 2:Reasoning 思考块 + 三层超时
MiniMax-M2.7 是 reasoning 模型,输出里有 思考块,占最终输出长度的 40%。加 _strip_thinking() 剥离。

复杂 prompt 要 30–50 秒,链路里默认有三个超时,都要动:

层 默认 调到
httpx 45s 180s
nginx proxy_read_timeout 60s 180s
前端 axios 15s 用 aiApi(60s)
坑 3:17 条高危命令「帮倒忙」
最初想「检测到危险命令直接替换成 [已过滤]」——结果帮倒忙:学员照着敲命令出来发现字段没了、不知道哪步被吃了、LLM 还会换个写法重新塞进去。

改成「只警告不阻挡」:命中后追加「🚨 高危命令警告」块,命令原文保留,学员知情决策。

17 条覆盖:rm -rf /、mkfs、dd if=… of=/dev/sdX、iptables -F、nft flush ruleset、systemctl stop sshd|network|firewalld、chmod -R 777 /、chown -R、curl … | sh、wget … | bash、kill -9 1、shutdown、reboot、setenforce 0 等。

v0.1 数据
维度 数据
v0.1 主功能 8 / 8 完成
回归测试场景 5 / 5(100% 通过)
内置知识库案例 10 个(Nginx×2 / DNS×2 / iptables×2 / SSH×2 / rsync×1 / Docker×1)
高危命令正则 17 条
LLM 平均响应 30–50 秒
🔴 Diagnosis-only 三条红线:不 SSH、不 systemd、不存凭据。

http://www.jsqmd.com/news/1229108/

相关文章:

  • 2026企业AI原生发展路径详解
  • TMS320F28002x EPWM XBAR模块:硬件信号路由与实时保护配置详解
  • 第18章:Mongo复制集运维——故障切换、节点扩容与数据重同步
  • 4大架构挑战深度解析:VPet虚拟桌宠核心系统设计与扩展方案
  • 丽水防水修缮优选|超人防水补漏五星连锁品牌,专治梅雨台风、山地高湿漏水难题 - 吉林同城获客
  • wordpress文章摘要调用的3种方法
  • Wealthfolio实战:如何用本地优先投资追踪器高效管理你的财富增长
  • 2026年扬州考公培训机构哪家靠谱:荣上公考学员认可 - 18102756859
  • 平顶山医院慧眼识珠:复购10Kg黑豆泡泡米,要求基料用黑米换掉玉米
  • ULN2003A芯片烧毁原因与解决方案
  • HarmonyOS应用开发实战:小事记 - Scroll 滚动容器深度剖析:滚动机制、edgeEffect、scrollBar 与嵌套滚动
  • KoboldCPP完整指南:3步轻松部署本地AI大模型
  • MAA明日方舟助手:5分钟完成日常任务的终极解决方案
  • 2026.7广州防水怎么彻底解决 教你根治漏水不复发全攻略 - 吉林同城获客
  • 【Autosar从入门到精通到进阶实战篇】64 AUTOSAR的看门狗管理:从喂狗到系统自愈
  • HR 面不只是走过场,这些回答细节决定最终录用
  • 2026公认封神!Paperxie全功能深度测评|毕业党闭眼冲的免费学术神器(无套路)
  • AI数据分析入门资源黑洞警告!——全球TOP10课程实测对比报告(仅3门真正适配中文业务场景)
  • NET 10 的正则性能现在什么水平?我拿它和 Go、Python、C++、PCRE2 测了一轮
  • Python 测试代码
  • TinyMCE富文本编辑器:为技术团队提供高效内容创作解决方案
  • 2026年人保承保钢制柱型散热器生产厂家挑选攻略:鑫祥春暖通等优质企业梳理 - 每天一杯纯牛奶
  • Spring Boot 3 HTTP客户端替代Feign的实践指南
  • GitHub Copilot SDK工具权限管理:如何控制工具执行权限的完整指南 [特殊字符]️
  • 炉石传说技术增强插件HsMod:从游戏痛点到技术解决方案的完整指南
  • 数学学习终极指南:如何利用awesome-math资源库快速掌握数学核心概念
  • 2026 年临沂膜结构搭建撬装柜施工弧形大棚搭建本地施工厂家 TOP5 实测测评 - LYL仔仔
  • Vaadin Flow性能监控与调优:识别和解决瓶颈的实用工具
  • 沐曦股份选择 Gitee 企业版:从代码开源到算力实践,构建国产 GPU 开发生态
  • 如何在Linux桌面环境中全面部署Cyberpunk Neon主题:从GTK到Wayland的完整指南