跳到主要內容
AI News HubLIVE
站內改寫4 分鐘閱讀

Open SWE:用於內部編碼智能體的開源框架

文章摘要

Open SWE 是一個基於 Deep Agents 和 LangGraph 構建的開源框架,它捕捉了 Stripe、Ramp 和 Coinbase 等公司在內部編碼智能體方面的成功架構模式,提供了可定製的沙箱、工具集、編排和集成組件。

Open SWE:用於內部編碼智能體的開源框架
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

在過去一年中,許多工程組織都構建了內部編碼智能體,以協助開發團隊工作。Stripe 開發了 Minions,Ramp 構建了 Inspect,Coinbase 創建了 Cloudbot。這些系統通過 Slack、Linear 和 GitHub 等現有工作流集成,無需工程師採用新界面。儘管這些系統獨立開發,但它們都收斂於相似的架構模式:隔離的雲沙箱、精選工具集、子智能體編排以及開發人員工作流集成。這種趨同表明,在生產工程環境中部署 AI 智能體存在一些共同要求。

今天,我們發佈了 Open SWE,這是一個開源框架,以可定製形式捕捉了這些模式。Open SWE 基於 Deep Agents 和 LangGraph 構建,提供了我們在這些實現中觀察到的核心架構組件。如果你的組織正在探索內部編碼智能體,這可以作為一個起點。

生產部署中的模式

Stripe、Ramp 和 Coinbase 都構建了自己的內部編碼智能體。Kishan Dahya 撰寫了一篇精彩的文章,闡述了這些編碼智能體所做的不同架構決策。我們總結如下,然後深入探討 Open SWE 在這些維度上的表現。

  • 隔離執行環境:任務在專用雲沙箱中運行,擁有完全權限但受嚴格邊界限制。這隔離了任何錯誤對生產系統的影響範圍,同時允許智能體無需每次操作都請求批准即可執行命令。
  • 精選工具集:據 Stripe 工程團隊稱,他們的智能體可訪問約 500 個工具,但這些工具是經過精心挑選和維護的,而非隨時間累積。工具精選比數量更重要。
  • Slack 優先調用:這三個系統都將 Slack 集成作為主要界面,讓開發人員在現有的溝通工作流中工作,而無需切換到新應用程序。
  • 啓動時豐富上下文:這些智能體在開始工作前,會從 Linear 問題、Slack 線程或 GitHub PR 中拉取完整上下文,減少通過工具調用發現需求的開銷。
  • 子智能體編排:複雜任務會被分解並委派給專門的子智能體,每個子智能體擁有獨立的上下文和明確職責。

這些架構選擇已在多個生產部署中被證明有效,但組織可能需根據自身環境和需求調整具體組件。

Open SWE 的架構

Open SWE 提供了類似架構模式的開源實現。以下是框架與我們所觀察到的模式的映射:

  1. 智能體框架:基於 Deep Agents 構建:Open SWE 並未復刻現有智能體或從頭構建,而是基於 Deep Agents 框架組合而成。這種方法類似於 Ramp 的團隊在 OpenCode 基礎上構建 Inspect。組合提供了兩個優勢:升級路徑(當 Deep Agents 改進時,可整合改進而不必重建自定義內容)和無需復刻即可定製(可保留組織特定的工具、提示和工作流作為配置,而非修改核心智能體邏輯)。
  1. 沙箱:隔離雲環境:每個任務在自己的隔離雲沙箱中運行,這是一個具有完整 shell 訪問權限的遠程 Linux 環境。倉庫被克隆進去,智能體獲得完全權限,任何錯誤都被限制在該環境中。Open SWE 開箱即支持多種沙箱提供商:Modal、Daytona、Runloop、LangSmith,你也可以實現自己的沙箱後端。
  1. 工具:精選而非累積:Open SWE 附帶一組精選工具,包括執行 shell 命令、獲取網頁、API 調用、Git 提交和打開 PR、更新 Linear 工單、回覆 Slack 線程,以及 Deep Agents 的內置工具。精心挑選的小型工具集更易於測試、維護和推理。當需要為組織添加額外工具時(內部 API、自定義部署系統、專用測試框架),可以顯式添加。
  1. 上下文工程:AGENTS.md + 源上下文:Open SWE 從兩個來源收集上下文。AGENTS.md 文件(如果倉庫根目錄存在)會被讀入沙箱並注入到系統提示中,編碼每個智能體運行應遵循的約定、測試要求、架構決策和團隊特定模式。源上下文:完整的 Linear 問題(標題、描述、評論)或 Slack 線程歷史會在智能體啓動前組裝並傳遞給智能體,無需額外工具調用即可提供任務特定上下文。這種雙層方法平衡了倉庫範圍的知識與任務特定信息。
  1. 編排:子智能體 + 中間件:Open SWE 的編排結合了兩種機制。子智能體:Deep Agents 框架支持通過任務工具生成子智能體。主智能體可以將獨立的子任務委派給隔離的子智能體,每個子智能體擁有自己的中間件棧、待辦事項列表和文件操作。中間件:確定性中間件鈎子在智能體循環周圍運行,例如在模型調用前注入後續消息、自動打開 PR 的 safety net、以及工具錯誤處理。這種智能體(模型驅動)與確定性(中間件驅動)編排的分離有助於平衡可靠性與靈活性。
  1. 調用:Slack、Linear 和 GitHub:Open SWE 遵循 Slack 作為主要調用界面的模式。在 Slack 中,@機器人 可在任何線程中提及,支持 repo:owner/name 語法指定倉庫。在 Linear 中,在問題上評論 @openswe 即可觸發。在 GitHub 中,在 PR 評論中標記 @openswe 可處理審查反饋。每次調用創建一個確定性線程 ID,後續消息路由到同一正在運行的智能體。
  1. 驗證:提示驅動 + 安全網:智能體被指示在提交前運行 linter、格式化程序和測試。open_pr_if_needed 中間件作為後備,如果智能體完成而未打開 PR,則自動處理。可以通過添加確定性 CI 檢查、視覺驗證或審查門控來擴展驗證層。

為何選擇 Deep Agents

Deep Agents 提供了使此架構可組合且可維護的基礎。上下文管理:長時間運行的編碼任務可能產生大量中間數據,Deep Agents 通過基於文件的存儲處理,將大型結果卸載而不是保留在對話歷史中,有助於防止上下文溢出。規劃原語:內置的 write_todos 工具提供了一種結構化的方式來分解複雜工作、跟蹤進度並根據新信息調整計劃。子智能體隔離:當主智能體通過任務工具生成子智能體時,該子智能體獲得自己的隔離上下文,不同子任務不會互相污染對話歷史。中間件鈎子:允許在智能體循環的特定點注入確定性邏輯,例如消息注入和自動 PR 創建。升級路徑:由於 Deep Agents 作為獨立庫積極開發,上下文壓縮、提示緩存、規劃效率等改進可以流入 Open SWE,無需重建自定義內容。

為你的組織定製

Open SWE 旨在作為一個可定製的基礎,而非成品。每個主要組件都是可插拔的:沙箱提供商、模型、工具、觸發器、系統提示和中間件。定製指南詳細介紹了每個擴展點並提供示例。

與內部實現的比較

下表展示了 Open SWE 與 Stripe(Minions)、Ramp(Inspect)和 Coinbase(Cloudbot)在公開信息基礎上的對比。核心模式相似,差異在於實現細節、內部集成和組織特定工具。

開始使用

Open SWE 現已託管在 GitHub 上。安裝指南指導你完成 GitHub 應用創建、LangSmith 設置、Linear/Slack/GitHub 觸發器和生產部署。定製指南展示如何為你的組織更換沙箱、模型、工具、觸發器、系統提示和中間件。該框架採用 MIT 許可,你可以復刻、定製並在內部部署。如果你在其基礎上構建了有趣的內容,我們很樂意聽取你的反饋。

多個工程組織已成功在生產中部署內部編碼智能體。Open SWE 提供了類似架構模式的開源實現,旨在適用於不同的代碼庫和工作流。我們仍在瞭解不同環境下的最佳實踐,但該框架為探索此方法的團隊提供了一個起點。

展開要點與分析

文章情報

工程師進階

要點

  • Open SWE 集成了隔離的雲沙箱、精選工具集、子智能體編排和 Slack/Linear/GitHub 觸發方式。
  • 框架基於 Deep Agents 構建,支持輕鬆升級和定製。
  • 提供了與 Stripe 的 Minions、Ramp 的 Inspect 和 Coinbase 的 Cloudbot 的架構對比。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。