![]()
當你在GitHub上瀏覽代碼時,你可能不會注意到一個正在悄然發生的巨大變革:越來越多的代碼實際上并不是人類寫的,而是由人工智能代碼助手創造的。這項由荷蘭代爾夫特理工大學、加州大學戴維斯分校以及GitHub等機構聯合開展的突破性研究,首次全面揭示了自主編程代理在真實軟件開發中的活動模式和代碼變化規律。這項研究發表于2026年,研究團隊分析了超過11萬個開源項目的拉取請求,涵蓋數百萬行源代碼,為我們理解AI如何改變軟件開發提供了前所未有的洞察。
想象一下,如果軟件開發是一座繁忙的工廠,那么現在這座工廠里不僅有人類工程師在忙碌,還有一群永不疲倦的AI助手在協同工作。這些AI代理不再是簡單的代碼補全工具,它們能夠獨立創建代碼分支、開啟拉取請求,甚至進行代碼審查。研究顯示,目前GitHub上已有10%的公共拉取請求來自這些AI代理,這個比例還在快速增長。
要理解這種變化的意義,我們需要回到軟件開發的基本流程。在傳統的軟件開發中,程序員會創建代碼,提交到版本控制系統,然后通過拉取請求的方式讓其他開發者審查和合并代碼。這就像是一個精心設計的協作流程,每個環節都需要人類的參與和決策。但現在,AI代理正在這個流程中扮演越來越重要的角色,它們不僅能寫代碼,還能參與整個軟件工程的生命周期。
研究團隊重點關注了五個最受歡迎的編程代理:OpenAI Codex、GitHub Copilot、Claude Code、Google Jules和Devin。這些代理各有特色,就像是五個性格不同的程序員同事。Codex通常處理相對簡單的任務,創建的拉取請求規模較小但合并速度很快。Copilot則更多地參與協作,它的拉取請求往往會收到更多的評論和審查。Claude Code傾向于進行大規模的代碼修改,經常涉及文檔更新和代碼重構。而Devin作為相對較新的代理,在處理復雜任務方面展現出了獨特的能力。
這些AI代理的工作方式與人類程序員有著顯著差異。研究發現,大部分AI代理的活動集中在零星級(沒有獲得任何星標)的項目中。這就像是AI代理更愿意在新手程序員的個人項目中展現身手,而不是在那些擁有大量關注者的知名開源項目中工作。具體來說,Codex和Jules的拉取請求中有75%都來自零星級項目,而人類程序員只有40.5%的拉取請求來自這類項目。
從代碼變更的角度來看,AI代理展現出了與人類截然不同的行為模式。人類程序員的典型拉取請求大約涉及60行代碼的修改,而Claude Code的中位數達到了376行,顯示出AI代理傾向于進行更大規模的代碼變更。這些變更往往以添加新代碼為主,而不是刪除或修改現有代碼,就像是AI代理更喜歡"建造"而不是"拆除"。
在文件類型的選擇上,AI代理也表現出了明顯的偏好。JavaScript和TypeScript是最受AI代理青睞的編程語言,約有三分之一的AI拉取請求涉及這些語言。Python緊隨其后,特別是在Codex的拉取請求中,Python文件占比高達27%。值得注意的是,AI代理還頻繁地修改非代碼文件,特別是Markdown格式的文檔文件。Claude Code的拉取請求中有近一半涉及Markdown文件,這反映了AI代理在文檔生成和維護方面的活躍度。
當我們深入觀察這些拉取請求的處理過程時,發現了更多有趣的現象。AI代理創建的拉取請求在合并率方面呈現出兩極分化的趨勢。Claude Code和Codex的合并率超過了85%,甚至高于人類程序員的75.1%。但Copilot和Devin的合并率只有約62%,明顯低于人類水平。這種差異可能反映了不同AI代理的工作方式和質量控制機制的不同。
更引人注目的是合并時間的差異。人類創建的拉取請求通常需要0.4小時才能被合并,而Codex的拉取請求只需要0.5分鐘就能完成合并,速度快得驚人。這種快速合并可能源于兩個原因:要么這些代碼修改非常簡單直接,要么它們在提交前就已經經過了離線審查,拉取請求只是最后的整合步驟。
然而,速度并不意味著質量。研究團隊還深入分析了AI生成代碼的長期演變,這是評估代碼質量的重要指標。他們追蹤了代碼在合并后三天、一周和三周內的變化情況,就像是觀察一棟新建房屋在入住后是否需要頻繁維修。
結果顯示,人類編寫的代碼具有更好的"生存能力"。在合并后的三天內,約有一半的人類代碼行保持不變,而AI代理生成的代碼被修改的概率要高得多。這種差異在更長的時間跨度內變得更加明顯。人類編寫的代碼就像是經過精心設計的建筑,能夠經受時間的考驗,而AI生成的代碼更像是快速搭建的臨時結構,需要更頻繁的調整和修復。
代碼流失率是另一個重要的質量指標。研究發現,AI代理的代碼具有更高的流失率,這意味著它們的代碼更容易被后續的提交所修改或刪除。這種現象可能源于AI代理傾向于生成較大的代碼塊,以及它們在代碼設計上可能缺乏人類程序員的深思熟慮。特別是Claude Code,其代碼流失率明顯高于其他代理,這與它傾向于進行大規模代碼修改的特點相符。
從協作的角度來看,AI代理與人類開發者的互動也呈現出獨特的模式。人類創建的拉取請求中有21%會收到其他開發者的評論,而大多數AI代理的拉取請求很少收到評論。Codex的拉取請求中只有2%收到了評論,這可能表明這些拉取請求要么非常簡單明了,要么已經在其他渠道完成了審查。相比之下,Copilot的拉取請求更容易引發討論,24%的拉取請求收到了評論,這可能反映了Copilot與開發者協作機制的不同。
問題鏈接是軟件開發中另一個重要的協作指標。當開發者創建拉取請求時,他們通常會將其與相關的問題或需求關聯起來。人類程序員只有8.6%的拉取請求鏈接了問題,而Copilot的這一比例高達52.1%。這種差異反映了不同工作流程的特點:Copilot通常是在明確的問題驅動下工作,而其他代理可能更多地進行主動性的改進。
當我們把視角拉到更宏觀的層面時,可以看到這些AI代理正在重新定義軟件開發的生態系統。傳統上,拉取請求主要用于大型項目中開發者之間的協作,但AI代理的興起正在將這種機制擴展到個人項目和小型倉庫中。這就像是原本只在大公司使用的協作工具現在被推廣到了個人工作室,改變了整個行業的工作方式。
研究還發現了一個值得關注的趨勢:AI代理的活動主要集中在受關注度較低的項目中。這種分布可能反映了幾個現實因素。首先,高星級項目通常有更嚴格的代碼審查流程和更高的質量要求,可能不太適合當前AI代理的能力水平。其次,個人開發者可能更愿意在自己的項目中嘗試AI工具,而大型開源項目的維護者可能對引入AI代理持更謹慎的態度。
這種現象也揭示了AI代理使用的不同模式。像Copilot和Codex這樣的工具由于與GitHub和ChatGPT的深度集成,降低了使用門檻,因此在小型項目中的普及率更高。而Devin作為一個相對昂貴和專業化的工具,在高星級項目中的使用比例相對較高,顯示出了不同工具的市場定位。
從技術演進的角度來看,這些AI代理代表了從被動助手到主動代理的重要轉變。早期的編程助手如GitHub Copilot主要專注于代碼補全,需要開發者的持續指導和確認。而現在的自主代理能夠進行多步驟的任務規劃,自主執行操作,甚至進行自我評估。這種能力的提升使得它們能夠處理更復雜的軟件工程任務。
這種轉變的影響是深遠的。在代碼生成質量方面,雖然AI代理在速度和規模上展現出了優勢,但在代碼的持久性和穩定性方面仍有改進空間。這提醒我們,評估AI代碼工具不能僅僅看短期的生產效率,還需要考慮長期的維護成本和代碼質量。
研究也揭示了不同AI代理之間的顯著差異。這些差異不僅體現在技術能力上,還反映了它們的設計哲學和應用場景。Codex傾向于快速、簡單的修改;Claude Code專注于大規模的重構和文檔更新;Copilot更注重與開發者的協作;而Devin和Jules則在特定場景下展現出了獨特的優勢。
從軟件工程實踐的角度來看,這些發現對開發團隊有重要的指導意義。團隊需要根據項目特點選擇合適的AI代理,并建立相應的質量控制機制。對于需要快速原型開發的項目,AI代理可能是很好的選擇。但對于需要長期維護的關鍵系統,可能需要更謹慎地使用這些工具,并加強后續的代碼審查和重構。
研究還發現了AI代理在不同編程語言上的表現差異。JavaScript和TypeScript的高使用率可能反映了Web開發的活躍度,也可能表明AI代理在這些語言上的訓練更充分。Python的高占比則可能與數據科學和機器學習項目的增長有關。這些模式為我們理解AI代理的能力邊界和最適用的場景提供了重要線索。
值得注意的是,AI代理生成的代碼雖然在短期內可能看起來功能完整,但在長期演化中顯示出了更高的變化率。這種現象可能有多種解釋。一方面,AI代理可能傾向于生成相對獨立的代碼塊,這些代碼塊在集成到更大的系統時需要更多的調整。另一方面,AI代理可能還沒有完全掌握人類程序員在代碼設計中的一些微妙考量,比如可維護性、可擴展性等長期因素。
從協作文化的角度來看,AI代理的引入正在改變開源社區的互動模式。傳統的拉取請求往往伴隨著技術討論和知識分享,而AI代理的拉取請求可能缺乏這種人文互動。這可能會影響開源社區的學習和成長氛圍,需要社區找到新的平衡點。
研究團隊還觀察到了AI代理在文檔維護方面的積極作用。許多開源項目都面臨文檔更新滯后的問題,而AI代理在Markdown文件更新方面的活躍度顯示了它們在這個領域的潛力。這可能為解決開源項目的文檔維護難題提供了新的思路。
代碼審查是軟件開發中的另一個重要環節。研究發現,不同AI代理的拉取請求收到審查的比例差異很大。這種差異可能反映了不同工具的集成方式和用戶群體的不同。一些AI代理可能更多地被用于個人項目或實驗性代碼,因此審查需求較低。而另一些可能更多地參與正式的開發流程,需要更嚴格的審查。
從技術債務的角度來看,AI代理生成的代碼具有更高的后續修改率,這可能會增加項目的維護負擔。開發團隊需要權衡AI代理帶來的短期效率提升和可能的長期維護成本。這提醒我們,在使用AI代理時需要建立相應的質量保證機制。
研究還揭示了倉庫受歡迎程度對AI代理使用的影響。高星級項目通常有更嚴格的貢獻指南和更高的代碼質量要求,這可能限制了當前AI代理的參與度。隨著AI技術的不斷改進,我們可能會看到這種模式的逐步改變。
說到底,這項研究為我們提供了一個全新的視角來理解AI在軟件開發中的角色。AI代理正在從簡單的編程助手演變為能夠獨立處理復雜任務的開發伙伴。雖然它們在代碼質量和長期穩定性方面還有改進空間,但它們已經在提高開發效率、處理重復性任務、維護文檔等方面展現出了巨大價值。
這種變化對整個軟件行業都有深遠影響。開發者需要學會與AI代理協作,利用它們的優勢同時彌補它們的不足。項目管理者需要制定新的工作流程和質量標準來適應AI代理的參與。而技術領導者則需要思考如何在提高效率的同時保持代碼質量和團隊學習成長。
歸根結底,AI代理的崛起并不意味著人類程序員的終結,而是預示著一個新的協作時代的到來。在這個時代中,人類的創造力、判斷力和長期思考能力將與AI的速度、一致性和不知疲倦相結合,共同推動軟件開發的邊界。這項研究為我們理解這種協作關系的現狀和發展趨勢提供了寶貴的數據支撐,也為未來的研究和實踐指明了方向。
Q&A
Q1:什么是自主編程代理,它們和普通的AI編程助手有什么區別?
A:自主編程代理是能夠獨立完成整個編程任務流程的AI工具,比如OpenAI Codex、GitHub Copilot等。與需要人類持續指導的傳統AI助手不同,這些代理能夠自主創建代碼分支、開啟拉取請求、進行代碼審查,甚至處理多步驟的復雜任務,就像是永不疲倦的程序員同事。
Q2:AI代理生成的代碼質量如何,會不會比人類寫的代碼更容易出問題?
A:研究發現AI代理生成的代碼確實存在一些質量問題。雖然它們能夠快速生成功能完整的代碼,但這些代碼在長期維護中表現出更高的修改率和流失率。人類編寫的代碼有約一半在三天內保持不變,而AI代理的代碼更容易被后續修改,這意味著可能需要更多的后續維護工作。
Q3:目前AI編程代理主要在什么類型的項目中使用?
A:AI編程代理主要活躍在零星級項目(沒有獲得GitHub星標的個人項目)中,比如Codex和Jules有75%的拉取請求來自這類項目,而人類程序員只有40.5%。這些代理更多地被用于個人項目、實驗性代碼或新手開發者的學習項目,在大型知名開源項目中的使用相對較少。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.