乐于分享
好东西不私藏

AIOps探索:用OpenCode做智能运维助手

AIOps探索:用OpenCode做智能运维助手

↑ 点击关注,分享IT技术|职场晋升技巧|AI工具

研究AIOps已有大半年,目前手里有不少可落地的方案了,接下来会把这些方案全部整理到我的大模型课程里。

阿铭,公众号:阿铭linux所有做运维的朋友注意了,今年一定要关注一下这个领域!

这周计划给同学们直播时讲讲OpenCode,所以这两天一直在用它,同时也尝试着用它做了一个智能运维助手,体验下来感觉它比Dify更加灵活和轻量。

既然你看到了这篇文章,我相信你对OpenCode并不陌生,没错它就是一个类似Claue Code、Codex CLI这样的AI编程工具。而OpenCode最大的特点是开源、终端体验感强、权限可控以及适合深度定制。

今天跟大家分享一个用OpenCode做智能运维助手的案例。

01 | 架构概览

02 | 分层设计

1)交互层:一个能理解运维语言的Agent

用户入口可以是命令行、聊天窗口、值班群机器人,或者内部运维门户。这里的核心不是UI,而是让使用者可以直接说运维语言,比如:

  • “帮我看一下支付服务为什么5分钟内错误率飙升”

  • “对比一下这次故障前后发布记录和节点异常”

  • “按S1标准生成一个事故通报草稿”

  • “根据SOP给我一份回滚前检查项”

Agent负责理解意图、拆解任务、决定要调哪些MCP工具,以及是否需要加载某个skill。OpenCode的skills机制本身就是为这种“先发现可用skill,再按需加载”的流程设计的。

2)能力层:用MCP统一接入运维系统

这一层是整个方案能否落地的关键。常见会接入几类MCP Server:

  • 监控与告警:Prometheus、Grafana、Alertmanager

  • 日志与链路:ELK、Loki、Jaeger、Tempo

  • 资源与环境:Kubernetes、云平台、CMDB

  • 发布与变更:CI/CD、Git平台、制品平台

  • 协同与记录:工单系统、知识库、群通知、事故复盘库

MCP的意义,不是替代这些系统,而是给agent一个统一访问入口。模型不必知道每个平台细节,只需要知道“有哪些工具可用、每个工具能做什么、什么时候应该调用”。

3)经验层:把运维经验写成Skills

如果没有skills,AI很容易变成“每次都临场发挥”。而运维最怕临场发挥,因为生产故障处理讲究的是一致性、可审计、可复盘。所以我们通常会把高频流程沉淀成skills,比如:

  • 告警初判skill

  • Kubernetes故障排查skill

  • 变更前检查skill

  • 故障通报生成skill

  • 事故复盘整理skill

  • 发布回滚决策辅助skill

4)治理层:权限、审计与边界控制

这里是很多PoC容易忽略、但生产环境必须补齐的一层。因为一旦agent不只是“读”,还开始“写”或者“执行”,就必须明确:

  • 哪些动作只允许查询,哪些动作允许执行

  • 哪些操作必须人工确认

  • 哪些结果必须记录审计日志

  • 哪些系统只能在测试环境生效

  • 哪些高危操作必须走审批链

MCP只是能力协议,不会自动帮你完成治理;Skills也只是流程封装,不会自动保证安全。真正落地时,必须在工具层和业务层同时加护栏。

03 | 智能助手工作流程

某晚21:40,支付网关服务触发高优先级告警:5分钟错误率从0.3%升到8.7%,部分核心接口RT同时升高。用OpenCode智能助手的过程是这样的:

第一步:值班同学发起自然语言请求

值班同学不需要先打开十几个页面,而是直接对智能运维助手说:

“帮我排查一下支付网关的高错误率,先判断是不是发布导致的,如果是,给出回滚建议;如果不是,继续看节点和依赖情况。”

这个请求本身就包含了一个很典型的运维流程:先做初判,再做归因,再给出建议。

第二步:Agent自动选择工具与Skill

此时agent不会只回答“可能是配置问题”。它会根据任务意图,先加载“告警初判skill”或“故障排查skill”,再调用多个MCP工具:

1)查询最近15分钟核心指标走势

2)查询最近1小时的发布记录

3)拉取异常Pod/节点状态

4)检查下游依赖调用失败率

5)汇总过去类似事故的处置经验

这正体现了MCP + skills的分工:MCP负责“查什么、调什么”,skill负责“先后顺序和判断框架”。

第三步:助手输出结构化结论,而不是一堆原始数据

优秀的智能运维助手,不是把十张图和二十条日志甩给你,而是先给结论框架:

  • 现象:支付网关21:38后错误率快速上升,主要集中在/createOrder接口

  • 初步判断:与21:31的灰度发布时间窗口高度重合

  • 证据:

    • 新版本Pod错误率显著高于旧版本

    • 节点层面无明显资源争用

    • 下游库存服务RT有波动,但未达到主因级别

  • 建议:

    • 立即暂停灰度扩大

    • 保留1个异常实例做诊断

    • 将其余新版本实例回滚

    • 同步值班群发布一级故障通报草稿

这里的关键不是“AI 会总结”,而是它能按skill里定义的SOP,把多源数据组织成适合决策的输出。

第四步:进入半自动执行阶段

如果团队治理成熟,可以再往前走一步。比如对于低风险动作,agent可以在确认后自动执行:

  • 暂停发布流水线

  • 触发指定服务回滚

  • 拉起标准通知模板

  • 自动生成事故单草稿

  • 整理本次排障过程为复盘初稿

但这里一定要强调:自动化不等于全自动。在运维场景里,更合理的方式通常是“AI 辅助决策 + 人工确认执行”,尤其是涉及生产回滚、扩缩容、熔断、切流这类高风险动作时。

04 | 智能助手落地思路

1)环境准备

  • 安装OpenCode(终端/IDE/桌面版均可)

  • 配置LLM API

  • 配置本地或远程MCP Server接入权限

2)MCP接入

根据运维需求,至少接入以下MCP Server:

  • 监控:Prometheus / Grafana MCP Server

  • 日志:ELK 或 Loki MCP Server

  • 链路追踪:Jaeger / Tempo MCP Server

  • 容器/资源管理:Kubernetes MCP Server

  • 发布流水线:CI/CD MCP Server(Jenkins / GitLab)

  • 资产与配置:CMDB MCP Server

  • 协同/工单:工单系统 MCP Server(Jira / ServiceNow)

MCP Server的作用是把外部系统功能统一标准化,让agent可以通过统一接口调用。

3)Skills配置(推荐模块)

  • 告警初判Skill:根据告警类型自动汇总关键指标和日志

  • Kubernetes排查 Skill:查询 Pod、节点状态、事件和依赖服务

  • 变更检查Skill:检查发布版本、发布记录、变更审批状态

  • 复盘整理Skill:根据故障数据生成事故复盘初稿

  • 通报生成Skill:生成事故通报和内部通知草稿

Skills用SKILL.md 定义,每个Skill尽量聚焦单一职责、包含触发条件、操作步骤、输出格式。

4)Agent配置

  • 创建运维智能助手Agent

  • 加载已安装MCP Servers和 Skills

  • 设置权限策略(只读 / 建议 / 执行分层)

  • 配置对话入口(命令行、Web控制台或聊天机器人)


我的运维大模型课上线了,目前还有很大优惠。友情提醒:AI红利剩余时间真的不多了,千万不要错过!AI越来越成熟了,大模型技术需求量也越来越多了,至少我觉得这个方向要比传统的后端开发、前端开发、测试、运维等方向的机会更多!

扫码咨询优惠(粉丝优惠力度大)

加好友送你100道大模型/AIOps面试题
··············  END  ··············
哈喽,我是阿铭,《跟阿铭学Linux》作者,曾就职于腾讯,有着19年的IT从业经验,现全职做IT类职业培训:运维、k8s、大模型。日常分享运维、AI、大模型相关技术以及职场相关,欢迎围观。