AI 編程代理的遞迴自我改進:哪些是真的,哪些還是理論,以及我們實際交付了什麼
遞迴自我改進,是指一個人工智慧系統改進自己「改進自己」的能力。這篇文章講清楚理論到底說了什麼,為什麼模型層面的迴圈至今仍是理論,以及我們如何為編程代理做出指令層面的版本,並讓人守在閘門前。
遞迴自我改進,是指一個人工智慧系統能夠改進自己「改進自己」的能力。不只是把某項任務做得更好,而是把讓它變好的那個過程本身做得更好,於是每一輪改進都讓下一輪更快。它是你讀過的每一個「智慧爆炸」論證背後的引擎;同時,它也以一種小得多、實際得多的形式存在,你今天下午就能在自己的編程代理上跑起來。
這篇文章兩部分都講。前半部把遞迴自我改進講清楚,因為大多數解釋要不就吹過頭,要不就一揮手打發掉。後半部講我們這週在 Coograph 交付了什麼:一套會衡量自身失敗、並提出自身修復方案的編程代理護欄,每一處改動都由人來核可。我們叫它 Retro。它不是模型意義上的遞迴自我改進,我們會把這個差別說得很精確。
遞迴自我改進到底是什麼意思
1965 年的原始論證
數學家 I. J. Good 寫下了那句人人引用的話:「一台超智慧機器可以設計出更好的機器;屆時毫無疑問會出現一次智慧爆炸,人類的智慧將被遠遠甩在後面。」他還補充,第一台超智慧機器是「人類需要做出的最後一項發明」。
論證有三步。第一,人工智慧研究本身就是一項智力任務。第二,一個在這項任務上夠好的系統,能造出更好的系統。第三,更好的系統在這項任務上更好,於是它能更快地造出更好的下一代。迴圈自我供能。「遞迴」一詞指的就是這個結構:一輪的輸出是下一輪的輸入,而被改進的東西正是做改進的東西。
為什麼模型層面的迴圈仍然是理論
如果這個論證是完整的,我們早就活在爆炸裡了。我們沒有,而且原因是具體的,不是哲學的。
算力是瓶頸。一個更聰明的訓練方法點子,仍然需要成千上萬塊加速器和數週的真實時間去驗證。智慧不會縮短一次訓練的時間。
實驗是瓶頸。你無法靠推理得出基準測試結果,你必須真的跑實驗。迴圈的每一輪都在等實證回饋,而回饋以硬體的速度抵達,不是以思考的速度。
驗證是瓶頸。一個系統很難在不建構並評估繼任者的情況下證明它更好,而這又把你送回上面兩個瓶頸。
報酬遞減是真實存在的。容易的改進先被吃掉。之後每一輪都得找更難的東西,於是「越來越快」的故事得和一個「越來越難」的趨勢對抗,而後者沒人提前量化過。
截至 2026 年,大型語言模型確實在寫訓練程式碼、生成合成資料、評估其他模型、自動化研究管線的一部分。前沿實驗室用自己的模型來加速自己的研究。局部的迴圈是存在的。一個系統在過程中完全沒有人參與就改進自己的閉環,尚未被展示出來。它能否做到是一個開放的實證問題,任何滿懷信心告訴你答案的人都是在猜。
為什麼它對安全依然重要
如果這個迴圈有一天閉合並且跑得很快,對齊必須在它啟動之前就做對。爆炸中途沒有第二次機會去修正一個系統的目標。這就是為什麼像 Anthropic 這樣的組織在迴圈仍然是局部的時候就嚴肅看待這個問題。這也是為什麼「遞迴自我改進」這個詞值得尊重,而不是拿來當行銷用語。這就把我們帶到了我們真正做出來的東西。
同一個迴圈,往下一層
每一個編程代理都跑在兩樣東西上:一個模型,和一堆指令。模型是固定的,你沒辦法從終端機重新訓練它。指令是你的:一份 CLAUDE.md,一份 AGENTS.md,一組 hook,幾個技能。那一層是你能控制的全部行為所在,而那一層有它自己的改進迴圈。今天,沒人把它閉合。
沒人閉合的迴圈
今天,一條規則是這樣進入指令檔案的。代理做錯了什麼。某個人碰巧注意到了。這個人加了一條規則,通常是既有規則的更大聲版本。檔案變長了。沒人衡量新規則是否在下一次工作階段裡改變了什麼。
我們可以用自己的儲存庫給你看這件事。Coograph 的 CLAUDE.md 開頭就是一條大寫字母的規則:在任何 grep 之前先用程式碼圖。在 2026 年 9 月的一份對話紀錄裡,代理在碰到程式碼圖之前跑了五次 grep,總共九次,而當它終於碰到程式碼圖時,走的是一段 Python 腳本,而不是規則點名的那些工具。規則就在檔案第三行。沒人知道,因為沒人讀對話紀錄。
那份檔案裡每一句「這不算例外」或「圖方便不是正當理由」,都是早先某次事故留下的疤。每一句都讓檔案變長,讓之後每一次工作階段都多花 token,而違規照舊。
把它閉合
遞迴自我改進的結構是:在版本 N 下執行,衡量,產出版本 N+1,重複,並讓這個過程改進它自己的流程。套到指令層上,這件事變得具體而便宜。
工作階段在規則集 N 下執行。一個 hook 記錄每一次規則被打破,以及那次工作階段花了多少。一個分析器把記錄變成報告。一個技能把報告變成規則集 N+1 的提案,包括對它自己的偵測器和對它自身的修改。一個人逐行核可或駁回。下一輪衡量這次改動有沒有讓數字動起來。
這就是 Retro。同樣的遞迴,不同的載體,回路上多了一個人。
Retro 記錄什麼
原料早就存在。Claude Code 把每一次工作階段寫到磁碟上,作為一份對話紀錄:每一次工具呼叫、它的輸入、順序、結果、每則訊息的 token 用量。Coograph 既有的 hook 在代理編輯核可範圍之外的檔案、或碰到生成檔案時本來就會觸發;它們只是印出一條警告然後忘掉。我們加了一個 SessionEnd hook 來解析對話紀錄,讓既有的 hook 在觸發時寫下一筆記錄,並給整件事定了一條關於記錄可以包含什麼的嚴格規則。
一筆訊號記錄包含規則 id、是哪個偵測器觸發的、該偵測器是確定性的還是啟發式的,以及一個由計數、工具名、儲存庫相對路徑和 shell 命令雜湊組成的證據物件。它永遠不包含提示文字、助理文字、工具輸出、檔案內容或完整命令。這不是一條政策,而是程式碼裡的一份允許清單;還有一個測試會在一份合成對話紀錄的每個部分埋下標記字串,只要標記進了訊號檔案就失敗。什麼都不會上傳到任何地方。檔案就在你的專案裡,被 git 忽略。
有七件事會被偵測:在程式碼圖之前 grep、沒有核可變更的多檔案編輯、核可變更之外的編輯、對生成檔案的手工編輯、同一條建置命令連續失敗三次、安裝了新依賴、以及一則看起來像糾正的使用者訊息。其中後兩項(多檔案的猜測和糾正的猜測)被標為啟發式,永遠不能作為一處改動的唯一證據。每次工作階段還會得到一筆摘要記錄,包含工具計數和 token 總量,按訊息去重,因為對話紀錄在每個內容區塊上都重複了用量。
Retro 提出什麼
分析器是純 Python,裡面沒有模型。它讀取訊號、規則登錄檔和已封存的變更,寫出一份報告:每條規則對照它的閾值,附一欄「升級到」;違規聚集的目錄;建置重試;每次工作階段的 token,以最近一次規則改動為界做前後拆分;有多少編輯工作階段同時跑了審查;以及指令檔案相對預算已經長到多大。
技能讀取那份報告,用 Coograph 專案裡其他所有變更同樣的格式寫出一份提案。允許五種改動:當證據顯示歧義時改寫一條規則,為沒有任何規則涵蓋的模式新增一條規則,為違規聚集的目錄新增一份帶作用域的指令檔案,新增一個 hook,或者刪掉一條十次工作階段裡沒人碰過的規則。
每一處提出的改動都以三句白話開頭。發生了什麼。為什麼重要。改什麼。然後是一個證據區塊,裡面的數字只來自報告。如果一個數字不在報告裡,它就不在提案裡。
迴圈的規則
這個迴圈有約束,因為一個不受約束地改寫自己規則的迴圈,正是你一開始想擺脫的臃腫的來源。
一條仍在被違反的文字規則會被升級為 hook。它永遠不會被改寫得更大聲。我們自己儲存庫的資料說,更大聲沒用;而一個趕時間的代理跳不過 hook。
啟發式訊號永遠不是唯一證據。對使用者情緒的猜測不會改變一條規則。
超出 token 預算後,每新增一條規則必須配對刪掉一條。指令集不能只因為迴圈發現了新東西就無限增長。
Retro 可以對它自己的技能、偵測器和 hook 提出修改。這就是遞迴的部分。它不能改自己的閾值,也不能停用某個偵測器,除非提案裡帶著一條明確說明這一點的任務,因為一個能悄悄降低自己標準的迴圈,一定會這麼做。
什麼都不會自動套用。提案是一份 OpenSpec。你核可它、駁回它、或者劃掉其中幾行,和對待一個功能完全一樣。
第一天,不是第二十天
對任何衡量工具的常見反對意見是,你得累積幾週資料它才說得出東西。不用。Claude Code 一直在保存你的對話紀錄,放在一個以專案路徑命名的目錄下。初始化時會問你要不要讀它們,於是第一份報告在安裝結束前就裝著你真實的工作階段。從沒開過 Retro、但已經封存了十個以上變更的專案,可以用一條命令引導啟動;工作階段開始時的那一行會告訴他們。
那一行也是你得知有東西可看的方式。Coograph 專案裡每一次 Claude Code 工作階段本來就會在頂部印出程式碼圖狀態。現在多印一行,形如:已擷取十二次工作階段,三條規則超過閾值,執行 retro。沒人需要記住某個步驟,也沒人需要以「正確的方式」收尾一次變更,迴圈才會注意到。
這不是什麼
Retro 不訓練任何東西。沒有權重會改變。它不是 I. J. Good 所指的那種遞迴自我改進,我們也不會在銷售簡報裡那樣描述它。它是同一個迴圈的指令層版本:系統觀察自身的失敗,並對自身的鷹架提出修改,包括鷹架裡負責觀察的那部分。
兩個誠實的警告。擷取只在 Claude Code 裡有效,因為它是唯一同時暴露對話紀錄和生命週期 hook 的編程代理;Coograph 支援的另外七個工具能拿到分析器和技能,但拿不到記錄。而這個迴圈能否在多輪之後持續找到改進,還沒有被證明。我們的預期與上面的理論一致,是報酬遞減:第一次 retro 找到大部分價值,之後的越來越少。我們把衡量這件事的機制造了出來,所以幾個月後我們會知道,而不是猜。
試一試
Retro 隨 Coograph 1.1.0 發布,在 Claude 外掛裡,在初始化器裡,也在讓已註冊專案保持最新的同步腳本裡。偵測器參考、登錄檔格式、閾值和測試都記錄在儲存庫裡。Retro 的文件頁會帶你走一遍工作階段開始那一行、報告、提案格式和各工具的支援表。
如果你已經在用 Coograph,拉一下程式碼,你的下一次工作階段就會告訴你有沒有值得做一次 retro 的東西。如果還沒有,初始化器會就此問你一個問題,然後讀取你已經擁有的那些對話紀錄。
關於遞迴自我改進,有意思的問題從來不是這個迴圈是否可能。它的窄版本顯然可能。問題是你讓它改什麼,你怎樣衡量改動有沒有幫助,以及誰有權說「可以」。我們選了指令、token 成本和違規計數,以及你。
削減你的 AI 編程帳單 67–78%。Coograph 採用 MIT 授權、永久免費。Pro 提供客製服務。