- 9 min read

【Agentic SRE】別再當 Dashboard 跳跳虎了!HolmesGPT:雲原生運維的「夏洛克」深度開箱

深度解析 HolmesGPT 的技術架構與代理式循環,帶你了解這個 CNCF Sandbox 雲原生運維 AI 偵探如何終結凌晨三點的 Dashboard 跳跳虎地獄。

SRE AI HolmesGPT Kubernetes Observability CNCF LLM

凌晨三點,你的 PagerDuty 響得像催命符一樣。你睡眼惺忪地打開電腦,開始了熟悉的「SRE 鐵人三項」:先看 Grafana、再查 Prometheus 指標、最後去 OpenSearch 撈那幾萬行像天書一樣的 Logs。如果你覺得自己不像工程師,反而像是在不同 Dashboard 之間反覆橫跳的「跳跳虎」,那麼這篇文章你一定要看。

今天我們要聊聊 HolmesGPT —— 那個宣稱要終結運維地獄、具備「推理大腦」的雲原生自動化代理。 自從 ChatGPT 問世後,市面上湧現了大量以「xxxGPT」命名的開源專案,譬如 k8sGPT、ShellGPT、DevOpsGPT,身為資深的福爾摩斯迷,起初看到 HolmesGPT 時,我還以為它會模仿名偵探的口吻與人對話,沒想到點進去一看,才發現它是一個深具潛力的 AIOps 工具,更在 2025/10/08 正式被雲原生計算基金會(CNCF)納入為 Sandbox 項目。


HolmesGPT - 從工具到偵探:維運技術的三代進化

  1. 傳統維運:靠經驗與 SOP 的「體力活」 在沒有 AI 的時代,維運工程師(SRE)就像是拿著手電筒的巡邏員。當警報響起,你必須手動執行「標準除錯三部曲」:

    • 指令地獄: 先 kubectl get pods 看狀態,再 describe 看事件,最後 logs 翻日誌。
    • 大腦建模: 你需要開十幾個視窗(Grafana 看指標、ArgoCD 看變動、Slack 看通報),在腦中拼湊案發經過。
    • 痛點: 這種方式極度依賴個人的「直覺」與「爆肝程度」。如果半夜三點出事,人類的直覺通常不太可靠。
  2. K8sGPT:聽得懂機器話的「專業翻譯官」 K8sGPT 的出現,標誌著 「資訊強化」階段。它就像是法醫,能幫你快速解讀屍體留下的訊息。

    • 靜態分析: 它會掃描 K8s 的錯誤代碼(如 BackOff),然後去查 AI 資料庫,告訴你:「這段火星文的意思是說你的 Service 標籤對不上。」
    • 痛點: 它很擅長告訴你「發生了什麼(What)」,但對於「為什麼會發生(Why)」的深度因果鏈,它通常只能點到為止,無法自動跨維度去追查。
  3. HolmesGPT:具備推理能力的「AI 偵探」 這就是為什麼我們說 HolmesGPT 是下一代。它不只是幫你下指令,它具備 ReAct (Reason + Act) 的思考迴圈。

    • 自主調查: 發現 Pod 崩潰時,它不會停在「解讀錯誤代碼」。它會進一步想:「如果是內存溢出,那是因為流量突增?還是配置變更?」
    • 跨域搜索: 它會自動去抓過去 1 小時的 Git Commit、分析 Prometheus 的斜率變化、甚至調閱 Slow query logs。
    • 最終產出: 它不給你一堆數據片段,而是直接給你一份 「調查報告」。

官方 Demo 示例

HolemesGPT

快速對比: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 最硬核的部分。當它接收到問題時,它會跑一個五步循環:

  1. 意圖分析:搞清楚你到底在說什麼。
  2. 任務規劃:訂出 SOP(先看日誌、再看 Events、最後看網路架構)。
  3. 動態執行:如果它查一個 Pod 發現拼錯字(或是 Pod 被刪了),它會根據錯誤回傳自我修正,而不是直接報錯躺平。
  4. 假設驗證:發現日誌說「Connection Refused」,它會自動切換方向去查 NetworkPolicy。
  5. 終極診斷:給你一個明確的答案,甚至是一段可以直接 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 就是讓全城偵探能互相通訊、共享線索的『蘇格蘭場(警務調度平台)』。」

核心差異對比

特性HolmesGPTkagent
主要定位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

告別跳跳虎,你的凌晨三點,交給名偵探毛利小五郎福爾摩斯守護。


延伸閱讀