Agent不存在了?誰說必須用 Agent!
今天給家人們分享一下AgentLess,這個輿論比較高的研究工作。。
AGENTLESS : Demystifying LLM-based Software Engineering Agents
AI編程在最近幾個月非?;馃?,像Devin這種自主Agent,已經可以完成端到端的軟件開發(fā)任務。最新的Agent基本具備了使用工具、執(zhí)行命令、觀察環(huán)境反饋并規(guī)劃下一步行動的能力。
但是,這些基于 Agent 的方法往往非常復雜,而且當前 LLM 的能力也存在局限性。這就引出了一個問題:我們真的需要如此復雜的自主 Agent 嗎?
所以,這個研究工作,研究了一種無需 Agent 的方法,來自動解決軟件開發(fā)中的問題。與那些復雜的基于 Agent 的方法相比,AGENTLESS 采用了一種簡單的三階段工作流:定位問題、修復問題和驗證修復。整個過程沒有讓 LLM 自主決策后續(xù)步驟或操作復雜工具。
AGENTLESS 的核心思想:大道至簡
作者們發(fā)現(xiàn)無需復雜的自主規(guī)劃和工具調用,僅僅依靠簡單的流程也能高效解決軟件問題。AGENTLESS 的工作流程如下:
- 精確定位問題:
- 首先,AGENTLESS將代碼倉庫轉化為樹狀結構,清晰展示文件之間的相對位置。
- 接著,結合問題描述,AGENTLESS利用 LLM 和嵌入式檢索技術,定位最有可能需要修改的文件。
- 然后,AGENTLESS進一步縮小范圍,定位到文件內的具體類、函數(shù)和變量。
- 最后,AGENTLESS精確到代碼的編輯位置,例如具體的代碼行。
- 高效修復問題:
- AGENTLESS 從定位好的代碼片段中提取上下文信息,作為 LLM 的輸入。
- 接著,AGENTLESS 指示 LLM 生成多個候選補丁,每個補丁都是一個簡單的 “查找/替換” 格式的差異文件。這樣不僅可以降低成本,還能提高修復的可靠性和準確性。
- 驗證修復:
- AGENTLESS 指示 LLM 生成重現(xiàn)測試用例,用于驗證原始問題是否已經修復。
- 然后,AGENTLESS 利用重現(xiàn)測試和現(xiàn)有的回歸測試,對候選補丁進行篩選和排序。
- 最后,AGENTLESS 選擇排名最高的補丁,作為最終的修復方案。
AGENTLESS 的驚艷表現(xiàn)
使用 SWE-bench Lite 基準數(shù)據集對 AGENTLESS 進行評估。結果令人驚訝:
- 性能卓越:AGENTLESS的修復成功率達到了 32.00%,成功修復 96 個問題,在所有開源方法中名列前茅!
- 成本極低:平均每個問題的修復成本僅為 0.70 美元,遠低于其他大多數(shù)開源軟件Agent。
- 已被業(yè)界采用:AGENTLESS的簡單和高效也贏得了業(yè)界的青睞,它已經被 OpenAI 采用,用于展示 GPT-4o 和 OpenAI o1 模型在真實世界編碼方面的性能。
AGENTLESS 證明了,簡單的工作流也能高效解決復雜的軟件開發(fā)問題。這是否意味著不應一味追求復雜,而是應該從本質出發(fā),探索更簡單、更有效的方法。
最后,AGENTLESS 已經開源,地址為https://github.com/OpenAutoCoder/Agentless
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦