郭建廷
henry發(fā)自凹非寺量子位|公眾號QbitAI
只用100行代碼,打造最強輕量編程agent。
SWE-bench、SWE-agent原班人馬再出手,推出全新開源項目——
mini-SWE-agent
不依賴任何額外插件,僅通過基礎(chǔ)命令即可運行。而且對模型沒有限制,幾乎兼容所有主流語言模型,支持直接在本地終端中部署和使用。
而在如此精簡的架構(gòu)下,僅憑100行核心代碼輕松解決SWE-bench上65%的問題。
這個65%是啥水平呢?
也就和原版差不多吧~(關(guān)鍵人家還輕量啊)
網(wǎng)友:厲害
百行代碼,實力不打折
SWE-agent是一個開源項目(16.8kGitHubStar),它的目標(biāo)是讓agent自動修復(fù)GitHub上真實項目中的代碼Bug
不過,原版的SWE-agent基于LangChain構(gòu)建,從接受issue、理解問題、編輯代碼、到提交PR,涉及多工具、多輪對話管理,任務(wù)流程繁瑣。
除此之外,開發(fā)者要跑通還需要安裝多個依賴,精調(diào)工具調(diào)用邏輯,而且項目代碼動輒上千行,對模型、環(huán)境的耦合也比較強。
而隨著語言模型性能越來越強大,構(gòu)建一個有用的代理已經(jīng)不再需要這些工具和接口了。
由此,團隊開始思考:能否讓SWE-agent小100倍,并保持原有的性能。
mini-SWE-agent由此而來。
那么,相較于SWE-agent,mini-SWE-agent有什么不同呢?
極簡代碼和依賴:mini-SWE-agent本身僅約100行Python代碼,加上環(huán)境、模型、腳本才共約200行,沒有復(fù)雜的依賴關(guān)系。
取消工具調(diào)用接口:mini版本不集成專用的代碼編輯、搜索等工具;它只使用操作系統(tǒng)的Bash環(huán)境執(zhí)行命令。每一步由語言模型輸出一個完整的shell命令,不通過獨立的“toolcall”協(xié)議,從而可兼容任何語言模型。
線性歷史記錄:agent的每一步都只是附加到消息中。
獨立單步執(zhí)行:每條命令通過Python獨立執(zhí)行,并非保持一個持續(xù)的shell會話,這使得在沙盒中執(zhí)行操作變得非常簡單,并且可以輕松擴展。
簡化配置與接口:取消了SWE-agent依賴的復(fù)雜YAML配置;mini-swe-agent采用代碼內(nèi)置模板,并提供直觀的命令行工具。用戶可以通過mini命令快速啟動代理,或使用mini-v啟動可視化界面。
多樣的運行環(huán)境支持:除了本地Shell,mini-swe-agent還內(nèi)置支持多種容器與虛擬化環(huán)境(如Docker、Podman、Singularity、Apptainer等),這意味著開發(fā)者可以在不同平臺和容器中輕松部署,而無需額外修改代碼。
保留高性能和工具:雖然架構(gòu)極簡,mini-swe-agent在SWE-bench驗證集上仍能解決約65%的問題。同時,它附帶批量推理(batchinference)、軌跡瀏覽器(trajectorybrowser)等工具,幫助用戶進行大規(guī)模評測和決策分析。代理還提供可視化界面,方便開發(fā)者交互式地觀察執(zhí)行過程
此外,對于應(yīng)在何種場景下使用SWE-agent或mini-SWE-agent,團隊也根據(jù)不同的需求給出了建議:
mini-swe-agent更適合希望快速本地運行、追求簡潔控制流和更穩(wěn)定評估環(huán)境的用戶。它非常輕量,適合用于微調(diào)(FT)或強化學(xué)習(xí)(RL)等實驗,不容易陷入對復(fù)雜框架的過擬合。
如果你需要高度可配置的工具鏈、更復(fù)雜的歷史狀態(tài)管理,或希望通過修改YAML文件自由切換組件而無需動代碼,那么功能更豐富的SWE-agent會是更合適的選擇。
總體而言,mini-swe-agent體現(xiàn)了可讀、方便、易擴展的開發(fā)理念。
對于日常開發(fā)者而言,它既可以作為簡單的命令行工具使用。如在本地終端快速解決問題),也可以作為庫被集成到其他Python應(yīng)用中。
相比于重型框架,它降低了上手成本,讓開發(fā)者可以像使用腳本一樣靈活地“駕馭”智能代理。
Onemorething
SWE-bench和SWE-agent是由JohnYang、CarlosE.Jimenez、AlexanderWettig、KilianLieret、姚順雨(OpenAI研究員,2015年畢業(yè)清華姚班)、KarthikNarasimhan和OfirPress于2024年在普林斯頓大學(xué)發(fā)起的開源項目。
該項目推動了基于大型語言模型的軟件工程代理(SoftwareEngineeringAgent)研究。
其中,SWE-bench一經(jīng)發(fā)布后,就成為了評估大語言模型編程的經(jīng)典benchmark,伴隨SWE-agent一同提出的Agent?Computer-Interface(ACI)則進一步定義了“智能體如何與計算機交互”的標(biāo)準(zhǔn)接口方式。
而這一杰出的想法最初僅僅來自一次20多分鐘的討論。
在MatthewBerman的播客節(jié)目上,CarlosE.Jimenez分享道:SWE-bench最初的想法源自他和JohnYang在閑逛時的一次頭腦風(fēng)暴:
他們意識到,GitHub不只是一個存儲代碼的地方,更是一個活躍的協(xié)作開發(fā)平臺,充滿了真實的軟件工程過程:用戶報告bug,開發(fā)者提交修復(fù),社區(qū)公開審核和合入。
相比傳統(tǒng)的編程競賽,這些交互和修改才是真正代表“現(xiàn)實世界編程”的任務(wù)。于是他們設(shè)想,能否把這種開源協(xié)作的過程結(jié)構(gòu)化下來,變成一種評估語言模型能力的標(biāo)準(zhǔn)流程?
這便催生了SWE-bench,一個基于GitHub上真實Issue與PullRequest構(gòu)建的benchmark,用來測試LLM是否能像人類開發(fā)者一樣,理解bug報告并修復(fù)代碼。
這個系統(tǒng)不僅更接近現(xiàn)實,也讓模型的“開發(fā)能力”變得可觀察、可比較,而SWE-agent則是他們?yōu)檫@一評估任務(wù)設(shè)計的開源agent,目標(biāo)就是成為能在SWE-bench上“修最多bug”的AI程序員。
項目主頁:[1]https://github.com/SWE-agent/mini-swe-agent[2]https://github.com/SWE-agent/mini-swe-agent?tab=readme-ov-file
推薦寶藏作者青花燃的高質(zhì)量10本小說,上天遁地也要找到你
《直播之環(huán)球探險家》,作者網(wǎng)事隨瘋-。直播加尋寶,題材很有意思。目前以現(xiàn)實寶藏為主,能夠通過文字的形式,看看各類紀錄片也不錯。不知后期會不會加入冒險元素,寫一些傳說中的寶藏。玄幻類《詭異入侵》,作者犁天_-。創(chuàng)世的白金大神,有作品《不朽神王》《三界獨尊》《至高主宰》等,以寫無線文為主。如今無線文還有呢?
4本高嶺之花下神壇仙俠文,前世今生,天然直球司命vs腹黑仙君
4《替身關(guān)聯(lián)了女主的系統(tǒng)后》作者:枸杞黑烏龍咸魚牌小替身vs沙雕純情小金烏,穿書,女配茍命,仙俠修真文,輕松歡脫風(fēng)喬俏穿成了替身修仙文中的替身女配。按原劇情,替身在女主轉(zhuǎn)世回來后,在宗門地位一落千丈,最終黑化陷害女主,被女主追求者做成傀儡,在人魔大戰(zhàn)中死的渣都不剩|。喬俏穿來時,女主已經(jīng)回來有幫助請點贊_-。
9月1日起點新書上架:首訂最高12200,多位大神白金新作撲街
第七部、《深淵主宰》,作者:諸生浮屠,類別:游戲游戲異界,字數(shù):312.75萬(已完本)標(biāo)簽:穿越,重生,經(jīng)營,DND,殺伐果斷簡介:小說背景是混亂時空內(nèi)發(fā)生變異,神靈全部都失去了神力,被迫以圣者的身份降臨世間,迎來了最大的混亂時期,從此廝殺波及到了整個多元宇宙-。主角穿越到異世界,前身是一位半精靈,..
來源:紅網(wǎng)
作者:汪筱冰
編輯:巧發(fā)
本文為紅辣椒評論 原創(chuàng)文章,僅系作者個人觀點,不代表紅網(wǎng)立場。轉(zhuǎn)載請附原文出處鏈接和本聲明。