乐于分享
好东西不私藏

我做了一个AI运维助手,它会自己查故障

我做了一个AI运维助手,它会自己查故障

我做了一个AI运维助手,它会自己查故障

本文是「老计学AI」系列第10篇。 我是老计,一个8年运维工程师,正在往AI方向折腾。 这个系列记录我从零理解AI的过程。


上一篇聊了Agent是什么。

简单说,Agent不只是回答问题。它会自己判断下一步该做什么,调用工具拿结果,再决定是否继续。

这次我们不只讲概念,直接看看一个AI运维助手是怎么搭出来的。

放心,公众号版不讲代码。我们只看它背后的思路。


先说它能干什么

我希望这个AI运维助手收到一句话后,能自己完成排查:

帮我看看生产环境有没有异常Pod,如果有,分析一下原因。

它会按顺序做这些事:

  1. 查询异常Pod
  2. 发现某个服务反复重启
  3. 查看这个Pod的事件和日志
  4. 发现OOM,也就是内存不足
  5. 查看当前内存配置
  6. 给出增加内存的建议

用户只说了一句话,后面的步骤由它自己判断。

这才是Agent最有意思的地方。


一个Agent只需要三部分

把复杂名词都去掉,一个Agent其实就是三件套。

第一件:工具

工具就是Agent的手脚。

比如给运维Agent准备这些工具:

  • 查异常Pod
  • 看Pod日志
  • 查告警事件
  • 看资源配置

它们就像运维工程师常用的命令,只是被包装成了AI可以调用的按钮。

没有工具,AI再聪明也只能告诉你应该怎么查,不能真的替你查。

第二件:菜单

有工具还不够,必须给每个工具写清楚说明:

  • 这个工具叫什么
  • 它能做什么
  • 什么情况下应该用
  • 使用时需要提供什么信息

这就像饭店菜单。

只写菜名不写介绍,客人可能不知道怎么选。工具说明写得不清楚,AI也可能选错。

比如查日志这个工具,说明里应该告诉AI:当服务崩溃、报错或反复重启时使用。

第三件:循环

循环就是Agent的大脑工作方式。

它每一轮都做三件事:

  1. 看目前掌握的信息
  2. 决定下一步调用什么工具
  3. 看工具返回的结果

信息不够,就再来一轮。信息够了,就停止调用工具并给出答案。

工具让它能做,菜单让它会选,循环让它能持续排查。


它是怎么自动排障的

假设用户问:

帮我查查order-service为什么一直重启。

Agent开始工作。

第一轮:先确认现象

它先调用查询Pod的工具。

结果显示:order-service处于反复崩溃和重启的状态。

它知道服务有问题了,但还不知道为什么,所以不会立即回答。

第二轮:继续找原因

它调用查看日志和事件的工具。

日志里出现了OutOfMemoryError,事件里显示OOMKilled。

翻译成大白话:程序需要的内存超过了限制,被系统强制终止了。

第三轮:查看配置

它接着查看资源配置,发现这个服务的内存上限只有512Mi。

到这里,现象、原因和配置都对上了。信息已经足够。

最终回答

Agent整理出一份结论:

order-service因为内存不足被系统终止,导致不断重启。当前内存上限为512Mi,建议结合实际使用量适当提高内存配置,并检查应用是否存在内存泄漏。

整个过程里,用户不需要逐条告诉它该查什么。


真正关键的不是代码

很多人看到Agent,会先问需要写多少代码。

其实代码长短不是最关键的。真正决定效果的是下面三件事。

工具要可靠

AI给出的结论,建立在工具返回的数据上。

如果查日志的工具拿错了Pod,或者监控数据已经过期,再聪明的AI也会分析错。

工具说明要准确

说明写得模糊,AI就可能在不合适的时候调用错误工具。

这跟带新人一样。你只说去查一下,他可能不知道查哪里。你说清楚先看Pod状态,再看事件和日志,他才知道怎么做。

必须设置边界

Agent可以自主行动,但不能无限自主。

生产环境里至少要有这些限制:

  • 最多执行多少轮
  • 每次处理最多花多少Token
  • 只开放查询工具,危险操作需要人工确认
  • 执行过程完整记录,出问题可以回放

先让AI会查,再考虑让AI去改。


它能替代运维工程师吗

现在还不能。

它更像一个刚入职、查资料特别快的新同事。

它能替你完成重复的信息收集,快速翻日志,整理可能原因。但面对复杂故障,它仍然缺少业务背景和长期积累的经验。

更合理的分工是:

AI运维助手
运维工程师
收集状态、日志和事件
判断故障严重程度
汇总异常信息
结合业务背景做决策
给出可能原因
验证根因并制定方案
提供操作建议
决定是否执行变更

AI负责跑腿和初步分析,人负责判断和兜底。


跟你有什么关系

如果你不是程序员,也不需要关心那120行代码。

你只需要理解:Agent不是一个神秘的万能机器人。它只是把大模型和一组可靠工具连接起来,再让它反复执行,直到得到足够的信息。

将来你看到AI客服、AI助理、AI运维工具,都可以用这三个问题判断它是否靠谱:

  1. 它能使用哪些工具
  2. 它根据什么选择工具
  3. 它什么时候停止,谁来兜底

下一篇预告

一个Agent能完成不少任务。但如果任务非常复杂,让一个Agent从头干到尾,可能又慢又容易出错。

下一篇聊多Agent协作:让多个AI像团队一样分工,有的收集信息,有的分析原因,有的检查结果。


我是老计,8年运维,正在从DevOps向AI方向折腾。 关注「老计爱折腾」,一起搞懂AI、用好AI。 有问题欢迎留言交流。


📌 想看完整代码和技术细节,扫码访问CSDN: