We empowered an AI agent to investigate flaky tests and root causes by providing it with a SQL interface to query billions of CI log lines stored in ClickHouse. This approach leverages the natural SQL proficiency of LLMs to perform deep, multi-step investigations across massive datasets in seconds.
我們將數 TB 的 CI 日誌交給了大型語言模型
Hacker News
1 天前
AI 生成摘要
我們透過提供 SQL 介面,讓 AI 代理程式能夠查詢儲存在 ClickHouse 中數十億行的 CI 日誌,進而調查不穩定的測試與根本原因。這種方法利用了大型語言模型天生擅長 SQL 的特性,能在幾秒鐘內對海量數據進行深度且多步驟的調查。
這篇文章探討了 Mendral 團隊如何利用大型語言模型(LLM)處理海量的 CI 紀錄。他們將每月產生的 15 億行日誌存入 ClickHouse 資料庫,並賦予 AI 代理撰寫 SQL 查詢的能力,使其能自主追蹤隨機測試失敗(Flaky tests)的根源。透過將非結構化的日誌轉化為具備 48 個欄位元數據的列式存儲架構,該系統能讓 AI 在數秒內檢索數十億行數據,解決了傳統人工排查耗時費力的痛點。
社群觀點
Hacker News 的討論聚焦於 LLM 處理 SQL 的可靠性以及如何有效管理上下文窗口。部分開發者對「LLM 擅長 SQL」這一前提表示保留,認為在複雜的業務邏輯或 OLAP 場景中,AI 生成的查詢往往需要大量人工校閱,否則容易產生誤導性的分析結果。然而,支持者指出,SQL 之所以是 AI 探索數據的最佳界面,是因為訓練數據中存在極其豐富的 SQL 範例,且 SQL 的語法結構與自然語言的邏輯高度契合,這讓 AI 能在沒有預設 API 限制的情況下,提出開發者未曾預想過的調試問題。
針對日誌分析中常見的幻覺問題,社群展開了深入探討。有留言者質疑,當日誌中的因果關係跨度過大,或存在多個併發錯誤時,AI 可能會編造錯誤原因。對此,原作者與相關技術負責人回應,解決之道在於「架構設計」而非單純依賴模型。他們採用了子代理(Sub-agents)機制,讓小型模型先過濾日誌並僅回傳關鍵片段給主模型,這種「遞迴語言模型」(RLM)的思路將長文本壓力轉化為推理與工具調用的問題。此外,社群也達成一項共識:日誌的品質直接決定了 AI 的表現。如果原始日誌充滿噪音且缺乏結構,AI 同樣會陷入混亂;反之,若能像文中那樣在寫入時進行去正規化並豐富元數據,就能大幅降低 AI 檢索的難度。
另一派觀點則討論了存儲成本與檢索效率的權衡。有開發者認為,為了讓 AI 好發揮而將每行日誌擴充至 48 個欄位看似瘋狂,但在 ClickHouse 的列式存儲與壓縮算法下,重複的元數據幾乎不佔空間,這證明了針對 AI 優化數據結構是可行的工程路徑。儘管有人批評這類工具可能只是在處理開發者本身不擅長的任務,但多數人認同,在處理如 Docker 與 Tailscale 網路衝突這類極其罕見且難以重現的邊際案例時,具備深度搜索能力的 AI 確實展現了超越傳統監控工具的價值。