SWE-agent是什麼
SWE-agent是一個由普林斯頓大學NLP組研究人員開發的開源AI程序員和軟件工程師系統,利用大型語言模型(如GPT-4)的能力,可以自動解決GitHub存儲庫中的問題。SWE-agent通過智能體-計算機接口(ACI)與代碼庫交互,能夠執行代碼的瀏覽、編輯、測試和執行等任務。該系統在SWE-bench測試集上展現出與閉源AI程序員Devin相似的準確度,平均93秒解決一個問題,實現了SOTA 性能。
在25%的SWE-bench測試集上,SWE-agent 實現了與 Devin 相似的準確度—— 解決了12.29%的問題。SWE-agent目前已在GitHub上開源,研究論文將於4月10日發佈。
SWE-agent的官網入口
- 官方項目主頁:https://swe-agent.com/
- GitHub源碼庫:https://github.com/princeton-nlp/SWE-agent
- 官方在線Demo:https://swe-agent.com/demo
SWE-agent的主要功能
- Pull Request問題解決:SWE-agent能夠理解GitHub存儲庫中的問題,並嘗試通過創建拉取請求(pull request)來修復這些問題。
- 代碼編輯與修復:SWE-agent能夠瀏覽和編輯代碼庫中的文件,自動修復代碼中的錯誤和漏洞。
- 自動語法檢查:在代碼編輯過程中,SWE-agent可以運行linter(代碼檢查工具),確保代碼符合語法規範。
- 文件查看器:提供了一個專門構建的文件查看器,能夠在每輪顯示100行代碼,支持上下滾動和搜索功能,以便更有效地查看和編輯代碼。
- 全目錄字符串搜索:SWE-agent具備全目錄字符串搜索功能,能夠簡潔地列出所有匹配搜索條件的文件和代碼片段。
- 命令與反饋:通過智能體-計算機接口(ACI),SWE-agent能夠接收和執行以自然語言形式給出的命令,並提供相應的反饋。
- 測試編寫與執行:SWE-agent能夠編寫並執行測試代碼,驗證修復的有效性。
SWE-agent的工作流程
- 理解問題:首先,SWE-agent通過自然語言處理(NLP)技術理解GitHub存儲庫中的問題描述。這一步驟依賴於其內部集成的大型語言模型(如GPT-4),該模型能夠解析和理解人類編寫的問題報告。
- 智能體-計算機接口(ACI):SWE-agent使用ACI與代碼庫進行交互。ACI是一套設計用來簡化大模型與計算機系統交互的命令和反饋格式。通過ACI,SWE-agent可以瀏覽代碼庫、搜索文件、查看和編輯代碼,甚至執行代碼。
- 代碼分析與修復:在理解了問題之後,SWE-agent會分析相關的代碼,定位可能的錯誤或漏洞,並生成修復方案。這可能包括修改現有代碼、添加缺失的代碼或者重構代碼結構。
- 自動化測試:爲了確保修復有效,SWE-agent能夠自動編寫和執行測試用例。這些測試用例旨在驗證代碼更改是否解決了原始問題,並且沒有引入新的錯誤。
- 性能反饋:SWE-agent執行的每一步操作都會產生反饋,這些反饋用於評估其工作的效果。特別是在SWE-bench基準測試中,SWE-agent會評估其生成的拉取請求是否真正解決了問題。
- 迭代與優化:SWE-agent的設計允許不斷的迭代和優化。研究團隊通過收集使用中的反饋和性能數據,不斷改進ACI設計,提高SWE-agent的問題解決能力和代碼修復的準確性。
© 版權聲明
文章版权归作者所有,未经允许请勿转载。
相關文章
暫無評論...