mattpocock/sandcastle

Orchestrate sandboxed coding agents in TypeScript with sandcastle.run()

解決的問題

Sandcastle 提供了一種在隔離環境中執行 AI 程式設計代理的安全且自動化的方式。它在防止代理對主機進行不受限制存取的同時,實現了開發週期中繁瑣部分的自動化,例如建立 git 分支、管理沙箱以及將變更合併回主程式碼庫。

工作原理

該函式庫負責編排 AI 代理的工作生命週期。當使用者呼叫代理時,Sandcastle 會建立一個隔離的沙箱(使用 Docker、Podman 或 Vercel 等提供者)並分配特定的 git 分支策略。代理在此沙箱內執行其程式設計任務;完成後,Sandcastle 會收集代理所做的提交並將其合併回主機儲存庫。

適用對象

專為構建 AI 驅動的程式設計工作流的開發者設計,例如並行化的代理任務、自動程式碼審查流水線或用於程式設計代理的自定義編排工具。

亮點

  • 與提供者無關的沙箱化:內建對 Docker、Podman 和 Vercel 的支援,並具備建立自定義提供者的能力。
  • 分支管理:自動處理代理產生的提交之分支建立與合併。
  • 靈活的執行:支援透過 run() 進行單次執行,或透過 createSandbox() 使用可重用的熱沙箱,以避免重複的容器啟動成本。
  • 生命週期鉤子:允許在設定期間在主機與沙箱內部執行自定義 shell 命令。
  • 可程式化 API:提供用於整合至 CI 流水線與腳本的 TypeScript API,包括對結構化輸出提取的支援。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案