Your Agent Failed in Prod. Good Luck Reproducing It. - Tisha Chawla & Susheem Koul, Microsoft
三句話摘要
通過記錄與重放機制解決生產環境中 AI Agent 難以複現的問題。 AI Agent 的生產可靠性不在於追求不可能的位元確定性,而在於記錄完整的運行追蹤、提供調試能力,並將這些追蹤作為自動化測試基礎。 位元確定性是誤導目標:溫度設為零只是每次都選擇機率最高的 token,卻無法保證底層分數在不同運行間保持一致。浮點數運算順序敏感,GPU 上矩陣運算的時序改變會影響最終邏輯;批處理變異性意味著同一請求在不同伺服器負載下會被分組到不同的計算批次,進而影響輸出;專家混合模型(MoE)的路由亦有相同問題。
重點整理
重點- 1
位元確定性是誤導目標:溫度設為零只是每次都選擇機率最高的 token,卻無法保證底層分數在不同運行間保持一致。浮點數運算順序敏感,GPU 上矩陣運算的時序改變會影響最終邏輯;批處理變異性意味著同一請求在不同伺服器負載下會被分組到不同的計算批次,進而影響輸出;專家混合模型(MoE)的路由亦有相同問題。
- 2
可重放性才是關鍵:核心需求不是讓模型每次返回相同 token,而是讓系統執行相同的狀態轉換。應記錄已發生的運行,提供足夠的細節使開發者能調試並測試,而非試圖凍結模型行為。
- 3
在邊界層而非網路層記錄:許多 Agent 邏輯(本地檢索、不經網路的工具、記憶體操作)不會觸及網路層,應在方法邊界記錄輸入輸出,捕捉每一步的含義而非封包內容。
- 4
用追蹤作為自動化測試基礎:記錄的追蹤提供確定性測試環境,可在其他節點打樁(stub)僅執行修改過的節點,免費且可重複運行,測試修復方案無需呼叫模型。
實用技巧與重點
乾貨- 經典故障案例:Agent 誤解 「賣 $1,000 股票」為「賣 1,000 股」,以每股 $190 造成 $190,000 虧損,但 API 返回 HTTP 200,儀表板完全綠燈
- 溫度確定性誤區:在同一 GPU 上執行相同操作 1,000 次仍可能因硬體非決定性而得到數十種不同回應
- Chronicle 框架核心:Boundary 註解、完整追蹤記錄(模型版本、採樣參數、輸入輸出)、回放模式、自動打樁與斷言
- 兩種測試方式:確定性測試(針對護欄和工具呼叫的節點,使用凍結追蹤進行)、行為測試(使用 LLM as Judge 測評語氣和軌跡正確性)
- 工具版本和元數據:需記錄模型版本、程式碼版本、RAG 段落等會影響運行結果的所有變數
結論
結論“AI Agent 的生產可靠性不在於追求不可能的位元確定性,而在於記錄完整的運行追蹤、提供調試能力,並將這些追蹤作為自動化測試基礎。”
完整解析
詳細生產環境中的 AI Agent 故障往往具有不可複現的特性——工程師拉取遙測日誌中的提示詞,用相同模型本地運行卻完美工作,多次重試仍無問題,但那一次失敗的運行已造成實際損害。講者以一個股票交易 Agent 為例:使用者要求「賣 $1,000 的 ACME 股票」,但 Agent 誤將金額數字 1,000 理解為股票數量,執行了賣出 1,000 股的操作。以每股 $190 計算,原本 $1,000 的交易變成了 $190,000 的災難。更糟的是,API 返回乾淨的 HTTP 200 回應,沒有任何例外或警報,所有監控儀表板仍然完全綠燈。
面對這類問題,工程師的直覺反應是將模型溫度設為零,期望貪心解碼能帶來確定性行為。但這完全是誤解。溫度為零只是保證每次都選擇機率最高的 token,卻根本無法修復破碎的推理路徑。更致命的是,位元確定性在硬體層級本來就不存在。浮點運算不滿足結合律,矩陣運算的時序改變會影響最終邏輯進而改變獲勝 token;更重要的是批處理變異性——同一請求會與其他在該毫秒內到達伺服器的請求分組,是否通過某個子網路完全取決於當時批入的流量。混合專家模型(MoE)的路由也面臨相同的容量限制問題。
因此,追求精確的文本輸出重現是一場必然失敗的戰爭。講者提出了根本性的轉變:不追求位元確定性(相同輸入必然相同輸出),而追求可重放性(能夠重建已發生過的運行以進行調試)。位元確定性是可控性(controllability),而可重放性是可觀測性(observability)。我們不需要模型完全確定性,只需要記錄它做了什麼、捕捉狀態快照。
為此,講者介紹了 Chronicle 框架。其核心概念是「邊界」(Boundary),一個包圍 Agent 工作流中任何節點的邊界框,無論是工具呼叫、LLM 呼叫或 RAG 檢索。只要是方法就可用 Boundary 註解標記,確保進入和離開該方法的所有內容都被記錄。同時可定義模型版本、程式碼版本等參數,使整個 Agent 運行的完整狀態被凍結並儲存為追蹤。
在實際應用中,Chronicle 不僅記錄失敗場景,還將這些記錄用作測試用例。一旦在工具層面添加了護欄修復邏輯,就可以用之前記錄的追蹤執行測試,在其他節點打樁而僅讓修改過的節點實際運行。這使得測試變得確定性、免費且可重複。講者強調了兩種測試方式的區別:確定性測試用於護欄和工具呼叫等決定性節點,行為測試則用 LLM as Judge 來評估 Agent 的語氣和決策軌跡。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


