宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

當AI員工犯錯時,我們能不能提前十分鐘看出來

2026年09月04日 首頁 » 熱門科技

2024年,有一群做智能體當AI員工犯錯時我們能不能提前十分鐘看出來(能自己執行任務的AI程序)研究的工程師發現了一件很彆扭的事。

他們讓AI去修代碼倉庫的bug,讓AI去逛購物網站買東西,讓AI去操作電腦桌面完成任務。每一次,AI都會留下一長串執行記錄,先搜索文件,再打開某個工具,再調用另一個接口,反反覆覆幾十上百步。任務做完了,這份記錄也就跟著歸檔了,沒人會去仔細看它。

問題是,這些記錄里其實藏著規律。

一個修代碼的AI大概率會按照「搜索問題所在文件→修改代碼→執行測試」這樣的節奏循環。一個客服AI會不停地在「查資料庫」和「回復用戶」之間來回切換。這些行為模式明明是有結構的,可是沒人把它們提煉出來。每次出了問題,工程師只能翻著幾百行的原始日誌一行行找線索,就像大海撈針。

這篇發表於2026年ICML當AI員工犯錯時我們能不能提前十分鐘看出來研討會的論文《Automata from Agent Traces: Failure and Next-Step Prediction》要解決的就是這件事:能不能把一整個AI智能體的行為記錄庫,壓縮成一張地圖,讓人一眼就能看出這個AI通常怎麼工作、什麼時候容易出問題、下一步大概率會做什麼。

這事到底難在哪

先說說這個問題為什麼不是隨便寫幾行統計代碼就能解決的。

**智能體*:這裡特指基於大語言模型構建、能自主執行多步驟任務的AI程序,比如自動修bug的編程助手、自動瀏覽網頁完成購物的AI、自動操作電腦桌面的AI

如果你只看單條執行記錄,會發現每次任務的具體步驟都不太一樣:這次搜索了三個文件,那次搜索了五個;這次先編輯再測試,那次因為報錯又多繞了一圈。要是死板地把每一條獨特的路徑都記下來當成一個「狀態」,你會得到一張巨大無比、幾乎沒法看的圖,因為幾乎每條記錄的細節都是唯一的。

學術界處理這類「從例子中總結規律」的問題,有個繞不開的理論障礙。

**戈爾德極限(Gold's theorem)*:1967年由E. M. Gold提出的一個理論結果,大意是說,如果你只能看到「正確的例子」而看不到「錯誤的例子」,那麼想要百分之百精確地還原出生成這些例子的規則,在數學上是不可能的

這一點對於AI智能體的行為記錄來說是致命的。因為你手裡拿到的所有交易記錄都是這個AI真實執行過的,全都是「正例」,你沒有一份「這個AI絕對不會做的事」的清單去做對照。這就好比你想弄清楚一個陌生小鎮的所有交通規則,但你只能看別人開車的錄像,永遠看不到交警的處罰記錄,你怎麼知道哪條路是單行道,哪個路口不能左轉?

正因為如此,之前學界研究「從例子裡學出一個狀態機」的經典算法(比如RPNI當AI員工犯錯時我們能不能提前十分鐘看出來、EDSM這些,本質上都是想把觀察到的行為序列合併壓縮成一張緊湊的圖),碰到智能體的行為記錄時統統失靈了。論文裡給出了具體的數字:用經典算法RPNI處理一個叫SWE-agent當AI員工犯錯時我們能不能提前十分鐘看出來的編程智能體的兩千條記錄,最後得到的狀態機有五萬九千五百一十個狀態,跑一遍測試數據的「回放成功率當AI員工犯錯時我們能不能提前十分鐘看出來」(後面會解釋這是什麼)只有0.646,也就是三分之一以上的步驟根本對不上號。

這就是這篇論文出發時面對的現實:想要的東西(一張緊湊清晰、能看懂的行為地圖)在理論上被證明拿不到完美解,而現成的工具算出來的地圖又大又亂,根本沒法用。

研究者的關鍵洞察:智能體的「詞彙量」其實很小

論文作者們沒有去正面挑戰哥德爾極限,而是找到了一個繞過去的角度。

他們注意到一件事:智能體雖然每次任務的具體路徑千變萬化,但它能做的「動作種類」其實非常有限。一個編程智能體翻來覆去也就是搜索、編輯、執行、提交這麼幾個大類的操作;一個客服智能體來來回回也就是查訂單、查用戶資訊、回復用戶這幾種工具調用。

論文裡統計了十二個公開數據集,發現這些智能體使用的「動作字母表」大小只有6到42個符號。換句話說,雖然每次執行的具體序列長度可能有幾十上百步,但組成這些序列的「基本單詞」非常少。

**有限狀態機當AI員工犯錯時我們能不能提前十分鐘看出來(FSM, Finite State Machine)*:一種數學模型,用一組「狀態」和狀態之間的「轉移規則」來描述一個系統的行為,你可以把它想成一張地圖,每個地點是一個狀態,每條路是一次動作

這個觀察很關鍵,因為它意味著,如果按照動作類型而不是完整路徑來劃分狀態,狀態的總數就不會隨著記錄條數的增加而爆炸性增長。這就好比你要給一座城市畫交通圖,如果按照「每輛車具體走過的路線」來畫,永遠畫不完,因為每輛車的路線都不同;但如果按照「這座城市一共有哪些路口和道路」來畫,圖會非常穩定,因為路口的數量是有限的,不會因為車流量增加而變多。

基於這個洞察,作者設計了一套構造方法,三步走。

第一步,把所有的執行記錄塞進一棵前綴樹(一種樹形結構,相同的開頭路徑會共享同一段分支)。這一步得到的樹非常忠實,能完美還原每一條原始記錄,但狀態數量極其龐大,因為幾乎每條獨特的記錄都會撐開新的分支。

第二步,也是最核心的一步,按照「最後一次做的動作類型」把樹上的節點合併。具體來說,如果兩個節點是通過同一種動作到達的(比如都是剛執行完「編輯代碼」這個動作),無論它們之前走過什麼樣的路徑,都合併成同一個狀態。這一步一下子就把狀態數量壓縮到了「動作種類數加一」這個規模,因為不管你之前繞了多少彎路,只要你現在處於「剛編輯完代碼」這個狀態,你接下來大概率會做的事情是相似的。

第三步是做一些清理,把那些在整個語料庫里只出現過一次、而且不是唯一選擇的「偶發性」轉移路徑過濾掉,避免個別的怪異操作污染整張圖。

論文對這套方法做了嚴格的數學證明,證明這個合併過程不會丟失訓練數據里已經驗證過的路徑(也就是說,如果一條記錄在沒合併之前能被完整還原,合併之後依然能被完整還原),而且這個構造過程是完全確定性的,同樣的數據永遠得到同樣的圖,不需要調任何超參數。

這裡要打個比方幫你理解為什麼「按最後動作合併」這個設計如此重要。

想像你在整理一個公司的會議紀要,如果你按照「具體是哪次會議、參會人員是誰、討論了幾個議題」來歸檔,你會積累成千上萬份互不相同的檔案,永遠找不出規律。但如果你換一個角度,按照「這次會議是不是剛開完預算討論」來歸類,你會發現,不管前面聊了什麼,只要是剛開完預算討論,接下來大概率是財務部門發言或者休會。這種按「當下所處階段」而不是「完整歷史路徑」來分類的方式,恰恰是從一堆看似雜亂的記錄里提煉出可操作規律的關鍵。如果不這樣做,堅持按完整路徑歸檔,你得到的檔案櫃會塞滿幾萬個幾乎從不重複的文件夾,翻找起來和大海撈針沒有區別。

這套構造方法效果如何?論文用十二個公開數據集做了驗證,結果相當驚人。最終得到的狀態機只有7到43個狀態,構造過程只需要幾十到一百多毫秒,而在測試數據上的「回放成功率」高達0.997以上。

**回放成功率(Replay Fitness)*:把一條新的執行記錄餵給已經構造好的狀態機,看這張圖能不能順著走完整條記錄而不掉鏈子,能走完的步驟比例就是這個指標

和之前提到的RPNI相比,在SWE-agent這個數據集上,壓縮比達到了2380倍,也就是說別人要用兩萬九千多個狀態才能勉強描述的行為規律,這套方法只用25個狀態就說清楚了,而且回放成功率還從0.646提升到了0.999。

有了這張圖,能做什麼

光是把行為記錄壓縮成一張小圖還不夠震撼,真正讓人眼前一亮的是,這張圖能同時干四件不一樣的活,而以往這四件事需要四套完全不同的系統來分別解決。

### 第一件事:預測AI下一步大概會做什麼

有了狀態機之後,你只要知道AI現在處於哪個狀態,就可以統計歷史上處於這個狀態的所有記錄,接下來最常做的是什麼動作,直接給出一個概率分布。

論文用一個叫「交叉熵」的指標衡量預測的準確程度,數值越低說明預測越准。結果顯示,僅僅靠這個最簡單的「看當前狀態猜下一步」的方法,平均交叉熵是0.934比特,比什麼都不做(均勻猜測)的3.474比特降低了73%,比稍微聰明一點的「看歷史上哪個動作出現頻率最高」這種不考慮狀態的方法(2.439比特)也降低了62%。

這個提升有多大呢?換個說法,交叉熵每降低1比特,大致相當於預測的不確定性減半。從2.4多比特降到0.93比特,意味著預測這件事變得容易了三四倍。

論文還做了一個很有意思的對比實驗,是關於給大語言模型提供什麼樣的「上下文提示」效果最好。研究者拿這套狀態機的資訊去跟一個現成的方法**Agent Workflow Memory當AI員工犯錯時我們能不能提前十分鐘看出來 (AWM)*:一種從成功的執行記錄里提煉出線性工作流程,供AI參考的記憶機制,簡稱AWM

做對比。結果是,在全部八個有標註數據的測試里,用狀態機資訊作為提示,全部贏過AWM,勝幅最大的一個案例(SWE-smith數據集)領先了整整25.3個百分點。

但這裡有個反直覺的細節值得說一下。研究者試了四種不同的方式把狀態機資訊塞進提示詞,本以為資訊越詳細、把整張圖的所有狀態和轉移關係都列出來效果會最好,結果恰恰相反。那種「把所有狀態和所有轉移關係全都列出來」的詳盡版本(論文裡叫ASG-full)表現只有52.2%的準確率,反而不如AWM的52.9%;而只給出「當前狀態下最可能的下一步動作概率,加上未來十五步內最常見的幾條延續路徑」這種精簡版本(ASG-minimal),準確率飆到了65.1%,比AWM高出12.9個百分點。

這個反差說明了一件很樸素的道理,資訊不是越多越好,太詳細的說明反而會把關鍵信號淹沒掉。這就像你問一個人怎麼走去最近的地鐵站,最有用的回答是「直走兩百米右轉」,而不是把這座城市所有的地鐵線路圖和歷史沿革全部列印給他。資訊過載會讓接收方(不管是人還是AI)找不到重點,而恰到好處的精簡提示反而能讓決策更快更准。

### 第二件事:提前預判AI會不會失敗

這是這篇論文裡最實用的部分。研究者把每條執行記錄「回放」一遍這張狀態機地圖,記錄下這條記錄在每個狀態上停留了多久、消息長度、出錯頻率、以及五個跟「驚訝程度」有關的指標(比如某一步的動作有多不符合歷史規律),拿這些特徵去訓練一個分類器,判斷這條記錄最終是成功還是失敗。

結果在九個有標註的數據集上,**AUROC當AI員工犯錯時我們能不能提前十分鐘看出來(一種衡量二分類模型區分能力的指標,取值0到1,0.5相當於瞎猜,1.0代表完美區分)*最高達到了0.94(在tau2-bench當AI員工犯錯時我們能不能提前十分鐘看出來電信客服數據集上),普遍在0.78到0.94之間。

有個細節特別值得展開講講。研究者發現,光看「回放成功率」本身幾乎沒有預測力(AUROC約等於0.5,跟瞎猜沒區別),但是把這張地圖的「狀態特徵」拆解出來餵給分類器,效果立刻就上來了。這說明單純問「這條記錄符不符合常見套路」是不夠的,真正有用的資訊藏在「這條記錄具體在哪些狀態上花了多少時間、犯了多少錯」這種細粒度的拆解里。

在SWE-agent這個編程智能體數據集上,研究者還專門做了一個對照實驗:如果只看記錄的長度(步數多少)來預測成敗,AUROC只有0.659;而用這套基於狀態的結構化特徵,AUROC能到0.790。這個差距證明了失敗的信號不是簡簡單單「這個任務花了更多步驟」,而是這個AI具體在哪些狀態之間反覆兜圈子。

論文裡給出一個特別生動的例子:在SWE-agent上,成功完成任務的記錄只用到了25個狀態里的9個,走的是一條很專注的路徑(搜索、編輯、提交),而失敗的記錄幾乎把全部25個狀態都用上了,到處亂竄。兩組記錄之間的路徑重合度(專業說法叫Jaccard相似度)只有0.206,說明成功和失敗在行為模式上幾乎是兩個完全不同的故事。

這裡可以打個比方。想像你在看兩個學生做同一道數學題的草稿紙,做對的學生草稿紙上只有寥寥幾行,思路清晰地一步步推導下去;做錯的學生草稿紙上寫滿了各種嘗試,劃掉又重寫,來回折騰。你不需要看最終答案,光看草稿紙上「折騰的痕跡」就能大致猜出誰做對了誰做錯了。這套狀態機乾的就是這件事,把AI的「草稿紙」量化成可統計的特徵。

### 第三件事:還沒做完就喊停

比失敗預測更進一步的,是能不能在任務還沒跑完的時候就提前發現苗頭不對,及時叫停,省下後續的計算資源。

論文設計了一個在線監控器,核心是盯著兩個信號:一個是「循環率」,也就是這條記錄在最近走過的路徑里,有多大比例是在重複之前訪問過的狀態,另一個是訪問過的獨特狀態數量是否達到一個基本門檻。

結果顯示,在SWE-agent這個數據集上,監控器能在任務只完成32%的時候就觸發預警,此時預測的精確度達到85.9%,召回率達到95.5%,意味著能省下68%的剩餘計算量。論文還給出了一個更保守但零誤報的操作模式:把循環率的觸發門檻調得更高一些,可以做到100%精確率(一次誤報都沒有),雖然只能抓到11.3%的失敗案例,但作為「確信度極高才叫停」的策略是很有價值的。

圖4里那個對比圖特別直觀:一條失敗的記錄,它的循環率曲線在很早期就竄到了0.8以上,超過了0.778這個閾值線,卡在「用戶」和「編輯」兩個狀態之間來回打轉;而一條成功的記錄,循環率始終壓在0.636以下,穩步走向新的狀態直到完成任務提交。兩條曲線的分岔在整個執行過程的三成左右就已經很明顯了。

這套邏輯不需要任何機器學習模型,純粹靠狀態機回放的統計規律,每一步的判斷只要0.006毫秒,完全可以嵌入到真實的AI系統運行環境裡做實時監控。

如果不做這種早停機制會怎樣?答案很直接:AI會繼續跑完整個失敗流程,把後面本可以省下的計算全部浪費掉。這就好比一個廚師炒菜炒到一半已經明顯糊了,鍋里冒黑煙了,如果堅持按流程炒完再嘗味道,浪費的不只是這盤菜,還有爐火和時間。早停機制相當於在冒煙的那一刻就把火關掉,雖然這盤菜肯定是廢了,但至少省下了繼續燒下去的成本。

### 第四件事:壓縮,把幾萬個狀態變成幾十個

這部分前面已經提過壓縮比的數字,這裡補充說明一下為什麼「壓縮」本身是件值得單獨拎出來說的事。

一個只有7到43個狀態的圖,人是可以打開看、可以理解、可以手工審查的。一個五萬九千個狀態的圖,除了讓電腦去跑,人根本沒法用眼睛去審計。安全審計這件事,說到底需要的是人能看懂系統在做什麼,而不是把黑箱換成另一個更大的黑箱。這套方法把原本不可讀的海量日誌,壓縮成了人類審計員真正能坐下來逐一檢查的規模。

一個有意思的發現:AI的行為模式可能跟具體用的是哪個大模型關係不大

論文還做了一個跨模型的實驗,很有意思。他們在tau2-bench這個客服場景的數據集上,收集了四種不同大語言模型(GPT-4.1、Claude 3.7 Sonnet、GPT-4.1-mini、o4-mini)執行相同任務的記錄,然後用一張綜合了所有模型記錄的狀態機去分別檢驗每個模型單獨的表現。

結果是,這張綜合狀態機在每個模型上單獨測試都達到了1.000的回放成功率。也就是說,不管背後驅動這個AI的是哪家公司的哪個模型,它們走的行為路徑高度雷同,只是在具體的轉移概率上有差別。用論文裡的話說,不同模型之間共享了80%到92%的「主幹轉移路徑」。

這個發現有一定的顛覆性,它暗示了智能體的行為結構,更多是由「系統怎麼搭的」(用了哪些工具、給了什麼樣的提示詞模板、任務分布是什麼樣)決定的,而不是由「大腦用的是哪個模型」決定的。這就好比不管你請哪位大廚來做這道菜,只要用的是同一份菜譜、同一套廚具、同一個廚房布局,做出來的流程步驟大體相似,真正體現廚師個人風格的可能只是火候和調味這些細節,而不是先切菜後炒制這個大框架。

不過這個跨模型的遷移能力不是完美的。當用A模型訓練出的失敗預測特徵去預測B模型的失敗情況時,AUROC平均下降了0.091,從自身模型內的0.877掉到跨模型的0.786。這說明雖然大框架是共享的,但每個模型確實有一些自己獨特的失敗方式,沒法完全通用。

寫在後面

讀完這篇論文,最觸動我的其實不是那些漂亮的AUROC數字,而是那個反直覺的「資訊越少反而效果越好」的實驗。研究者原本大概率是想著把狀態機的所有細節一股腦塞給大模型,覺得資訊越全面判斷力越強,結果發現精簡的版本反而贏了12.9個百分點。這個結果其實在提醒一件更普遍的事:我們習慣性地認為給AI餵更多上下文一定更好,但真實情況可能是,過量的、未經篩選的上下文會稀釋掉真正關鍵的那一小撮信號。這跟人類做決策時的「資訊過載」現象幾乎是同一個道理,只是發生的場景換成了大模型的提示詞工程。

另一個讓我反覆琢磨的地方,是那個跨模型遷移的實驗。如果智能體的行為結構真的更多由「部署框架」而不是「底層模型」決定,那這對整個行業的安全審計思路可能是個提醒:與其花大力氣針對每個新模型單獨做行為分析,不如先把審計的重點放在系統架構本身,工具怎麼調用的、提示詞怎麼設計的、任務邊界怎麼劃的。這或許比追著每一代新模型跑評測更划算。

論文沒有解決的問題也很明顯,這套方法對付的是工具數量有限、動作種類清晰的場景,一旦AI的動作空間變得極其龐大或者行為規律很弱,這張緊湊的地圖可能就畫不出來了。未來的智能體如果擁有更自由、更開放式的行動能力,這套基於有限字母表的思路還能不能撐住,是個值得持續追問的事。

Q&A

Q1:這篇論文提出的有限狀態機方法主要解決什麼問題?

A:主要解決AI智能體(能自主執行多步驟任務的AI程序)行為記錄難以審計和監控的問題。研究者把一整個語料庫的執行記錄壓縮成一張只有7到43個狀態的緊湊地圖,用它來預測AI下一步會做什麼、判斷任務會不會失敗、並且能在任務還沒跑完時提前叫停有問題的執行。

Q2:這套方法和之前的自動機學習算法(比如RPNI)相比優勢在哪?

A:最大的優勢是壓縮比和實用性。傳統方法RPNI在處理智能體記錄時會產生幾萬個狀態(比如SWE-agent數據集上產生59510個狀態),而且回放成功率只有0.646;這篇論文的方法只需要25個狀態就能達到0.999的回放成功率,壓縮比最高達到3036倍,而且構造過程完全確定、不需要調超參數,幾十毫秒就能建好。

Q3:這套狀態機能不能提前預測AI任務會失敗?

A:可以,而且效果不錯。研究者把每條記錄在狀態機上回放後提取的特徵餵給分類器,在九個數據集上失敗預測的AUROC最高達到0.94。更實用的是,還設計了一個在線監控器,能在任務只完成32%的時候就觸發預警,精確度85.9%,召回率95.5%,可以省下68%的後續計算資源。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新