OpenDevin出技術報告了,大模型Agent開發者必讀
今年 3 月,「全球首位 AI 軟件工程師」Devin 引爆了 AI 圈。與此前 AI 編程助手不同的是,Devin 并不只是輔助編程的角色,而是能夠獨立地、端到端地完成整個開發項目。
Devin 的出世讓我們領略了大模型 Agent 的強大能力。很快,業界就出現了眾多嘗試復刻它的開源項目,其中 OpenDevin 脫穎而出,受到了人們最多的關注。
OpenDevin 是一個開發通過軟件與世界互動的通用智能體的平臺,其特點包括:
- 大模型 Agent、接口和環境之間交互的交互機制;
- Agent 可用的沙盒操作系統 + Web 瀏覽器環境;
- 可創建和執行代碼的接口;
- 多 Agent 支持;
- 評估框架。
目前,OpenDevin 的 GitHub 已經獲得了超過 2.9 萬 Star 量。
近日,OpenaDevin 團隊發布了該工具的技術報告。
報告地址:https://arxiv.org/pdf/2407.16741
在技術報告中,OpenDevin 的作者,來自伊利諾伊大學香檳分校、卡耐基梅隆大學等機構的學者們詳細介紹了 OpenDevin,這是一個社區驅動的平臺,旨在開發通過軟件與世界交互的通用和專業 AI Agent。
更重要的是,OpenDevin 不僅是一個概念框架,它還包括一個全面且可立即使用的 Agent、環境和評估實現。截至本報告發布時,OpenDevin 包含一個 Agent 中心,其中已實現 10 多個智能體,包括一個基于 CodeAct 架構實現的強大的通用智能體,并增加了用于 Web 瀏覽和代碼編輯功能。用戶與智能體的交互是通過聊天界面實現的,該界面可視化智能體當前操作并允許實時反饋。此外,評估框架目前支持 15 個基準,可使用它們來評估智能體性能。
OpenDevin 架構
本文中,作者從以下幾個方面描述 OpenDevin:(1)如何定義和實現智能體;(2)動作執行如何促進觀察;(3)如何管理和擴展智能體常用的技能;(4)如何將多個智能體組合在一起以解決任務。
如何定義和實現智能體
智能體可以感知環境狀態,并在解決用戶指定的任務時生成要執行的操作。
狀態和事件流。在 OpenDevin 中,狀態是一種數據結構,它封裝了智能體執行任務的所有相關信息。此狀態的一個關鍵組成部分是事件流,是按照時間順序收集過去的動作和觀察。
動作。受 CodeAct 的啟發,OpenDevin 通過一組核心的動作將智能體與環境連接起來。動作 IPythonRunCellAction 和 CmdRunAction 使智能體能夠在沙盒環境(例如,安全隔離的 Linux 操作系統)內執行任意 Python 代碼和 bash 命令。而 BrowserInteractiveAction 支持智能體與 Web 瀏覽器交互。
觀察。觀察描述了智能體觀察到的環境變化。它可能由智能體的動作引起,也可能不是:它可以是 1) 用戶提出的自然語言指令,2) 智能體先前動作的執行結果(例如,代碼執行結果等)。
實現新的智能體。智能體設計簡單但功能強大,從而允許用戶輕松創建和定制用于各種任務的智能體。核心在于 step 函數,它將當前狀態作為輸入并根據智能體的邏輯生成適當的動作。圖 2 顯示了智能體抽象的簡化示例代碼。
觀察動作執行結果
Agent Runtime 為智能體提供了與人類軟件開發人員相當的動作空間,使 OpenDevin 能夠處理各種軟件開發和基于 Web 的任務,包括復雜的軟件開發工作流程、數據分析項目、Web 瀏覽任務等。它允許智能體訪問 bash 終端來運行代碼和命令行工具,利用 Jupyter notebook 即時編寫和執行代碼,并與 Web 瀏覽器交互以執行基于 Web 的任務(例如,信息搜索)。
可擴展的智能體 - 計算機接口
作者構建了一個 AgentSkills 庫,這是一個旨在增強智能體功能的工具箱,能夠提供基本 bash 命令或 python 代碼無法輕松獲得的實用程序。
多智能體交互
OpenDevin 允許多個智能體進行交互。為了實現這一目標,作者使用了一種特殊的動作類型 AgentDelegateAction,它允許智能體將特定的子任務委托給另一個智能體。
評估
本節將 OpenDevin (以下實驗結果中簡寫為 OD)與開源可復現的基線方法進行了比較。這 15 個基準涵蓋軟件工程、網頁瀏覽等任務。
表 3 表明,雖然 OpenDevin 智能體可能無法在每個類別中都達到最佳性能,但其設計考慮了通用性。
表 4 報告了智能體在軟件工程基準上的結果。
具體而言:
SWE-bench 旨在評估智能體解決 GitHub 問題的能力,如 bug 報告或功能請求。如表 4 所示,本文最新版本的 CodeActAgent v1.8 ,基于 claude-3.5-sonnet,與其他專門用于軟件開發的開源智能體相比,解決問題率高達 26%。
HumanEvalFix。OpenDevin CodeActAgent 成功修復了 Python 拆分中 79.3% 的錯誤,明顯優于所有非智能體方法,幾乎是 StarCoder2-15B 性能的兩倍。
基于 GPT-4o 的 OpenDevin 智能體在 ML-Bench 上實現了 76.47% 的最高成功率,優于 SWE-Agent(42.64%)。
Gorilla APIBench 考察智能體使用 API 的能力。使用 GPT-4o 的 OpenDevin 的成功率為 36.4%,優于未針對 API 調用進行專門微調的基線。
ToolQA 評估智能體使用外部工具的能力。與所有基線相比,采用 GPT-4o 的 OpenDevin 表現出最高的性能。智能體在與 CSV 和數據庫工具使用相關的任務上表現更好,但在數學和計算器工具使用方面需要改進。
表 5 報告了網頁瀏覽基準的評估結果。
表 6 報告了各種輔助基準的結果。
其中,GAIA 用于評估智能體解決一般任務的能力,結果顯示,智能體在 GAIA 上取得了 32.1 分,比原來的 AutoGPT 有了明顯的提高。
GPQA 用于評估智能體在解決具有挑戰性的研究生水平問題時協調使用工具的能力。結果如表 6、7 所示,OpenDevin 集成了支持多種工具使用以及 web 搜索的功能,使得智能體能夠更好地解決復雜的多步驟問題。
了解更多結果,請參考原論文。