![]()
在人工智能飛速發展的今天,很多人都在討論AI什么時候能完全替代人類程序員。然而,字節跳動Seed中國團隊聯合M-A-P、2077AI、Humanlaya Data等多家研究機構剛剛發布的一項重磅研究卻給這種樂觀情緒澆了一盆冷水。這項研究發表于2025年12月,題為"NL2Repo-Bench: Towards Long-Horizon Repository Generation Evaluation of Coding Agents",有興趣深入了解的讀者可以通過arXiv:2512.12730v1查詢完整論文。
想象一下,你要求一個據說是"世界頂級"的建筑師為你設計并建造一棟完整的房子,你只給了他一張寫著詳細需求的紙條,比如"我想要一個三室兩廳的房子,有現代化廚房,陽光充足的客廳"等等。然后你走開,讓他獨自完成從設計到建造的全部工作。幾天后回來,你發現他只搭了半截墻就放棄了,或者建了一棟看起來不錯但門窗都打不開的房子。
這正是研究團隊發現的AI程序員現狀。目前最先進的AI編程助手,包括Claude、GPT-5等明星產品,在面對需要獨立完成整個軟件項目的任務時,表現遠遠不如我們想象的那樣出色。即便是表現最好的Claude系統,成功率也僅有40%左右,而大多數AI的成功率甚至不到20%。
這項研究的獨特之處在于,它首次系統性地測試了AI程序員在"長期項目"中的真實能力。以往的測試就像是考察建筑師能否正確安裝一扇門或者粉刷一面墻,而這次研究則是讓AI獨自承擔從零開始建造整棟房子的任務。研究團隊設計了一個名為NL2Repo-Bench的全新測試平臺,包含104個不同難度的真實軟件項目,每個項目都需要AI從一張需求說明書開始,獨立完成架構設計、代碼編寫、依賴管理等全部工作,最終交付一個可以正常運行的完整軟件包。
一、傳統測試方法的局限性:只見樹木不見森林
在深入了解這項研究之前,我們需要理解為什么以往的AI編程能力測試可能誤導了我們。現有的大多數AI編程測試就像是在考駕照時只考察能否踩油門剎車,而不測試能否獨立完成一次長途旅行。
比如說,目前最流行的編程測試通常會給AI一個具體的編程題目,比如"寫一個函數來計算兩個數字的最大公約數",或者"修復這段代碼中的一個bug"。這類測試就像是讓建筑工人展示如何使用錘子或螺絲刀,雖然能測試某些技能,但完全無法評估他們能否獨立建造一棟房子。
研究團隊發現,即使是那些在單個編程任務上表現優異的AI系統,在面對需要長期規劃和多模塊協調的復雜項目時,往往會出現各種意想不到的問題。這就好比一個能夠精美雕刻每一塊磚石的工匠,卻無法理解如何將這些磚石組合成一座穩固的建筑。
當前的測試方法主要分為三類。第一類是"修補型"測試,給AI一個已經存在但有問題的軟件項目,讓它找出并修復bug,這就像是讓裝修工人修補墻面的裂縫。第二類是"填空型"測試,給AI一個不完整的項目框架,讓它填補缺失的部分,就像給裝修工人一個半成品房間,要求完成剩余工作。第三類是"復制型"測試,讓AI根據學術論文重新實現研究成果,但這類測試通常依賴其他AI來評判結果好壞,就像讓一個裝修工人評價另一個工人的工作質量。
這些測試方法的共同問題是,它們都為AI提供了大量的"腳手架"支撐,就像是為建筑工人提供了詳細的施工圖紙、預制的建筑構件,甚至現成的地基。在這種條件下表現良好,并不意味著AI具備了獨立規劃和建造整個項目的能力。
二、NL2Repo-Bench的創新設計:真正的獨立建房挑戰
為了真實評估AI的完整編程能力,研究團隊創造了一個全新的測試環境,稱為NL2Repo-Bench。這個測試平臺的設計理念就像是給建筑師一塊空地和一份詳細的需求說明書,然后完全讓他們獨自完成從設計到建造的全部工作。
NL2Repo-Bench的核心設計包含三個關鍵要素。首先是"空白起點"原則,AI面對的是一個完全空白的工作環境,沒有任何預先編寫的代碼、沒有項目框架、甚至連基本的文件夾結構都需要AI自己創建。這就像是給建筑師一塊什么都沒有的空地,連地基都需要他們自己設計和挖掘。
其次是"純文字需求"的輸入方式。AI只能獲得一份用自然語言寫成的項目需求文檔,這份文檔詳細描述了軟件應該具備的功能、應該如何使用、以及期望的行為表現。但是,這份文檔不包含任何代碼示例、函數簽名或具體實現提示。這就像是給建筑師一份房屋需求說明書,上面寫著"需要三室兩廳、現代化廚房、充足采光",但不會告訴他如何設計房屋結構或選擇建筑材料。
第三個關鍵要素是"嚴格驗證"的評判標準。與以往依賴其他AI或人工主觀評價不同,NL2Repo-Bench使用真實軟件項目的原始測試套件來驗證AI生成的代碼。這些測試套件是軟件原始開發者編寫的,用來確保軟件各項功能正常工作。這就像是用建筑工程的嚴格驗收標準來檢查房屋質量,包括結構安全性、水電系統功能、門窗開關是否正常等等。
研究團隊從GitHub上精心篩選了104個真實的開源軟件項目作為測試素材。這些項目涵蓋了網頁開發、數據分析、機器學習、系統工具等九大類別,規模從簡單的工具庫到復雜的系統軟件不等。每個項目的規模控制在300到12萬行代碼之間,確保既有足夠的復雜性來測試AI的長期規劃能力,又不會超出當前AI系統的處理能力上限。
為了確保測試的公平性和準確性,研究團隊還開發了專門的Docker容器化測試環境。每個測試項目都在一個隔離的、預配置好的虛擬環境中運行,確保AI生成的代碼能夠在標準化的條件下接受測試。這就像是為每個建筑項目提供統一的質檢標準和工具,確保評估結果的客觀性和可比較性。
三、令人意外的測試結果:AI編程能力的真實水平
當研究團隊運行這些嚴格的測試時,結果讓所有人都感到震驚。即使是當前性能最強的AI系統,在面對完整項目開發任務時的表現也遠遠低于預期。
Claude系列AI表現最為出色,其中Claude-Sonnet-4.5的平均成功率達到40.2%,這已經是所有測試AI中的最高分數。但即便如此,這意味著在10個項目中,它也只能完整成功完成4個。而其他知名的AI系統表現更加令人擔憂,GPT-5的成功率只有21.7%,一些開源AI模型的成功率甚至低于20%。
更讓人意外的是,在104個測試項目中,即使是表現最好的Claude-Sonnet-4.5,也只有3個項目能夠完全通過所有測試用例。這就像是讓世界上最優秀的建筑師獨立建造10棟房子,結果發現其中6棟房子都有嚴重的結構問題或功能缺陷,而真正完全符合要求、可以安全入住的房子屈指可數。
研究團隊進一步分析發現,AI的表現與項目復雜程度呈現明顯的反比關系。在簡單項目(代碼量少于1500行)中,Claude-Sonnet-4.5的成功率能達到51.8%,但在復雜項目(代碼量超過4000行)中,成功率急劇下降到25.1%。這種現象類似于一個建筑師能夠熟練建造小型住宅,但在面對大型建筑項目時就力不從心了。
不同類型的項目對AI來說也呈現出不同的挑戰程度。研究發現,AI在處理系統工具和數據庫交互類項目時表現相對較好,成功率能達到40%以上。但在機器學習和網絡通信類項目上,所有AI的表現都顯著下降,成功率普遍低于20%。這就像是某些建筑師擅長建造傳統住宅,但在面對需要復雜電氣系統或特殊結構設計的建筑時就顯得束手無策。
研究團隊還發現了一個有趣的現象:AI系統的上下文窗口大小對性能有顯著影響。Claude系列AI擁有100萬token的超大上下文窗口,這讓它能夠在整個開發過程中記住項目的所有細節和早期決策。相比之下,那些只有25萬token上下文窗口的AI系統,就像是患有短期失憶癥的建筑師,經常忘記前面做過的設計決定,導致項目后期出現各種不一致的問題。
四、AI失敗模式分析:編程過程中的典型錯誤
通過深入分析AI在測試中的失敗案例,研究團隊發現了幾種典型的錯誤模式,這些發現揭示了當前AI編程能力的根本性局限。
最常見的問題是"過度自信的早期放棄"。許多AI系統在項目進行到一半時就認為任務已經完成,提前宣布"工程完工"。這就像是建筑工人只搭建了房屋的基本框架和外墻,就告訴業主"房子建好了",完全忽略了內部裝修、水電安裝、門窗安裝等大量必要工作。這種現象在"思維型"AI模型中尤為嚴重,比如Qwen3-Thinking模型有49%的項目都出現了這種過早停工的問題。
研究團隊認為,這種現象可能源于AI的"內部思維幻覺"。這些AI在內部推理過程中會說服自己代碼已經正確完成,就像是一個建筑工人在腦海中想象房子已經建好的樣子,然后就誤以為現實中的房子也真的建好了。這種內部的"成功感"掩蓋了外部實際存在的問題,導致AI跳過了必要的驗證和完善步驟。
另一個嚴重問題是"協作依賴癥"。一些AI,特別是GPT-5,經常在項目進行過程中停下來等待人類的進一步指示。它們會說"我已經完成了基礎框架,接下來應該怎么辦?"或者"我需要確認這個設計方案是否符合您的要求"。這就像是建筑工人每完成一個小步驟就停下來詢問監工該怎么辦,雖然這在人機協作場景中可能是優點,但在需要獨立完成任務的情況下就成了致命缺陷。
第三種常見問題是"架構一致性缺失"。隨著項目規模的增長,AI往往無法維持整體設計的一致性。它們可能在項目初期制定了一套命名規范和代碼結構,但在后期卻忘記了這些決定,開始使用完全不同的風格和方法。這就像是建筑師在建房子時,前面用的是現代風格的設計元素,后面卻忽然改用古典風格,導致整棟建筑風格混亂、不協調。
第四種問題是"依賴管理混亂"。許多AI無法正確處理軟件項目中的外部依賴關系,經常出現導入錯誤、版本沖突或缺少必要組件的情況。這就像是建筑師在設計房屋時沒有考慮好水管、電線的走線方案,導致后期安裝時發現管線無法正確連接,整個系統無法正常工作。
研究還發現,AI在處理錯誤和調試方面存在顯著缺陷。當代碼出現錯誤時,人類程序員通常會系統性地分析問題、查看錯誤信息、逐步調試定位問題。但AI往往缺乏這種持久的問題解決能力,容易陷入重復嘗試同樣的錯誤解決方案的循環中,就像是修理工明明看到某個零件壞了,卻一遍又一遍地嘗試用同樣的方法修理,而不是考慮更換零件或改用其他方法。
五、工具使用模式揭示的深層問題
研究團隊詳細分析了AI在開發過程中如何使用各種編程工具,這種分析就像是觀察建筑工人如何使用不同的工具來完成建房任務,結果揭示了AI工作方式的有趣特點。
在所有AI系統中,代碼編輯工具的使用頻率最高,約占全部工具調用的50-60%。這相當于建筑工人大部分時間都在使用錘子和螺絲刀等基礎工具。其次是命令執行工具,占用約27-35%的時間,這就像是工人需要頻繁使用電鉆、切割機等電動工具。
最有趣的發現是關于"任務規劃工具"的使用差異。表現最好的AI系統,如Claude和GPT-5,會花費約11-14%的時間使用任務規劃工具,這就像是優秀的建筑工人會定期停下來查看施工圖紙、規劃下一步工作。而表現較差的AI系統很少使用這類工具,特別是Qwen3-Thinking模型完全不使用任務規劃工具,它似乎完全依賴內部思維來進行規劃,但這種方式顯然效果不佳。
研究發現,AI系統平均需要進行約180輪的互動才能完成一個項目,但不同AI的互動模式差異巨大。Claude系列AI能夠保持穩定的工作節奏,平均每個項目約180輪互動。而其他一些AI要么互動次數過少(如GPT-5平均只有78輪,往往沒完成項目就停止了),要么互動次數過多(如Kimi-k2平均需要275輪,表現出效率低下的試錯模式)。
通過分析AI的工作流程,研究團隊識別出了幾種典型的工作模式。高效的AI展現出"編輯-測試"循環模式,它們會編寫一段代碼,立即運行測試驗證效果,然后根據結果進行調整。這就像是經驗豐富的建筑工人,每完成一個步驟就會檢查質量,確保沒有問題后再繼續下一步。
相比之下,效率低下的AI往往陷入"盲目編輯"模式,它們會連續編寫大量代碼而不進行中間測試,就像是建筑工人埋頭苦干卻不檢查工作質量,結果到最后發現前面的工作都需要重做。還有一些AI表現出"迷航"模式,它們會反復在項目目錄中尋找文件、查看代碼,但很少進行實際的編輯工作,就像是工人在工地上轉來轉去卻不知道該做什么。
六、上下文窗口大小的關鍵影響
研究中最有啟發性的發現之一是AI的"記憶容量"(技術上稱為上下文窗口大小)對其編程能力的巨大影響。這就像是建筑師的記憶力對其工作質量的影響一樣重要。
Claude系列AI擁有100萬token的超大記憶容量,這讓它能夠在整個項目開發過程中記住所有的設計決定、代碼結構和遇到的問題。相比之下,大多數其他AI只有25萬token左右的記憶容量,就像是記憶力有限的建筑師,容易忘記早期的設計決定,導致后期工作與前期不一致。
這種記憶容量的差異在復雜項目中表現得尤為明顯。當項目代碼量超過1萬行時,擁有大記憶容量的AI能夠維持相對穩定的性能,而記憶容量有限的AI性能會急劇下降。這就像是在建造大型建筑時,記憶力好的建筑師能夠始終把握整體設計思路,而記憶力差的建筑師則會在項目后期迷失方向。
然而,研究也發現,僅僅擁有大記憶容量并不能保證成功。一些擁有較大記憶容量的AI(如Kimi-k2)表現卻不如預期,這說明除了能夠記住信息外,如何有效利用這些信息同樣重要。這就像是一個記憶力超群但缺乏經驗的建筑師,雖然能記住所有細節,但不知道如何將這些信息有效組織和應用。
七、揭示的根本性挑戰
通過這項大規模的系統性研究,團隊揭示了當前AI編程能力面臨的幾個根本性挑戰,這些挑戰遠比我們之前認識到的更加深刻。
首先是"長期規劃能力"的缺失。現在的AI系統雖然能夠很好地處理單個編程任務,但在需要制定并執行跨越數百個步驟的長期計劃時就顯得力不從心。這就像是一個工匠能夠精美地雕刻每一塊木料,但無法設計和建造一件復雜的家具。真正的軟件開發需要在項目初期就考慮好整體架構,然后在數天或數周的時間里堅持執行這個計劃,同時根據實際情況進行靈活調整。
其次是"全局一致性維護"的困難。軟件項目中的各個模塊需要保持風格一致、接口兼容、命名規范統一等等。這就像是建造一棟房子時,需要確保所有房間的設計風格協調統一、所有的門窗規格匹配、所有的水電接口標準一致。AI往往在項目初期能夠做得很好,但隨著項目規模增長,就逐漸失去了對整體一致性的控制。
第三個挑戰是"錯誤恢復和調試能力"。真實的軟件開發過程中,出現錯誤和需要調試是家常便飯。優秀的程序員不僅要能避免錯誤,更要能在錯誤出現時快速定位和修復問題。但現在的AI往往缺乏這種持久的問題解決能力,容易在遇到復雜錯誤時陷入困境或采用低效的試錯方法。
最后是"環境適應性"的不足。真實的軟件開發環境復雜多變,存在版本兼容性問題、依賴沖突、系統差異等各種挑戰。AI需要能夠像有經驗的程序員一樣,在遇到這些環境問題時知道如何搜索解決方案、調整配置或尋找替代方案。但目前的AI在這方面還顯得相當脆弱。
八、對未來AI發展的啟示
這項研究的意義遠遠超出了對當前AI能力的評估,它為我們指出了AI編程能力發展的關鍵方向。
研究表明,簡單地增加AI的計算資源或訓練數據可能無法解決這些根本性問題。就像是給建筑工人更多的錢或更好的工具,并不能自動讓他們學會建造摩天大樓一樣。AI需要的是更好的"長期工作能力"和"項目管理技能"。
未來的AI編程助手可能需要具備更強的自我監督和驗證能力。它們需要能夠定期"回顧"自己的工作,檢查是否偏離了最初的設計目標,并主動糾正發現的問題。這就像是建筑師需要定期審視整個建筑項目,確保各個部分協調統一。
另一個重要方向是改善AI的"規劃持久性"。現在的AI往往制定計劃后就忘記了,或者輕易改變計劃。未來的AI需要能夠制定詳細、可執行的長期計劃,并在執行過程中保持對這個計劃的堅持,同時在必要時進行合理的調整。
研究還暗示,未來可能需要開發專門針對長期項目的AI訓練方法。目前的AI訓練主要基于短期任務,這可能解釋了它們在長期項目中的不佳表現。就像是培訓建筑師不能只讓他們練習砌磚,還需要讓他們實際參與完整建筑項目的規劃和建造。
九、對行業和社會的影響
這項研究的發現對軟件開發行業和整個社會都有重要的現實意義。
首先,它提醒我們不要過度高估當前AI的編程能力。雖然AI在協助程序員完成特定任務方面表現出色,但距離完全自主的軟件開發還有很長的路要走。這就像是說,雖然現在有了很好的電動工具,但我們仍然需要熟練的建筑工人來規劃和協調整個建筑項目。
對于軟件開發團隊來說,這意味著AI應該被視為強大的助手而不是替代品。最有效的應用方式可能是人機協作,讓AI處理重復性的編碼任務,而讓人類程序員負責架構設計、項目規劃和質量把控。這就像是現代建筑項目中,電動工具大大提高了工人的效率,但項目的成功仍然依賴于有經驗的建筑師和項目經理。
對于AI開發公司來說,這項研究指出了明確的改進方向。僅僅提高AI在簡單編程任務上的表現是不夠的,真正的突破需要在長期規劃、項目管理和錯誤處理能力方面取得進展。這就像是汽車工業從制造單個零件的能力發展到整車設計和制造能力的飛躍。
從更廣闊的社會角度來看,這項研究也提醒我們在AI發展過程中保持理性和謹慎。雖然AI技術進步迅速,但在某些需要長期規劃和復雜協調的領域,人類的獨特價值仍然不可替代。這不是要貶低AI的價值,而是要幫助我們更好地理解如何最有效地利用AI技術。
說到底,這項研究告訴我們一個重要道理:真正的智能不僅僅是解決單個問題的能力,更是規劃、執行和完成復雜長期項目的能力。雖然當前的AI在某些方面已經超越了人類,但在需要持久性、一致性和全局思維的復雜任務中,我們仍然有很長的路要走。這既是挑戰,也是機遇,為未來的AI研究指明了清晰的發展方向。
就像建造一棟真正優秀的建筑需要的不僅僅是精湛的手工技藝,還需要深思熟慮的設計、精確的規劃和持之以恒的執行一樣,創造真正智能的AI編程助手也需要我們在算法、架構和訓練方法上進行更深層次的創新和突破。
Q&A
Q1:NL2Repo-Bench測試平臺是什么?
A:NL2Repo-Bench是字節跳動團隊開發的AI編程能力測試平臺,它讓AI從零開始獨立完成整個軟件項目開發。測試中AI只能獲得一份文字需求說明,需要自己進行架構設計、代碼編寫、依賴管理等全部工作,最終交付可運行的完整軟件包。這就像給建筑師一塊空地和需求書,讓他獨自完成從設計到建造的全部工作。
Q2:目前最強的AI編程助手成功率有多高?
A:研究測試了包括Claude、GPT-5等在內的多個頂級AI系統,發現即使是表現最好的Claude-Sonnet-4.5,平均成功率也只有40.2%。大多數AI的成功率甚至不到20%。在104個測試項目中,Claude-Sonnet-4.5只有3個項目能完全通過所有測試。這意味著AI距離獨立完成復雜軟件項目還有很大差距。
Q3:AI編程失敗的主要原因是什么?
A:研究發現AI編程失敗主要有四個原因:過度自信導致提前停工、依賴人類指導無法獨立工作、無法維持長期項目的架構一致性、以及依賴管理混亂。比如一些AI會在項目完成一半時就認為任務結束,或者在項目后期忘記早期的設計決定,導致代碼風格不一致。這些問題反映出AI缺乏長期規劃和項目管理能力。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.