網易首頁 > 網易號 > 正文 申請入駐

廈門大學團隊如何讓AI程序員又聰明又不"忘事"?

0
分享至


這項由廈門大學多媒體可信感知與高效計算教育部重點實驗室聯合微軟研究人員開展的研究,以預印本形式發布于2026年4月,論文編號為arXiv:2604.11716,有興趣深入了解的讀者可以通過該編號查詢完整論文。

**一個程序員AI的煩惱**

假設你是一位公司里的高級程序員,每天要幫同事修復代碼錯誤。你的工作方式是這樣的:同事發來一個問題,你打開代碼庫,翻閱相關文件,思考哪里出了問題,然后動手修改。整個過程可能要來回操作幾十次,查看文件、運行測試、分析報錯信息、再修改……

現在,AI也被訓練來做這種事了。這類任務在學術界被稱為"軟件工程任務"(SWE任務),簡單說就是讓AI自動找到真實代碼倉庫里的Bug并把它修好。這聽起來很酷,但背后有一個長期被忽視的麻煩——AI在做這件事的時候,到底該怎么"思考"?

廈門大學的研究團隊發現,現有的AI程序員普遍存在兩種極端問題,任何一種都會讓它的表現大打折扣。這項研究提出的解決方案叫做**SWE-AGILE**,它的核心是一套被稱為"動態推理上下文"的工作機制,像給AI裝上了一套高效的記憶管理系統。

**一、AI程序員面臨的兩難困境:要么淺嘗輒止,要么撐爆記憶**

要理解SWE-AGILE解決了什么問題,得先理解AI在多輪工作時的"記憶"是怎么運作的。

你可以把AI的"上下文窗口"理解成一張有限大小的工作桌。AI每次思考,都要把相關的內容——歷史操作記錄、代碼片段、工具返回的信息、自己之前寫下的分析——全部攤開放在這張桌子上,才能做出下一步判斷。桌子的面積是有限的,放的東西越多,找到有用信息的難度就越大,甚至會出現"明明放在桌上,卻怎么也找不到"的情況。

現有的AI程序員大致分成兩派來應對這個問題。第一派是"淺思考派",代表是SWE-Dev、SWE-smith這類系統。它們每走一步只寫下簡短的"想法備注",就像一個只會說"我要查這個文件"然后就去查的助手,思考過程非常淺。好處是桌面不會變亂,但壞處同樣明顯:遇到真正復雜的問題,比如一個隱藏在多個文件交互邏輯中的Bug,淺薄的思考根本不夠用,很容易走彎路或做錯判斷。

第二派是"深思考派",也就是近年大熱的推理模型,比如OpenAI o1、DeepSeek-R1。這類模型會在每一步都寫下大量詳細的分析過程——這種方式叫做"鏈式思維"(Chain-of-Thought,CoT)。研究人員發現,越長、越詳細的思考過程往往對應越準確的答案。但把這種方式用到需要幾十輪操作的程序修復任務上,就會遇到一個災難性的問題:每走一步,桌子上就要多擺一大堆思考記錄,很快桌面就會被塞滿。

桌面塞滿之后會發生什么?一方面,AI處理這么長的內容需要消耗巨量的計算資源,訓練速度會急劇下降;另一方面,更致命的是一個被研究人員稱為"迷失在中間"(Lost-in-the-Middle)的現象——當桌上堆滿了東西,AI反而無法準確找到它需要的信息,就像在一張塞滿文件的亂桌子上找一張便利貼,反而比整潔的桌子更難找。

還有第三種做法:允許AI深度思考,但思考完之后立刻把思考記錄丟掉,只保留最終的操作指令。這樣桌面確實保持整潔了,但代價是每走新的一步,AI都得從頭把整個情況重新想一遍——就像一個每次開會都要從零開始熟悉項目背景的工程師,極其低效。

研究團隊用實驗驗證了這個困境的真實性。在基礎測試中,保留完整推理歷史("深思考全留"方案)的成功率只有12.42%,而把推理歷史全丟、每步只保留最新思考("當前步驟思考"方案)的成功率反而達到了15.83%。這個反直覺的結果清楚地說明:"更多信息"如果沒有被妥善管理,反而是負擔。

**二、SWE-AGILE的解法:給AI裝一套"滑動記憶窗口"**

SWE-AGILE的核心思想,可以用一位經驗豐富的偵探處理案件檔案的方式來理解。

偵探每天都在調查新線索、翻閱文件、走訪證人。他的工作臺面積有限,不可能把所有卷宗都攤開。他的做法是:最近幾天的調查筆記完整保留在桌面,隨時可以翻看;更早的筆記則被整理成一份簡明摘要——"第三天:走訪了嫌疑人A,確認了其不在場證明,排除嫌疑"——只保留關鍵結論,不保留完整思考過程。這樣,偵探既能回顧最近的調查細節,保持思路連貫,又不會被遠古卷宗淹沒。

SWE-AGILE就是這樣運作的。每一個工作步驟,AI都被要求生成三個嚴格有序的部分:首先是詳細的推理過程(用``標簽包裹),這是AI真正"動腦筋"的地方;其次是一份對這次推理的壓縮摘要,叫做"推理摘要"(Reasoning Digest);最后才是實際的工具調用操作,比如"查看這個文件的第50到80行"。

關鍵在于這三個部分如何進入"歷史記錄"。推理摘要和操作記錄會被永久保存;而詳細的推理過程,只有最近N步(N是一個隨機設置在2到5之間的數)的完整內容會留著,更早的詳細推理會被其對應的摘要替代,從歷史上"消失"。這個N步的范圍就是"滑動推理窗口",它保證AI在做下一步決策時,既能看到最近幾步自己完整的思考脈絡,又不會被幾十步之前的冗長分析淹沒。

這個設計產生了一種被研究團隊形象地稱為"鋸齒形"的上下文增長模式。在窗口內,每步都有完整的深度推理,上下文快速增長;當某步的推理滑出窗口范圍,它就被壓縮成摘要,上下文隨之收縮——增長與壓縮交替出現,形成像心電圖一樣的鋸齒形曲線,而不是像"全留方案"那樣一路直線飆升直到撐爆。

**三、訓練的難題:如何讓AI真正學會"按規則記憶"**

設計出這套記憶管理機制只是第一步,更難的問題是:怎么訓練AI去真正掌握這套規則?

通常訓練AI的方式,是把它做過的所有操作記錄排成一條長序列,讓AI從頭到尾學習。但這種訓練方式和SWE-AGILE的實際工作方式之間存在一個根本矛盾:訓練時AI能看到所有歷史推理細節,但工作時窗口外的推理細節已經被替換成摘要,根本不存在了。用這種方式訓練出來的AI,就像一個人在考試時能查書,但實際工作時卻沒有書——它學到的是一種在現實中不存在的條件下的行為。

為了解決這個矛盾,研究團隊發明了"軌跡快照訓練"(Trajectory Snapshot Training)。做法是把一條完整的工作軌跡拆分成若干"快照",每個快照代表AI在某個特定步驟時的視角——在那個視角下,窗口外的歷史推理已經被替換成摘要。每個快照就是一個獨立的訓練樣本,AI要學的只是"在這個視角下,如何生成正確的推理、摘要和操作"。

具體來說,每個快照由兩部分組成。一部分是"凍結的背景"(計算損失時被屏蔽),它完整模擬了推理時的動態上下文狀態,包含窗口內的完整歷史推理和窗口外被壓縮成摘要的歷史;另一部分是"主動學習目標",也就是AI在當前步驟需要生成的完整三件套:詳細推理、推理摘要、操作指令。這樣,每一條完整軌跡被拆成T個快照,每個快照都精確還原了AI在那個時刻應該"看到什么"和"生成什么",訓練與推理之間的鴻溝就被填平了。

**四、讓AI學會"深度思考":反填數據合成流水線**

訓練這套系統還面臨另一個現實困難:現有的成功軌跡數據,比如開源數據集SWE-Dev里的記錄,里面的"思考過程"都非常淺薄——大多數只是簡單的一句話說明意圖,完全沒有SWE-AGILE所需要的那種深度分析。拿這種淺薄的數據去訓練,不僅無法教會AI深度推理,實驗還證明這反而會損害AI的能力(成功率從基礎的15.83%掉到了14.83%)。

為了解決這個數據問題,研究團隊設計了一套"事后反填"(Hindsight Backfill)數據合成流水線。這個方法的靈感來自于一個很有趣的思路:如果你已經知道了答案,回過頭來"解釋為什么這個答案是對的",要比從零開始推導容易得多,而且質量更高。

具體操作是這樣的:拿一條原始的淺薄成功軌跡,在每個步驟上,用一個能力強大的推理模型(研究團隊使用了Qwen3-235B)來"補寫"詳細推理和推理摘要。補寫時,這個強大模型會拿到三樣東西作為參考:第一是那個步驟對應的正確操作(也就是"答案"),確保補寫出來的推理必然朝著正確結論走;第二是原始軌跡中那一步的淺薄想法,作為"語義提示",確保新推理和原始意圖保持一致;第三是模擬了動態上下文約束的歷史信息,也就是窗口外的部分已經被替換成摘要——這保證了合成的推理不僅格式正確,而且與運行時的實際條件完全匹配。

最終,每個步驟的淺薄記錄就被"升級"成了包含詳細推理和摘要的完整三元組,而不用從零收集新軌跡。這種方式在數據效率上極具優勢——研究團隊僅用了2200條軌跡(來自SWE-Dev原始19300條中的精選高質量子集),就完成了冷啟動階段的訓練,省去了大量從零探索的環境執行開銷。

另外,研究團隊還補充收集了200條通過拒絕采樣得到的新軌跡,這些軌跡從一開始就按照SWE-AGILE的完整格式生成,用來進一步減少后續強化學習階段的分布偏移。

**五、強化學習階段:用"壓縮獎勵"讓AI學會精練表達**

完成了監督微調之后,研究團隊還引入了強化學習階段進一步優化,算法采用的是DAPO(一種開源的大規模強化學習框架)。

強化學習的核心是設計一個好的"獎勵函數"——也就是告訴AI什么是好的表現、什么是差的表現。這里研究團隊設計了一個聰明的獎勵函數,它同時考慮了兩件事:任務有沒有成功,以及上下文壓縮得怎么樣。

壓縮率的計算方式很直觀:假設所有推理細節都完整保留在歷史里,總共需要占用L_full個token;而在SWE-AGILE實際機制下,窗口外的推理已經被摘要替代,實際占用的是L_hybrid個token。壓縮率R_comp就等于1減去(L_hybrid除以L_full),代表節省了多少比例的上下文空間。

最終的獎勵函數是:如果任務成功(I_success=1),則獎勵等于1加上β乘以min(R_comp, γ);如果任務失敗(I_success=0),則獎勵為零。這個設計有幾個精妙之處值得細說。

獎勵里用了"乘法門控":只有任務成功了,壓縮獎勵才會被加上去。這防止了AI為了追求壓縮分數而犧牲正確率——如果AI把推理寫得極短,摘要也超級簡潔,但任務失敗了,它什么獎勵都得不到。

同時,獎勵里對壓縮率設了一個上限γ(設定值為0.55):如果壓縮率已經達到了55%,繼續提升就不會再帶來更多獎勵了。這防止了另一種作弊方式——AI可能會故意把推理寫得極長,這樣即使摘要也很長,"壓縮率"看起來還是很高(分母變大了),但實際上并沒有節省上下文。設了上限之后,這種"膨脹分母"的把戲就沒有意義了。

研究團隊還特別解釋了為什么使用"全局軌跡壓縮率"而不是"每步壓縮率的平均值"。原因在于,有些步驟(比如"按計劃執行剛才決定的腳本")本來就是簡單的例行操作,推理本身就很短,摘要和推理差不多長,本地壓縮率近乎零。如果用每步壓縮率,AI會被激勵在這些簡單步驟上"水推理"以提高分母,這是沒有意義的。而全局壓縮率天然對這類簡單步驟的貢獻不敏感,把優化重心集中在了那些推理又長、又確實可以大幅壓縮的"深度思考步驟"上,引導AI在復雜問題上充分展開、在簡單操作上精練表達。

**六、實驗結果:數字背后的真實意義**

研究團隊在SWE-Bench Verified基準測試上評估了SWE-AGILE,這個基準包含500個來自12個真實GitHub代碼倉庫的軟件問題。

從結果來看,僅經過監督微調的SWE-AGILE(SFT版本)使用Qwen3-8B模型,在只有2200條訓練軌跡的情況下,成功率達到了21.45%。這個數字有幾個值得關注的維度:相比基礎的Qwen3-8B模型(15.83%),這是35.5%的相對提升;而同樣規模的7B/8B級別競爭對手中,R2EGym用了3300條軌跡達到19%,SWE-Dev用了19300條軌跡達到23.4%——SWE-AGILE用少得多的數據超過了前者,并接近了后者。

加入強化學習階段后,SWE-AGILE(SFT+RL)的成功率進一步提升到24.05%,超過了所有同等規模的基線。更值得一提的是,這個8B模型的成績甚至超過了基于14B參數模型的SkyRL-Agent-v0(21.6%)。在可擴展性驗證上,將SWE-AGILE的SFT流水線應用于Qwen3-14B,成功率躍升至30.06%,大幅領先現有14B基線。SWE-Bench Lite上,SWE-AGILE-8B的成功率為14.77%,同樣超過了SWE-smith-7B(11.7%)和R2EGym(11.0%)。

研究團隊還仔細分析了模型的"每步平均推理長度"。實驗發現,"當前步驟思考"的基線方法平均每步需要約1075個token的推理,因為每步都要從頭重建狀態;SWE-AGILE(SFT+RL完整版)的平均每步推理降低到了約819.6個token,減少了約28%。這驗證了推理摘要和滑動窗口確實起到了"認知緩存"的作用——AI不再需要每次都從原始觀察重新推導,而是能從摘要中快速獲取歷史狀態,把推理資源集中在真正需要的新問題上。

在壓縮獎勵的效果驗證上,對比有無壓縮獎勵的RL版本可以發現,加入壓縮獎勵后,推理摘要(dt)的平均長度從41個token降低到了27.3個token,減少了33.4%,而任務成功率幾乎沒有變化(23.45%對比24.05%)。每步節省13.7個token看起來不多,但考慮到一條軌跡平均有二十多步,并且未來還可以將這一機制擴展到壓縮工具輸出(工具執行結果往往占據大量上下文),節省效果會顯著放大。

**七、與同類方法的區別:為什么不用現成的壓縮技術?**

有人可能會問:現在不是已經有很多"壓縮推理"的技術了嗎?比如LightThinker、InftyThink,為什么還要專門設計SWE-AGILE?

這是一個好問題,研究團隊在論文中也給出了解釋。LightThinker和InftyThink等技術解決的是"單輪內的推理壓縮"問題——就是如何在一次對話中,把過于冗長的內部思考過程壓縮得更短。但SWE-AGILE面對的是另一個維度的挑戰:如何在幾十輪來回交互的過程中,保持認知連貫性的同時不讓歷史積累的推理拖垮整個系統。這兩個問題本質上是正交的(互不干擾的),SWE-AGILE實際上可以和這些單輪壓縮技術疊加使用,潛力更大。

與LangChain的對話摘要緩存(ConversationSummaryBufferMemory)和MemGPT的工作上下文相比,SWE-AGILE也有兩點關鍵區別。前者是對整體對話歷史做增量摘要,生成一個不斷生長的摘要段落;后者是維護一塊固定大小的非結構化文本塊。而SWE-AGILE的壓縮目標是"推理過程"本身而非通用的交互內容,而且每步生成一個獨立的結構化摘要條目,而非滾動更新一個大摘要——這種結構化的方式更符合大語言模型的預訓練行為模式,也降低了摘要之間層層傳遞可能帶來的錯誤累積風險。

**八、未來的方向與局限**

研究團隊在論文末尾坦誠地指出了當前版本的局限。滑動窗口的大小N在整個流程中都被設定為2到5之間的隨機整數,這種設定雖然證明了系統的魯棒性(它能適應不同窗口大小),但關于"最優窗口大小是多少"以及"窗口大小是否應該根據任務復雜度動態調整",目前還沒有系統性分析。

此外,論文提到了一個很有前景的未來方向:當前的機制能隱式地減少冗余狀態重建(推理變短了),但還沒有辦法顯式地檢測和懲罰冗余推理。未來可以通過計算相鄰步驟推理的語義相似度,或者用"AI評判者"來識別重復分析,進而直接過濾掉冗余的SFT軌跡,或者設計專門針對重復分析的RL懲罰項,把認知效率優化推向一個新的邊界。

歸根結底,SWE-AGILE解決的是一個在AI走向實用化過程中繞不開的基礎問題:當一個AI系統需要在復雜的現實任務中持續工作幾十輪,它的記憶該如何管理,思考該如何保持深度而不失控。廈門大學的這項研究給出了一個結構清晰、實驗扎實的答案:不是"全記",也不是"全忘",而是用一個精心設計的滑動窗口,讓近期的深度思考完整保留,讓遠期的歷史思考凝練成摘要——這樣的AI才能既聰明又持久。對于人工智能走向更復雜、更長程的實際任務場景,這或許是一個值得深入探索的方向。你可能會好奇:隨著這類技術不斷進步,有一天AI程序員會不會真的能獨立處理一個完整軟件項目的全部Bug,而不僅僅是一個孤立問題?這個問題,也許在不久之后就會有答案。希望追蹤這一方向的讀者可以通過arXiv:2604.11716查閱原論文。

Q&A

Q1:SWE-AGILE中的"推理摘要"和普通的對話摘要有什么不同?

A:普通對話摘要(比如LangChain的方案)是把所有歷史對話內容滾動壓縮成一段越來越長的摘要段落,壓縮對象是通用交互內容。SWE-AGILE的推理摘要專門針對AI的"思考過程"本身,而不是操作記錄。而且每一步獨立生成一個結構化的摘要條目,不會層層疊加,降低了錯誤累積的風險,也更符合大語言模型的處理習慣。

Q2:軌跡快照訓練為什么有必要,直接用普通訓練方式不行嗎?

A:不行。普通訓練會把整條軌跡作為一個連續序列,讓AI學習時能看到所有歷史推理細節。但SWE-AGILE在實際運行時,窗口外的推理細節已經被摘要替換掉了。用普通方式訓練出來的AI,學到的是一種"訓練時能看到、運行時看不到"的條件下的行為,會造成訓練和推理之間的根本錯位,軌跡快照訓練正是為了消除這個錯位。

Q3:反填數據合成為什么要提供"正確操作"給推理合成模型?

A:這是"事后反填"(Hindsight Backfill)的核心思路。知道答案之后再"補寫推理過程",能確保合成的推理必然指向正確結論,質量更高、格式更可控。如果不提供答案,推理模型只能從當前狀態自由生成,可能得出錯誤結論,甚至和實際執行的操作相互矛盾,這樣的數據反而會誤導訓練。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
阿斯:國際足聯傾向于在馬德里舉辦2030年世界杯決賽

阿斯:國際足聯傾向于在馬德里舉辦2030年世界杯決賽

懂球帝
2026-04-21 09:50:56
澤連斯基怒批特朗普:烏克蘭之所以打不贏俄羅斯,全是你幫倒忙

澤連斯基怒批特朗普:烏克蘭之所以打不贏俄羅斯,全是你幫倒忙

流年恰似繁花汐
2026-04-21 18:00:40
吉姆·法利叫囂:美貿易保護丑態畢露

吉姆·法利叫囂:美貿易保護丑態畢露

烽火瞭望者
2026-04-21 19:22:28
身家一年暴漲560億元成“惠州首富” 勝宏科技創始人陳濤:加速擴充高端產能

身家一年暴漲560億元成“惠州首富” 勝宏科技創始人陳濤:加速擴充高端產能

每日經濟新聞
2026-04-21 11:13:18
伊朗議會要員:外交語言無效時將選擇繼續戰事

伊朗議會要員:外交語言無效時將選擇繼續戰事

新華社
2026-04-21 22:36:01
王立群教授:用權力泡女人,女人在你面前服服帖帖,用金錢泡女人,女人是滿臉不服氣,甚至討價還價...

王立群教授:用權力泡女人,女人在你面前服服帖帖,用金錢泡女人,女人是滿臉不服氣,甚至討價還價...

深度知局
2026-04-08 07:41:14
喜歡肌膚白皙無瑕,自帶柔光的樣子

喜歡肌膚白皙無瑕,自帶柔光的樣子

飛娛日記
2026-04-14 07:47:36
當年為什么查辦褚時健?

當年為什么查辦褚時健?

百曉生談歷史
2025-08-20 21:55:53
特朗普訪華行程推進中,團隊擬加入新成員,中方再拋售美債!

特朗普訪華行程推進中,團隊擬加入新成員,中方再拋售美債!

近史博覽
2026-04-22 01:10:38
時長超過蘇德戰爭,俄羅斯該點到為止了

時長超過蘇德戰爭,俄羅斯該點到為止了

新車知多少
2026-04-21 18:28:58
今年,科創板「最大IPO」誕生!

今年,科創板「最大IPO」誕生!

芯榜
2026-04-21 20:46:18
茅臺不行了,貴州靠什么?

茅臺不行了,貴州靠什么?

BT財經
2026-04-21 22:25:03
一周最少8次,54歲女子肛裂住院,丈夫哭訴:怎么勸她就是不聽!

一周最少8次,54歲女子肛裂住院,丈夫哭訴:怎么勸她就是不聽!

健康之光
2026-04-13 09:01:59
令英國痛苦的“入侵花”,在中國淪為咸菜,吃到人工種植成笑談

令英國痛苦的“入侵花”,在中國淪為咸菜,吃到人工種植成笑談

真的好愛你
2026-04-21 12:37:54
能得分能組織還能防守,森林狼完全應該給后場新援多一些信任?

能得分能組織還能防守,森林狼完全應該給后場新援多一些信任?

稻谷與小麥
2026-04-21 23:00:24
美容院老板娘大實話:脫了衣服,女人的差距根本不在臉上!

美容院老板娘大實話:脫了衣服,女人的差距根本不在臉上!

夜深愛雜談
2026-03-08 21:28:24
賴清德,恐成為新中國歷史上,唯一在任上出事的臺灣地區領導人

賴清德,恐成為新中國歷史上,唯一在任上出事的臺灣地區領導人

真正能保護你的
2026-04-05 00:55:35
女兒用父親公司賬戶1700萬元打賞主播、拆卡,已前往當地派出所自首 能否以“職務侵占”立案仍需調查

女兒用父親公司賬戶1700萬元打賞主播、拆卡,已前往當地派出所自首 能否以“職務侵占”立案仍需調查

紅星新聞
2026-04-21 12:54:20
收拾完伊朗,下一個輪到中國?以色列發戰爭威脅,中方送出5個字

收拾完伊朗,下一個輪到中國?以色列發戰爭威脅,中方送出5個字

千羽解讀
2026-04-18 10:12:15
定了!中國隊進“死亡之組”!

定了!中國隊進“死亡之組”!

五星體育
2026-04-22 01:19:29
2026-04-22 04:47:00
科技行者 incentive-icons
科技行者
科技正在如何變革商業世界
8088文章數 562關注度
往期回顧 全部

科技要聞

創造4萬億帝國、訪華20次,庫克留下了什么

頭條要聞

三國取消飛航許可 賴清德無法竄訪斯威士蘭

頭條要聞

三國取消飛航許可 賴清德無法竄訪斯威士蘭

體育要聞

一到NBA季后賽,四屆DPOY就成了主角

娛樂要聞

宋承炫曬寶寶B超照,宣布老婆懷孕

財經要聞

現實是最大的荒誕:千億平臺的沖突始末

汽車要聞

全新坦克700正式上市 售價42.8萬-50.8萬元

態度原創

時尚
親子
健康
藝術
軍事航空

頂流復工,已判若兩人

親子要聞

為什么幼兒園里,很多小朋友會做不好的事?

干細胞抗衰4大誤區,90%的人都中招

藝術要聞

任伯年寫竹,真帶勁

軍事要聞

特朗普公開對伊開戰真正原因

無障礙瀏覽 進入關懷版