news 2026/7/10 9:57:49

我基于开源 AIOps 项目做了一个 SRE 实验排障 AI Agent

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
我基于开源 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、不存凭据。

路线图
v0.2(2–3 周后开搞):LLM 兜底(MiniMax 超时切 DeepSeek)+ 流式响应 SSE + 多轮对话 + 知识库扩 K8s/Prom/Zabbix + 👍/👎 反馈

v0.3:知识库后台 UI + Prompt A/B 测试 + 导出 PDF

v1.0:多租户 SaaS + 与 NightMend 告警联动 + 主动学习

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 9:56:25

论文选题的四大误区以及如何找到合适自己的题目的研究

选择了一个好的题目就决定了你这篇论文命运的一半。一、引言:选择一个好的题目作为学术写作的第一步你是不是已经确定好了自己要写的论文题目了?是不是觉得脑子里一片空白,或者有两个念头在不断交替出现,最后无法做出决定呢&#…

作者头像 李华
网站建设 2026/7/10 9:55:13

Whisper小白安装教程:四层拆解,从Python环境到中文语音转写

1. 项目概述:为什么 Whisper 安装对普通人来说“不友好”,而这篇教程能真正帮到你 Whisper 不是某个需要点几下鼠标就能跑起来的图形软件,它是 OpenAI 发布的一个端到端语音识别模型,本质是一套基于 PyTorch 的 Python 代码预训练…

作者头像 李华
网站建设 2026/7/10 9:54:24

oeAware-collector核心功能解析:PMU采样与计数监控技术详解

oeAware-collector核心功能解析:PMU采样与计数监控技术详解 【免费下载链接】oeAware-collector Provides low-overhead metrics collection capabilities, including microarchitecture, system, and kernel information. 项目地址: https://gitcode.com/openeul…

作者头像 李华
网站建设 2026/7/10 9:54:00

Unreal引擎AI寻路调用链深度剖析:从AIController到NavMesh的完整流程

1. 项目概述:为什么需要深入理解Unreal的AI寻路调用链? 在虚幻引擎(Unreal Engine)里做AI,寻路是绕不开的基础功能。无论是让一个怪物追击玩家,还是让一群NPC在城市中巡逻,最终都要落到“怎么走…

作者头像 李华
网站建设 2026/7/10 9:52:37

CentOS7安装Docker教程

一、安装 Docker1. 安装依赖工具yum install -y yum-utils device-mapper-persistent-data lvm22. 添加阿里云 Docker YUM 源(国内速度快)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3. 刷新缓存并…

作者头像 李华