Google AI Releases Auto-Diagnose: An Large Language Model LLM-Based System to Diagnose Integration Test Failures at Scale

Asif Razzaq

View Original ↗
AI 導讀 technology AI 重要性 4/5

Google 推出 Auto-Diagnose 系統,以語言模型分析日誌,將 90% 的整合測試失敗診斷縮短至 56 秒。

  • Auto-Diagnose 於 71 個真實失敗測試中達到 90.14% 根本原因診斷準確率。
  • 系統直接採用 Gemini 2.5 Flash 處理 11 萬權杖,完全無需模型微調。
  • 提示詞內建強制負面約束,證據不足時拒絕作答,避免幻覺並揪出基建缺陷。

6059名開發者調查指出的除錯耗時問題

Google 的一份內部調查指出,38.4% 的整合測試失敗需要耗費超過一小時來診斷,而最新推出的 Auto-Diagnose 系統成功在 71 個真實失敗案例中達到 90.14% 的根本原因診斷準確率。這套完全依賴提示詞工程的系統,已經在超過五萬個失敗測試中實際運行,將分析時間壓縮至中位數 56 秒。

開發人員經常需要對著數千行的整合測試日誌,試圖找出哪個檔案真正記錄了錯誤。根據 Google 內部針對 6,059 名開發者進行的 EngSat 滿意度調查,診斷整合測試失敗被列為前五大抱怨項目之一。後續針對 116 名開發者的進一步調查顯示,高達 38.4% 的整合測試失敗需要超過一小時才能找出原因,更有 8.9% 的案例耗時超過一天。

相較之下,單元測試需要超過一小時診斷的比例僅有 2.7%。造成這種時間落差的根本原因是結構性的。整合測試的目的是驗證分散式系統中多個元件是否能正確溝通。Auto-Diagnose 主要針對封閉式功能性整合測試(在隔離環境中將完整伺服器圖運作起來並測試商業邏輯)進行優化。測試驅動程式的日誌通常只會顯示超時或斷言錯誤等表面症狀,真正的錯誤往往隱藏在受測系統某個元件日誌的深處,被大量可恢復的警告訊息與無關的錯誤等級日誌所掩蓋。

採用 Gemini 2.5 處理11萬輸入權杖

當整合測試觸發失敗條件時,系統會透過 pub/sub(發布訂閱模式的非同步架構)事件喚醒 Auto-Diagnose。這套機制會收集跨資料中心、不同行程與執行緒中,所有層級為 INFO 以上的測試驅動程式與受測元件日誌。

匯集而成的日誌會依據時間戳記排序,合併成單一資料流,並與元件詮釋資料一起放入提示詞模板中。負責解析的模型是 Gemini 2.5 Flash,開發團隊將參數設定為溫度(temperature) 0.1 以確保輸出具備高度確定性與可除錯性,並將 top_p 設為 0.8。值得注意的是,Gemini 並未針對 Google 的整合測試資料進行任何微調,整個系統純粹仰賴對通用模型的提示詞工程。

從正式環境的數據來看,Auto-Diagnose 每次執行平均需要處理 110,617 個輸入權杖(tokens)並生成 5,962 個輸出權杖。回報分析結果的 p50 延遲時間(即中位數)為 56 秒,p90 延遲為 346 秒。這種處理速度確保了開發者在切換工作情境之前,就能直接看到系統給出的診斷結果。

強制負面約束提示詞與 Critique 審查

建構這套系統最具啟發性的部分,在於其提示詞的設計方式。開發團隊透過提示詞引導 LLM(大型語言模型,透過巨量資料訓練的神經網路)執行明確的逐步協議:掃描日誌區塊、讀取元件上下文、定位失敗點、總結錯誤,最後才嘗試得出結論。

為了避免模型產生幻覺,提示詞中加入了強制性的負面約束。舉例來說,如果日誌中沒有包含失敗元件的輸出行,模型就不得做出任何結論。這種寧可拒絕回答也不盲目猜測的設計,甚至意外協助團隊發現了日誌基礎設施的真實缺陷。在手動評估失敗的 7 個案例中,有 4 個是因為測試驅動程式在崩潰時未能正確儲存日誌,另外 3 個則是元件崩潰時未保存紀錄。

生成的回覆會經過後處理,轉換為包含「結論」、「調查步驟」與「最相關日誌行」三個區塊的 Markdown 格式報告。這份報告會直接作為評論發佈到 CritiqueGoogle 的內部程式碼審查系統)中,每一行被引用的日誌都會被渲染成可點擊的連結,方便開發者直接跳轉到問題點。

22962名開發者實測,滿意度達前4%

實際部署後,Auto-Diagnose 已經在 22,962 名開發者提交的 91,130 次程式碼變更中,處理了 52,635 個不同的失敗測試,累積執行次數達 224,782 次。

Critique 系統中,開發人員可以對自動生成的診斷給予回饋,介面上提供「請修復」、「有幫助」與「無幫助」三個按鈕。來自 437 名開發者的 517 份回饋報告顯示,有高達 84.3%(436份)是程式碼審查員點擊的「請修復」,這代表審查員正積極要求作者根據 AI 的診斷結果採取行動。

從開發者端的回饋來看,正面幫助率達到 62.96%,而「無幫助」的比例僅有 5.8%,遠低於 Google 針對內部工具設定的 10% 汰除門檻。在所有 370 個會向 Critique 發布回饋的工具中,Auto-Diagnose 的實用性排名第 14,穩居所有工具的前 3.78%。這項工具證明了不依賴客製化微調,純粹運用通用模型與提示詞工程,依然能在高複雜度的企業環境中發揮關鍵作用。

透過強制負面約束的提示詞與精準的日誌串接,通用語言模型能在不微調的情況下,準確解決企業級分散式系統的除錯難題。

Abstract

If you have ever stared at thousands of lines of integration test logs wondering which of the sixteen log files actually contains your bug, you are not alone — and Google now has data to prove it. A team of Google researchers introduced Auto-Diagnose, an LLM-powered tool that automatically reads the failure logs from a […] The post Google AI Releases Auto-Diagnose: An Large Language Model LLM-Based System to Diagnose Integration Test Failures at Scale appeared first on MarkTechPost.