![]()
本文的通訊作者是北京大學計算機學院金芝教授和李戈教授。第一作者為課題組博士生張克馳,本科畢業于北京大學信息科學技術學院,研究方向為代碼智能體和代碼大模型。他曾以第一作者在自然語言處理、軟件工程等領域的國際會議上發表多篇論文,其代表工作 CodeAgent 發表于 ACL2024,是較早提出代碼智能體概念并開展系統研究的工作。一作論文先后獲得 2023 年 ACM 杰出論文獎(ACM SIGSOFT Distinguished Paper Award in ICPC)和 2026 年 ACM 杰出論文獎(ACM SIGSOFT Distinguished Paper Award in ICSE)。
在代碼大模型和代碼智能體技術快速發展的今天,一個日益凸顯的現象是:能夠在經典代碼生成基準上取得優異成績的模型,一旦被放入真實軟件工程環境中,表現卻往往大幅下滑。
這種落差的根源在于,真實軟件工程并不是一道孤立的編程題,而是一個長時程、強上下文持續交互、反復驗證與修正的復雜過程。
模型不僅要會寫代碼,還要能夠正確理解需求、在倉庫中定位文件、在合適時機調用工具、解釋測試反饋、修正先前錯誤,并在必要時及時停止。
這意味著,在評測基準上表現出色的代碼模型,其評價體系與訓練模式通常更側重于單一任務的代碼生成,并不天然適用于現實世界中復雜的軟件工程任務。
圍繞這一問題,北京大學金芝教授和李戈教授團隊提出了一套軟件工程智能體對齊框架 SEAlign,通過對智能體軌跡中的關鍵決策點進行識別與對齊,顯著提升模型在真實工程任務中的表現。實驗證明,經過 SEAlign 優化后的 14B 參數開源模型,在SWE-bench等真實場景中表現出明顯領先同體量模型、甚至媲美頂級閉源模型的能力。相關成果發表于軟件工程頂會 ICSE 2026,并榮獲 ACM SIGSOFT Distinguished Paper Award (杰出論文獎)。
![]()
ICSE,即 IEEE/ACM 國際軟件工程會議,是軟件工程領域的頂級會議,也是中國計算機學會推薦的 A 類國際學術會議。本年度 ICSE 共收到全球 1469 篇論文投稿,最終錄用 321 篇,其中僅 22 篇被評為頂尖論文,獲獎比例不足總投稿的 1.5%,用以表彰其在軟件工程領域技術創新性和影響力方面的杰出貢獻。
![]()
- 論文題目: SEAlign: Alignment Training for Software Engineering Agent
- 論文鏈接:https://arxiv.org/abs/2503.18455
行業瓶頸:現有模型難以適配真實軟件工程場景
現有代碼模型的后訓練大多圍繞編程競賽、算法題代碼生成展開,這類任務通常目標清晰、上下文短、依賴少,主要考察生成代碼答案的能力;而真實軟件工程任務則要求模型在復雜倉庫、工具鏈和反饋循環中持續做決策。
論文實驗數據顯示,即便是經過充分后訓練、在各種 Benchmark 任務上表現不俗的 Qwen2.5-Coder-Instruct-14B ,配合 OpenHands 框架后,在模擬真實 GitHub 漏洞修復的 SWE-Bench-Verified 上,僅有 2.8% 的問題解決率。這說明現有對齊方式主要教會了模型「如何寫代碼」,卻尚未充分教會模型「如何驅動一個軟件工程智能體持續行動」。
論文進一步分析了失敗軌跡,發現問題主要集中在三類行為失配上。
1、一是指令跟隨不足:模型沒有真正讀懂 issue 中的約束,或者過早按照自己的理解動手修改,最后寫出的代碼「看起來合理」,卻沒有解決真實問題。
2、二是工具調用錯誤:包括錯誤地選擇工具、傳入不合法參數、查看無關文件,或者沒有在關鍵時刻使用正確工具,導致上下文和計算預算被大量浪費。
3、三是重復循環:模型不斷重復相似動作,卻沒有根據環境反饋更新判斷,最終陷入無效迭代。也就是說,真實軟件工程中的核心瓶頸并不是單步代碼生成,而是整個多步決策過程中的行為質量。
SEAlign:對齊智能體中的關鍵決策
針對上述問題,SEAlign 的核心思想非常直接:如果軟件工程智能體的成敗,取決于一系列中間決策,那么訓練目標就不應只關注最終代碼是否正確,而應顯式優化模型在關鍵步驟上的行為選擇。
論文提出,智能體軌跡中不同動作的重要性并不相同。有些動作即便略有偏差,模型也會在后續路徑中糾正錯誤;但另一些動作一旦出錯,就可能讓整個軌跡徹底偏航。
因此,軟件工程對齊的關鍵并不在于均勻優化每一個 token 或所有步驟,而在于識別真正決定成敗的關鍵節點,并在這些節點處引導模型偏好更優決策。
最近也有一些研究人員開始將 Agent 與控制論的思路進行類比。從瓦特調速器到現代控制系統,一個更值得關注的共同點在于,它們并不是要預先規定每一步具體動作,而是通過識別那些可能引發系統性偏離的關鍵狀態,并在這些位置上施加適當的校正信號,以維持整體運行方向的穩定。對應到軟件工程智能體,模型的能力也不應只是生成某一段代碼,而更體現在其能否在關鍵節點上持續作出較為合理的判斷。
SEAlign 的啟發性正在于此:它并不對整條軌跡上的所有行為施加均勻約束,而是將對齊的重點放在那些更可能影響軌跡走向的關鍵決策點上,從而在一定意義上把軟件工程智能體的訓練問題轉化為一個面向閉環反饋的過程控制問題。
具體來說,SEAlign 包含三個核心階段:
![]()
第一步是軌跡數據收集:論文將模型置于真實的軟件工程環境中,讓其在 Agent 框架下完成任務,并記錄完整的 Agent 決策軌跡,同時根據任務是否被最終解決來給出成功或失敗的標記。為了避免數據泄漏,論文明確排除了測試數據集所涉及的任何倉庫以及與之相近的倉庫。
第二步是軌跡樹構建與關鍵動作識別:論文觀察到,不同軌跡之間常常共享相同前綴,因此將這些重合的決策路徑進行合并,可以將一群獨立的智能體軌跡鏈合并成一個軌跡樹結構,每個非葉節點對應一個決策步驟,每個葉節點對應成功或失敗結果。基于這棵軌跡樹,SEAlign 進一步過濾掉低質量樣本,例如反復重復同一動作、沒有實質推進的 loop 軌跡,以及與其他樣本沒有有效重疊的離群軌跡。
第三步是偏好對齊訓練:論文利用類蒙特卡洛采樣的節點評分方法,從同一前綴下找出「一個動作導致后續成功概率顯著更高,另一個動作導致顯著更差」的關鍵動作對,再通過偏好學習讓模型在這些關鍵點上學習偏好更優行為。
![]()
從方法設計上看,SEAlign 把軟件工程能力明確建模為一種智能體軌跡上的關鍵點決策能力。這與過去很多代碼對齊方法只圍繞程序正確性、偏好輸出或競賽題結果來構造訓練信號不同:SEAlign 關心的是模型是否會在關鍵節點避免走偏。這也是它與一般代碼生成優化工作的本質差異所在。在當前追逐 Long Running Agent Harness 的時代,SEAlign 采用了近似控制論的設計思路,在關鍵決策點上為模型提供約束的同時,也允許模型進行廣闊的探索。
實驗結果
在高度貼近真實軟件工程場景的 SWE-Bench 系列實驗中,SEAlign 展現出了明顯的提升。論文僅使用不到一千條樣本,以相對較低的訓練開銷,便在同等參數規模的開源模型中取得領先表現,部分指標甚至逼近商業閉源模型 GPT4o。
在Qwen2.5-Coder-Instruct-14B上的實驗顯示,SEAlign 的訓練方法使得該模型 在SWE-Bench-Lite上的問題解決率從3.7%提升到17.7%;在SWE-Bench-Verified上,則從2.8%提升到21.8%。
與此同時,基線模型中非常常見的兩類問題 —— 空補丁率(empty patch)和循環卡死率 (stuck-in-loop) 也顯著下降:例如在 SWE-Bench-Verified 上,14B 基線模型的空補丁率(empty patch)為52.0%、卡死率(stuck)比例為27.8%,而 SEAlign-14B 分別降至22.8%與15.6%。這說明 SEAlign 能夠系統性改善模型在 Agent 框架中的行為過程。
![]()
![]()
為了驗證 SEAlign 學到的不是對某一個類 Benchmark 的過擬合,論文進一步在 HumanEvalFix 這一類程序修復任務上進行實驗。
對 Qwen-2.5-Coder-Instruct-14B 而言,不使用 Agent 框架時代碼修復通過率(Pass@1)為54.3%,一旦放入 Agent 工作流中,反而掉到31.1%,說明它雖然會直接寫代碼,卻并不擅長在工具交互流程中行動。
相反,SEAlign-14B 在無 Agent 時的通過率為52.4%,加入 Agent 后則提升到62.8%,同時無效補丁率( invalid patch rate )降到10.4%。
這表明 SEAlign 的收益并不只體現在 SWE-Bench 這種復雜倉庫任務上,也確實提高了模型在工具輔助、多步交互場景下的穩定性與泛化能力。
![]()
消融實驗
論文的消融實驗進一步說明,SEAlign 的關鍵在于其對細粒度關鍵動作優化本身。
- 只做 SFT 不做細粒度 DPO:SWE-Bench-Lite 上的解決率為13.0%;
- 只做 DPO 不做 SFT:解決率降至10.7%;完整方案則達到17.7%;
- 更關鍵的是,如果去掉關鍵動作識別,直接把整條成功軌跡和失敗軌跡拿去做偏好優化,效果會明顯退化到5.3%。
![]()
數據規模實驗也顯示出較清晰的趨勢:隨著訓練數據從 25% 增加到 50%、75% 和 100%,SWE-Bench-Lite 上的解決率從 3.7% 穩步提升到17.7%。
![]()
從基準測試 Benchmark 到實際應用:真實用戶體驗評價
除了標準的智能體 Benchmark,論文還手工設計了五類簡單的應用開發任務,包括 to-do list、貪吃蛇小游戲、天氣應用、Hacker News 查詢應用和個性化主頁,并邀請 5 名有至少一年開發經驗的志愿者從功能完整性、代碼質量和美觀度三個維度進行評分。
平均結果顯示,SEAlign-14B 相比原始 Qwen-14B 都有明顯提升:功能完整性從1.8提升到3.1,代碼質量從2.7提升到3.5,美觀度從2.0提升到3.2,SEAlign 更接近真實用戶感知的開發體驗改進。
![]()
未來展望
總體來看,SEAlign 揭示了一個極具現實價值的核心命題:代碼模型在真實軟件工程中的關鍵能力,不僅在于寫好代碼本身,更在于如何在工程流程中持續做出正確決策。
圍繞軌跡對齊、工具使用、關鍵階段控制與過程級的模型訓練優化,SEAlign 對于代碼智能體和模型的協同演進,以及保證智能體模型在長序列復雜任務上能夠平穩運行都至關重要。這也為代碼模型走向實用化、工程化提供了一條可行路徑。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.