编程 Chameleon-SRE:用 LangGraph 状态机和本地 Llama 3.2,在 minikube 上做 K8s 故障自诊断自修复

2026-10-11 20:00:53

Chameleon-SRE:用 LangGraph 状态机和本地 Llama 3.2,在 minikube 上做 K8s 故障自诊断自修复

项目地址:(作者 KyawLinnKhant,MIT 许可)

一个可本地部署的自治 SRE 智能体参考实现:LangGraph 状态机管决策循环,RAG 检索真实运维手册防命令幻觉,Llama 3.2 30 亿参数模型即可驱动。

不是聊天机器人,是持续运转的状态机

Chameleon-SRE 是有状态的智能体,跑的是持续的「思考-行动-观察-纠错」循环:集群事件或告警进来,模型先推理症状;接着从 ChromaDB 的运维手册知识库做 RAG 检索;然后对集群下发 kubectl 命令;读取执行后的集群状态——问题解决就记录退出,没解决就进入纠错步骤,带着新假设重试。

这和常见的「单轮问答 + 工具调用」有本质区别:状态机允许循环、允许回头、允许换路。LangGraph 的图结构让每一步的输入输出都有明确的状态约束,而不是把正确性寄托在提示词上。

关键设计决策

决策选择工程理由
编排框架LangGraph 而非 LangChain显式状态机,智能体可以循环、纠错、回退
推理模型本地 LLM(Ollama)零延迟、零 API 成本、无数据外泄风险
知识接地ChromaDB RAG裸 LLM 会编造 kubectl 参数,用真实文档修正
验证环境Minikube零成本本地集群,行为与云端 K8s 一致

RAG 接地这条尤其实在:大模型幻觉在运维场景是致命的,一条编造的 kubectl 参数可能搞垮生产集群。Chameleon-SRE 把 Kubernetes 官方文档、错误处置手册、历史事件记录全部向量化入库,每次行动前先检索,命令从真实文档里长出来,而不是模型瞎编。

技术栈与快速启动

编排用 LangGraph,推理用 Ollama 跑 Llama 3.2(3B),向量库 ChromaDB,集群接口是 kubectl 加 minikube,可观测性接 LangSmith 追踪,部署提供 Docker 与 K8s manifests 双路径。

启动五步:

# 1. 建 Python 3.10 环境
conda create -n chameleon python=3.10
conda activate chameleon

# 2. 拉本地模型
ollama pull llama3.2

# 3. 起本地集群
minikube start

# 4. 把运维手册灌进 ChromaDB
python ingest_docs.py

# 5. 启动智能体
python src/main.py

仓库还附带 RBAC、Deployment、ConfigMap 三份 K8s 清单。智能体自己要往集群下发命令,权限边界必须用 RBAC 管起来。

代码结构

  • agent.py:思考、行动、观察、纠错四个节点
  • tools.py:kubectl 包装器、RAG 搜索、语音告警工具
  • state.py:LangGraph 状态 schema 定义
  • config.py:硬件检测,以及 Ollama、ChromaDB 配置

适用边界与参考价值

让智能体自主操作生产集群,在多数组织里仍需谨慎。这个项目的定位是参考实现与实验平台,minikube 本地验证是它的主场景。

对两类人有直接价值。一是想学习「状态机式智能体」架构的开发者:Think-Act-Observe-Correct 四节点的代码实现,比概念文章直观得多。二是评估本地小模型能做什么的团队:3B 参数模型加 RAG 接地就能完成运维诊断循环,这个事实本身对「必须用大模型」的默认假设是有力的反证。

复制全文 生成海报 Kubernetes LangGraph 运维 AI Agent Ollama

推荐文章

程序员茄子在线接单