
290 場工作階段、13 條心得:AI Agent 自己學會了什麼
我們的 AI Agent 每晚覆盤自己的工作,記下學到的事。回顧 290 場工作階段後,13 條心得通過檢驗,我們留下了其中 6 條。這篇文章談談它們發現了什麼,以及這些發現到底值多少。
多數早晨,我的終端機頂端都會出現一條心得:執行你寫的測試,在說工作完成之前,回報測試通過還是失敗。
我們團隊沒有人寫過這句話。是一個 AI Agent 在夜裡寫的。它讀完自己一整天的工作,發現自己老是寫了測試,卻沒有執行。
人們稱這為遞迴式自我改進(RSI)。聽起來像是討論世界末日的論文。實際上,它更像音樂家在演出後聽錄音:你聽出某一段奏得太急,記下來,隔天便會稍微放慢一點。
從九月中旬起,我們就在自己的機器上執行這個循環。我讀到的大多數 AI Agent 遞迴式自我改進文章,都在談它將來可能做到什麼。這篇談的是我們的 Agent 到目前為止實際做了什麼。
這個循環如何運作
Sno Station 每天執行一次。步驟很簡單。
它收集 Claude Code 和 Codex 當天的工作階段。每場工作階段都會得到兩個簡短標記:值不值得保留,以及成功還是失敗。保留下來的工作階段會交給一個負責判斷的模型,尋找學到東西的時刻。通常是人糾正了 Agent;有時是 Agent 自己發現問題;有時則是環境讓它吃了苦頭。
每找到一個這樣的時刻,判斷模型就寫出一條分成四部分的心得:觸發它的情境、建議、原因,以及從工作階段逐字引用並標明來源行數的證據。
接下來,這條心得得通過兩道關卡。
第一道是機械檢查。心得引用的每句話,每個字元都必須與聲稱來自的工作階段一致。引用不存在,就捨棄這條心得。第二道由另一個模型把關,它唯一的工作就是質疑。它對照證據為心得的每句話評分;主張超過證據能支持的範圍,就過不了關。
最後由人來看。我讀完剩下的心得,決定留下或捨棄。
通過檢驗的心得,會在之後的工作階段開始時顯示給 Agent,每條一行,最有幫助的排在最上面。如果某條看起來相關,Agent 可以打開全文。
最後得到了什麼
以下數字來自我們建置機器上的循環紀錄。
它收集了 1,879 場工作階段,其中 290 場送去判斷。13 條心得通過兩道關卡。我留下了 6 條。另外 7 條還放在那裡,等我決定。
290 場工作階段,13 條心得。這個比例起初讓我很意外。後來我想:你自己的工作有多少天值得寫下來貼在牆上?多數日子就是普通日子。
心得本身也很小。說實話,我原本期待的是更宏大的東西。以下三條按 Agent 寫下的內容引用。
在 npm 工作區以 git mv 重新命名套件或目錄後、執行驗證前,明確檢查每個套件中被 git 忽略的建置輸出目錄(dist/、build/、out/),看看有沒有舊檔案。移動或刪除它們。
編寫補丁的每個修改區塊之前,讀取目標位置的確切行範圍,取得原樣的上下文。絕對不要沿用先前讀取同一檔案時,遭截斷內容中的識別字或語法。
在明確的契約或限定範圍的測試證實某項功能不存在之前,先將它標為「查閱的資料中未記載」。
第一條在發生那天耗掉了我們一整個下午。一個套件改了名,原始碼都正確,安裝卻一直失敗,因為舊的編譯檔還躺在一個 git 不會查看的資料夾裡。第二條則是 Agent 每週會做上四十次的事:它大致記得檔案寫了什麼,就憑記憶寫補丁,沒有對照檔案。
我最喜歡第三條。一個 Agent 比較產品時,沒在競爭對手的文件裡找到某項功能,就回報對方沒有這項功能。文件沒提到,不代表功能不存在。這也是我必須教人的道理。
這些是資深工程師不知不覺隨身帶著的經驗。吃過虧留下的痕跡。差別在於,Agent 每次開始工作階段時,身上一點這樣的痕跡都沒有。
它到底值多少
我還說不準這些心得到底有多大幫助。
這些心得曾在 5,595 場工作階段開始時顯示。Agent 完整打開一條心得的次數是 135,大約占 2%。所以,要不是單行版本已經發揮了大部分作用,就是什麼作用也沒有。我不總能分辨是哪一種。
這個循環也會檢查自己的結果。顯示心得之後,它會問 Agent 有沒有照做,以及照做是否有幫助。到目前為止,有兩次得到明確的「照做了,而且有幫助」,都是同一條心得。另外七次的結果不明確。
至於我終端機頂端那條關於執行測試的心得呢?它啟用後,Agent 有時還是會跳過測試:12 場工作階段中有 4 次。啟用前是 119 場中有 22 次。樣本太小,不能說情況變糟了。當然,更不能說情況變好了。
所以我現在還不知道。這是實話。如果今天非要我給它估個價,我會說,每條留下的心得能避免一次耗時十分鐘到一整個下午的錯誤;相同的六種錯誤又夠常出現,因此這些心得有意義。有一晚判斷 193 場工作階段,花了大約五十美分。就算我高估了它的價值,代價也不高。
我更相信的東西,比測量結果要樸素。我認得這些心得。讀到時我會想:對,這真的發生過;對,我也會這樣告訴 Agent。
哪裡出了問題
這個循環本身也需要接受它給 Agent 的那種檢查。
早期有個缺陷,讓心得草稿跳過第二道關卡,完全沒有接受檢查。我們把那些草稿全都丟掉了。上面的數字只計入走完全部流程的心得。
我們也把這個循環做得太謹慎了。金絲雀測試、雜湊檢查、當機復原。有一晚,我們刪掉其中 724 行這類程式碼,它反而執行得更順。一個用來從錯誤中學習的系統,被一層防護包住,防的卻是它從未犯過的錯。
接著在九月底,這個循環沒了動靜。一個設定檔不見了;它每晚醒來,發現沒有任何獲准傳送的內容,就又睡了回去。這樣過了一週才有人發現。一個在凌晨三點默默失敗的東西,很難讓人喜歡。
這件事現在也列在清單上了。或許它該變成一條心得。
接下來呢
十三條心得不等於 Agent 重寫了自己。它只是一本筆記。一個月前,我們的 Agent 週二會犯和週一一樣的錯,卻完全不記得任何一次。
有些早晨,提醒明明就在那裡,測試還是沒執行。
Sno Station 是開源軟體,每晚覆盤也是其中一部分。專案在 sno.ai。
Written by Sno AI Team
Contributing writer at Sno.ai, sharing insights about AI, productivity, and knowledge management.
Related Articles
Comments
Comments coming soon. Configure Giscus at giscus.app


