【Agentic SRE】別再當 Dashboard 跳跳虎了!HolmesGPT:雲原生運維的「夏洛克」深度開箱
深度解析 HolmesGPT 的技術架構與代理式循環,帶你了解這個 CNCF Sandbox 雲原生運維 AI 偵探如何終結凌晨三點的 Dashboard 跳跳虎地獄。
凌晨三點,你的 PagerDuty 響得像催命符一樣。你睡眼惺忪地打開電腦,開始了熟悉的「SRE 鐵人三項」:先看 Grafana、再查 Prometheus 指標、最後去 OpenSearch 撈那幾萬行像天書一樣的 Logs。如果你覺得自己不像工程師,反而像是在不同 Dashboard 之間反覆橫跳的「跳跳虎」,那麼這篇文章你一定要看。
今天我們要聊聊 HolmesGPT —— 那個宣稱要終結運維地獄、具備「推理大腦」的雲原生自動化代理。 自從 ChatGPT 問世後,市面上湧現了大量以「xxxGPT」命名的開源專案,譬如 k8sGPT、ShellGPT、DevOpsGPT,身為資深的福爾摩斯迷,起初看到 HolmesGPT 時,我還以為它會模仿名偵探的口吻與人對話,沒想到點進去一看,才發現它是一個深具潛力的 AIOps 工具,更在 2025/10/08 正式被雲原生計算基金會(CNCF)納入為 Sandbox 項目。
HolmesGPT - 從工具到偵探:維運技術的三代進化
-
傳統維運:靠經驗與 SOP 的「體力活」 在沒有 AI 的時代,維運工程師(SRE)就像是拿著手電筒的巡邏員。當警報響起,你必須手動執行「標準除錯三部曲」:
- 指令地獄: 先 kubectl get pods 看狀態,再 describe 看事件,最後 logs 翻日誌。
- 大腦建模: 你需要開十幾個視窗(Grafana 看指標、ArgoCD 看變動、Slack 看通報),在腦中拼湊案發經過。
- 痛點: 這種方式極度依賴個人的「直覺」與「爆肝程度」。如果半夜三點出事,人類的直覺通常不太可靠。
-
K8sGPT:聽得懂機器話的「專業翻譯官」 K8sGPT 的出現,標誌著 「資訊強化」階段。它就像是法醫,能幫你快速解讀屍體留下的訊息。
- 靜態分析: 它會掃描 K8s 的錯誤代碼(如 BackOff),然後去查 AI 資料庫,告訴你:「這段火星文的意思是說你的 Service 標籤對不上。」
- 痛點: 它很擅長告訴你「發生了什麼(What)」,但對於「為什麼會發生(Why)」的深度因果鏈,它通常只能點到為止,無法自動跨維度去追查。
-
HolmesGPT:具備推理能力的「AI 偵探」 這就是為什麼我們說 HolmesGPT 是下一代。它不只是幫你下指令,它具備 ReAct (Reason + Act) 的思考迴圈。
- 自主調查: 發現 Pod 崩潰時,它不會停在「解讀錯誤代碼」。它會進一步想:「如果是內存溢出,那是因為流量突增?還是配置變更?」
- 跨域搜索: 它會自動去抓過去 1 小時的 Git Commit、分析 Prometheus 的斜率變化、甚至調閱 Slow query logs。
- 最終產出: 它不給你一堆數據片段,而是直接給你一份 「調查報告」。
官方 Demo 示例

快速對比:K8sGPT vs. HolmesGPT
| 特性 | K8sGPT(靜態分析師) | HolmesGPT(動態偵探) |
|---|---|---|
| 運作模式 | 看到 A 報警,查字典告訴你 A 是啥。 | 看到 A,懷疑 B,調用工具 C 驗證,最後抓出真兇 D。 |
| 調查範圍 | 僅限 Kubernetes 資源。 | 跨域聯動(雲端平台、Logs、Database、GitHub)。 |
| 擴展性 | 要寫 Go 代碼。 | 寫寫 YAML 或用 MCP 協議,連你阿嬤都會。 |
腦袋、雙手與耳朵:HolmesGPT 的技術架構
HolmesGPT 之所以聰明,是因為它不是亂丟 Prompt 的機器人,它有一套嚴謹的「三層架構」:
推理層(大腦)
由支持 Tool Calling 的 LLM(如 GPT-4o 或 Claude 3.5)組成。它負責把你的垃圾話(「欸,資料庫怎麼又掛了?」)轉化成結構化的任務清單。
執行層(雙手)
這就是它的 Toolsets。它會跑 kubectl、查 PromQL,甚至去 GitHub 開 PR。支持 MCP (Model Context Protocol),這就像是給 AI 裝了一個「萬能轉接頭」,什麼工具都能接。
接入層(耳朵)
負責聽取指令。不管是 Slack、CLI 還是 AlertManager 發來的「慘叫聲」,它都能接收。
技術亮點: 所有的敏感憑證(API Token 等)都藏在環境變數裡,LLM 只會看到執行結果,不會看到你的密碼。這保護了你的隱私,也保護了你的飯碗。
「代理式循環」(Agentic Loop)
這是 HolmesGPT 最硬核的部分。當它接收到問題時,它會跑一個五步循環:
- 意圖分析:搞清楚你到底在說什麼。
- 任務規劃:訂出 SOP(先看日誌、再看 Events、最後看網路架構)。
- 動態執行:如果它查一個 Pod 發現拼錯字(或是 Pod 被刪了),它會根據錯誤回傳自我修正,而不是直接報錯躺平。
- 假設驗證:發現日誌說「Connection Refused」,它會自動切換方向去查 NetworkPolicy。
- 終極診斷:給你一個明確的答案,甚至是一段可以直接 Apply 的 YAML 修復代碼。
原始碼導讀:它是怎麼「思考」的?
如果你去翻 HolmesGPT 的 GitHub,你會發現幾個有趣的組件:
tool_calling_llm.py
這是它的「翻譯官」,利用 LiteLLM 串接各種模型。它用了 Pydantic 來保證 LLM 吐出來的東西是結構化的。畢竟我們不希望 AI 像喝醉一樣隨便噴垃圾話,我們要的是精準的工具指令。
investigation.py
這是「專案經理」。它管理著任務積壓(Backlog)和執行紀錄。它還支持 Runbook 指引,如果你的公司有一套「故障排查標準手冊」,你可以直接餵給它,讓它按照你們的規矩來辦事。
安全性:它會不會把我的生產環境搞炸?
大家最怕的就是 AI 突然「發瘋」把 rm -rf / 跑在生產環境。別擔心:
- HolmesGPT 預設是 Read-Only(唯讀) 的。除非你手動裝了「Remediation(修復)」類的工具集,否則它就是個只看不動手的偵探。
- 採用 Outbound only 通訊模式,不需要你開任何入站 Port,這對資安團隊來說簡直是福音。
實戰案例:那個消失的 DB host
「從 30 分鐘的手動排查,縮減至 30 秒的 AI 推理」
在一個測試場景中,一個 Pod 不斷 CrashLoopBackOff。
傳統做法: 查 Describe → 查 Log → 發現報錯 → 去 ConfigMap 翻 → 發現 Key 是空值。
HolmesGPT 做法: 它一眼看出日誌裡的 invalid DSN: missing the addr after @,接著主動去查 ConfigMap,最後直接告訴你:
「老兄,你的 DB host 忘記填了,去更新一下
db-config這個 ConfigMap 吧。」
省下來的時間,拿去喝杯咖啡不香嗎?
HolmesGPT vs. kagent:同是 CNCF 新星,但解決的問題不同
看到這裡,你可能聽說過另一個同樣被納入 CNCF Sandbox 的項目 —— kagent。它們都跑在 Kubernetes 上、都跟 AI Agent 有關,但一個是「偵探」,一個是「調度中心」。
一句話總結:HolmesGPT 是專為「排錯」打造的成品工具;kagent 則更偏向「Agent 協作與開發」的框架。
「如果說 HolmesGPT 是那位最會破案的偵探,那麼 kagent 就是讓全城偵探能互相通訊、共享線索的『蘇格蘭場(警務調度平台)』。」
核心差異對比
| 特性 | HolmesGPT | kagent |
|---|---|---|
| 主要定位 | SRE/DevOps 專用偵探,專注事故調查與 RCA。 | AI Agent 執行與協作框架,專注 Agent 生命週期管理。 |
| 核心目標 | 縮短 MTTR,自動化維運排錯流程。 | 提供標準化 Agent 運行環境,強調 A2A 協作。 |
| 通訊協議 | Webhook、Slack 或 CLI 互動。 | 採用 A2A Protocol,讓不同 Agent 之間標準化溝通與任務移交。 |
| 工具箱 | 預建大量 K8s 維運工具(kubectl、Prometheus、Loki)。 | 基礎框架,允許開發者自定義各類工具與 Agent 行為。 |
| 開發背景 | Robusta 團隊開發,深度整合監控生態。 | 側重 AI 原生應用編排,適合構建複雜 Agent 工作流。 |
選擇 HolmesGPT 的場景
如果你的首要目標是「解決 Kubernetes 警報太雜亂」或「希望自動生成故障初步診斷報告」,HolmesGPT 是開箱即用的選擇。它內建的 Toolsets 就是為 CrashLoopBackOff、OOM 這類任務設計的,能快速提升 On-call 效率,直接打通「警報觸發 → 自動調查 → 輸出報告」的 Loop。
選擇 kagent 的場景
如果你正在「開發一套複雜的 AI Agent 系統」,或希望不同 AI 服務之間能互相溝通、自動分配任務,kagent 提供的是更底層的協議支撐。當一個任務同時涉及雲端架構調整和代碼修補,kagent 的 A2A 架構可以讓「維運 Agent」和「開發 Agent」在保持上下文一致的情況下互相移交任務。
想深入了解 kagent 的架構設計、生態系元件與實戰範例?看這篇:【AIOps】Kubernetes 原生的 AI Agent 框架:kagent 完整解析
結語:2026 年,你還在手動運維嗎?
HolmesGPT 和 kagent 都已經被接納為 CNCF Sandbox 項目,這代表「代理式運維」不再是科幻小說,而是正在發生的現實。
它並不是要取代 SRE(別擔心,AI 還不會負責任),而是要把你從重複、低效的體力勞動中解放出來。
如果你也想體驗一下「動動嘴皮子,故障就查完」的快感,趕快去試玩:
brew install holmesgpt
告別跳跳虎,你的凌晨三點,交給名偵探毛利小五郎福爾摩斯守護。
延伸閱讀
- 【AIOps】Kubernetes 原生的 AI Agent 框架:kagent 完整解析 — 同樣是 CNCF Sandbox,但定位在「Agent 協作框架」的 kagent 深度解析
- 【A2A 系列 #1】從對話到協作:為何 A2A 是 AI 演進的終局之戰? — 理解 AI Agent 協作的必讀背景
- HolmesGPT 官方文件