Sandcastle 是一個用於編排沙盒 AI 程式開發 Agent 的 TypeScript 函式庫
AI 中文摘要Claude 生成
Sandcastle 是一個用於編排沙盒 AI 程式開發 Agent 的 TypeScript 函式庫。
Sandcastle 是一個專為解決 AI 程式開發 Agent 在隔離環境中平行執行困難而設計的 TypeScript 函式庫,透過 Docker 容器與 Git 工作樹 (worktree) 架構,實現了 100% 本地化的自動化開發流程。
核心架構與運作機制
Sandcastle 的設計核心在於簡化 Agent 的執行與管理,其運作機制如下:
- 工作樹架構:利用 Git 工作樹在主機上建立隔離環境,並透過 Docker 進行綁定掛載 (bind-mount),讓 Agent 直接寫入主機檔案系統,無需額外的同步操作。
- 自動化合併:執行完成後,系統會自動將 Agent 在臨時分支上的提交合併回目標分支,並清理工作樹。
- 程式開發 Agent 支援:透過
sandcastle.run()函數,使用者可以輕鬆呼叫 Agent,並設定maxIterations(最大迭代次數)、model(模型選擇)及hooks(生命週期鉤子)等參數。
靈活的提示詞系統
Sandcastle 提供了一套不預設工作流或任務管理的靈活提示詞系統,讓開發者能高度自訂 Agent 行為:
- 動態上下文:支援在提示詞中使用
!command語法,在執行前透過 shell 指令動態獲取外部資訊(如 GitHub issues 或 Git log)。 - 參數注入:透過
{{KEY}}佔位符注入自訂參數,並內建{{SOURCE_BRANCH}}與{{TARGET_BRANCH}}等變數,確保 Agent 在正確的分支環境下運作。 - 提前終止機制:支援設定
completionSignal,當 Agent 輸出特定字串(預設為<promise>COMPLETE</promise>)時,即可提前結束迭代循環。
開發者體驗與配置
為了降低使用門檻,Sandcastle 提供了完整的 CLI 工具與模板系統:
- 初始化與模板:執行
sandcastle init可快速建立.sandcastle/配置目錄,並提供blank、simple-loop、sequential-reviewer及parallel-planner等四種預設模板,涵蓋從簡單任務到複雜程式碼審查的各類工作流。 - 環境隔離:透過自訂
.sandcastle/Dockerfile,開發者可以精確控制沙盒環境,確保 Agent 擁有執行任務所需的正確依賴與配置。 - 生命週期管理:支援
onSandboxReady鉤子,允許在掛載後自動執行如npm install等初始化指令,確保環境準備就緒。
I couldn't find a great, simple framework for parallelising sandboxed coding agents.
— Matt Pocock (@mattpocockuk) April 1, 2026
So, I built one. It's called sandcastle.
This `run()` function:
- Creates a worktree
- Runs a sandboxed coding agent (on Docker)
Super powerful, super-simple, 100% local pic.twitter.com/2H7m8u9yDF
I'd love to know what you think:https://t.co/dUVD3rF2uC
— Matt Pocock (@mattpocockuk) April 1, 2026
