![]()
來源:學術頭條
整理:瀟瀟
如今的代碼智能體(coding agents),可以連續數小時參與軟件項目開發,在人類監督下完成應用程序編寫、運行測試及修復 Bug 等工作。
然而,它們并不是萬能的,有時反而會增加軟件項目的復雜度,而并沒有簡化流程。
因此,理解其底層工作機制,有助于開發者明確何時(以及是否)應當使用這些工具,并有效規避常見陷阱。
我們先從基礎講起,每一個 AI coding agents 都基于大語言模型(LLM)構建,后者是一種在海量文本數據(包括大量編程代碼)上訓練而成的神經網絡。它本質上是一臺模式匹配機器,通過提示詞來“提取”其在訓練過程中所見數據的壓縮統計表征,將該模式的一個看似合理的延續作為輸出結果。在這一提取過程中,LLM 能夠在不同領域與概念之間進行插值,運用得當時,它能產生有用的邏輯推理;運用不當時,則會導致虛構錯誤。
隨后,這些基礎模型會通過一系列技術進一步優化,例如在精選示例上進行微調,以及引入基于人類反饋的強化學習(RLHF)。這些技術旨在塑造模型的行為,使其能遵循指令、調用工具,并產出更具實用價值的結果。
![]()
圖 | Claude Code 命令行界面截圖。(來源:Anthropic)
近年來,AI 研究人員一直在探究 LLM 的能力缺陷,并嘗試尋找相應的規避與改進方法。近期的一項創新是模擬推理模型,它以推理式文本的形式生成上下文,即對提示詞進行擴展,從而幫助模型更精準地鎖定答案,產出更準確的結果。另一項創新是被稱為“智能體”的應用范式,它將多個 LLM 串聯起來,使其能同步協作完成任務并對產出結果進行評估。
如何構建coding agents?
從這個意義上講,每個 AI coding agents 本質上都是一個與多個 LLM 協同工作的程序封裝器。通常,系統中會有一個監督型 LLM 負責解析用戶的任務指令,并將其分配給多個并行工作的 LLM,后者能夠調用各種軟件工具來執行具體操作。監督智能體可以隨時中斷下層任務,并通過評估子任務的結果來監測項目的整體進度。Anthropic 的工程文檔將這種工作模式概括為:收集上下文(gather context)、采取行動(take action)、驗證工作(verify work)、循環(repeat)。
當通過命令行界面(CLI)在本地運行時,用戶會在特定條件下授予智能體相應權限,使其能夠在本地計算上寫入文件(包括代碼或其他所需內容)、執行探索性命令(例如使用 “ls” 列出目錄中的文件)、抓取網站內容(通常使用 “curl”)、下載軟件,或將文件上傳至遠程服務器。由于這種方式具有極大的靈活性,同時也伴隨著潛在風險,因此在使用時需要格外謹慎。
相比之下,當用戶在 Web 智能體(如 Web 端的 Codex 或 Claude Code)中啟動任務時,系統會分配一個沙箱化的云端容器,并預加載用戶的代碼倉庫。在這個環境中,Codex 可以讀取和編輯文件,運行各種命令,包括測試框架和代碼檢查工具,并獨立執行代碼。Anthropic 的 Claude Code 則是利用操作系統層面的機制來構建文件系統和網絡的邊界,使智能體能夠在這些邊界內更自由地開展工作。
上下文困境
可以這么說,每個 LLM 都有其短期記憶,這限制了它在“遺忘”前所能處理的數據總量。這種限制被稱為“上下文”。每當你向監督智能體提交一次回復時,實際上是在修訂一個巨大的提示詞,其中包含了截至目前的所有對話歷史,以及生成的所有代碼,還有模型用于深入“思考”問題的模擬推理 token,隨后 AI 模型會評估這一完整提示詞并生成輸出。這是一個計算成本極其昂貴的過程,且成本隨提示詞規模呈二次方級增長,因為 LLM 需要將提示詞中的每一個 token(數據塊)與所有其他 token 進行逐一處理和比對。
Anthropic 的工程團隊將上下文視為一種有限且邊際收益遞減的資源。相關研究揭示了一種稱為“上下文腐化”(context rot)的現象:隨著上下文窗口中 token 數量的增加,模型準確回憶信息的能力反而會下降。每新增一個 token,都會消耗文檔中所稱的“注意力預算”。
這種上下文限制自然也約束了 LLM 在單次處理過程中能夠覆蓋的代碼庫規模。如果向模型輸入大量的代碼文件,而這些文件在每次提交新響應時都需要被 LLM 重新評估,就會非常迅速地消耗掉 token 配額或使用額度。
業內技巧
為了突破這些限制,coding agents 開發者采用了多種技巧。例如,對 AI 模型進行微調,使其在編寫代碼時將部分任務“外包”給其他軟件工具。具體來說,模型可能會編寫 Python 腳本,從圖像或文件中提取所需數據,而不是將整個文件直接送入 LLM 進行處理,從而節省 token 并降低產生不準確結果的風險。
Anthropic 的文檔指出,Claude Code 在對大規模數據庫進行復雜數據分析時同樣采用了這一思路。它會編寫有針對性的查詢語句,并結合使用諸如 “head”“tail” 等 Bash 命令,在不將完整數據對象加載進上下文的情況下,對海量數據進行分析。
(從某種意義上說,這些 AI 智能體是在引導之下但具備一定自主性的工具調用程序,它們是對 2023 年初首次出現的概念的一次重大延伸。)
智能體領域的另一項重大突破源于動態上下文管理。雖然各家閉源編程模型并未完全公開其實現方式,但智能體可以通過多種手段達成這一目標,而我們已知其中最核心的技術就是上下文壓縮。
![]()
圖 | OpenAI Codex 的命令行版本在 macOS 終端窗口中的運行界面。(來源:Benj Edwards)
當編程 LLM 接近其上下文上限時,這項技術會通過對上下文歷史進行總結來實現壓縮,雖然這一過程中不可避免地會丟失部分細節,但能將冗長的歷史精簡為關鍵要點。Anthropic 的文檔將這種“壓縮”描述為一種高保真的上下文蒸餾過程:在丟棄冗余工具輸出的同時,盡量保留諸如架構決策、未修復的 Bug 等核心信息。
這也意味著,每當發生一次上下文壓縮,AI coding agents 都會在一定程度上“遺忘”此前正在進行的大量細節;但與早期基于 LLM 的系統不同的是,它們并不會對已發生的事情一無所知,而是能夠通過重新閱讀現有代碼、文件中留下的文字說明、變更日志等內容,迅速重新建立對項目狀態的認知。
Anthropic 的文檔建議使用 CLAUDE.md 文件來記錄常用的 Bash 命令、核心文件、工具函數、代碼風格規范以及測試說明等內容。AGENTS.md,如今已成為多家公司共同采用的標準,則是另一種在上下文刷新之間引導智能體行為的有效方式。這類文件相當于外部筆記,使智能體能夠在處理復雜任務時持續跟蹤進展,并保留那些原本可能因上下文壓縮而丟失的關鍵信息。
對于需要長時間持續工作的任務,兩家公司都采用了多智能體架構。根據 Anthropic 的研究文檔,其系統使用一種被稱為“編排者-執行者模式”的設計,由一個主導智能體負責整體協調,同時將具體任務委派給多個并行運行的專業子智能體(subagents)。當用戶提交查詢后,主智能體會對其進行分析、制定策略,并生成多個子智能體,從不同維度同時展開探索。子智能體充當智能過濾器角色,只將相關信息返給主導智能體,而非完整的上下文內容。
然而,多智能體方法會迅速消耗 token。Anthropic 的文檔指出,智能體在執行任務時通常消耗的 token 數量約為普通聊天交互的 4 倍,而多智能體系統的 token 消耗則可達到聊天場景的 15 倍。因此,從經濟可行性的角度來看,這類系統只適用于那些價值足以覆蓋額外成本的任務。
人類的最佳實踐
盡管在某些編程群體里,使用這些智能體仍存在爭議,但如果你選擇用它們來編寫項目,掌握良好的軟件開發實踐將有助于提前規避潛在問題。例如,了解版本控制、進行增量備份、一次只實現一個功能并在繼續下一步之前對其進行測試,這些都是非常好的習慣。
人們所謂的“vibe coding”,即在完全不理解代碼邏輯的情況下生成 AI 代碼,顯然不適合生產環境。在生產系統中部署并非由自己編寫、也未充分理解的代碼,本身就具有較高風險。它可能引入安全隱患或隱藏 bug,并逐步積累技術債,最終隨著時間的推移產生滾雪球效應。
獨立 AI 研究員 Simon Willison 近日指出,即便使用 coding agents,開發者依然承擔著證明其代碼有效的責任。“幾乎任何人都可以通過提示詞讓 LLM 生成一份上千行的補丁,并將其提交進行代碼審查,”Willison 寫道,“這本身已經不再有價值。真正有價值的是貢獻那些經過驗證、確實可行的代碼。”
事實上,人類的規劃才是關鍵。Claude Code 的最佳實踐文檔針對復雜問題推薦了一套特定的工作流。首先,要求智能體閱讀相關文件,并明確告知其先不要編寫任何代碼;其次,要求它制定一份計劃。該文檔警告稱,如果沒有這些調研和規劃步驟,Claude 的輸出往往會直接跳到編寫代碼這一步。
如果缺乏規劃,LLM 有時會為了滿足眼前目標而倉促給出走捷徑的方案,但當項目規模擴展時,這些方案往往會出現問題。因此,對于可隨時間演進、具備良好模塊化特性的程序架構有一定認識,有助于引導 LLM 構建出更具長期穩定性的方案。
正如前文所述,這些智能體并非完美無缺,有些人甚至不愿使用它們。非營利研究機構 METR 在 2025 年 7 月發布的一項隨機對照試驗發現,經驗豐富的開源開發者在使用 AI 工具時,完成任務所需的時間實際上增加了 19%,盡管他們主觀上認為自己的工作效率更高。研究人員同時指出了一些限制因素:參與者對各自代碼庫極為熟悉(平均擁有 5 年經驗、約 1500 次提交記錄),所使用的倉庫規模大且成熟,而實驗中采用的模型(主要是通過 Cursor 調用的 Claude 3.5 和 3.7 Sonnet)也已被更新、更強的版本所取代。
新一代模型是否會產生不同的結果仍是一個懸而未決的問題,但這項研究表明,AI 編程工具并不一定能在所有情況下帶來效率提升,尤其是對于那些已經非常熟悉自身代碼庫的開發者而言。
鑒于這些潛在風險,目前 coding agents 更理想的使用場景,可能是用于概念驗證(proof of concept)演示以及內部工具的開發。盡管被稱為“智能體”,但 AI 模型并不具備真正的能動性(agency),也無法像人類一樣對錯誤承擔責任,因此,人工監督始終是核心關鍵。
原文作者:Benj Edwards,Ars Technica高級人工智能記者,專注于生成式AI領域。
https://arstechnica.com/information-technology/2025/12/how-do-ai-coding-agents-work-we-look-under-the-hood/
閱讀最新前沿科技趨勢報告,請訪問歐米伽研究所的“未來知識庫”
https://wx.zsxq.com/group/454854145828
![]()
未來知識庫是“ 歐米伽 未來研究所”建立的在線知識庫平臺,收藏的資料范圍包括人工智能、腦科學、互聯網、超級智能,數智大腦、能源、軍事、經濟、人類風險等等領域的前沿進展與未來趨勢。目前擁有超過8000篇重要資料。每周更新不少于100篇世界范圍最新研究資料。 歡迎掃描二維碼或訪問https://wx.zsxq.com/group/454854145828進入。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.