OpenDevin出技術報告了,大模型Agent開發者必讀

机器之心發表於2024-08-02
熱門通用大模型 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 搜尋的功能,使得智慧體能夠更好地解決複雜的多步驟問題。

圖片

瞭解更多結果,請參考原論文。

相關文章