mattpocock/sandcastle
AI 工程用 TypeScript 在可配置沙箱中编排 AI 编程代理,并把分支提交合并回来。
项目介绍
Sandcastle 是一个用 TypeScript 编排 AI 编程代理的库。调用 sandcastle.run() 后,Sandcastle 按可配置的分支策略创建隔离沙箱,再把代理在各分支上产生的提交合并回来。它不绑定特定供应商:自带基于操作系统进程沙箱的原生方案(Linux/WSL2 用 Bubblewrap,macOS 用 Seatbelt)、Docker 与 Podman 的镜像方案,以及 Daytona、E2B、Fly.io Sprites、Modal、Vercel 等云方案,也支持自定义。适合并行运行无人值守代理、搭建审查流水线,或管理自建代理 README lines 9–18。
快速使用
官方入门指南给出前置条件和快速开始;完整的文档位于 docs/guide,每个主要术语都收录在术语表中 README lines 19–34,文档也发布在 aihero.dev/sandcastle。README 没有给出安装命令和完整的 run() 示例,请按入门指南操作,不要自行推测调用签名。API 细节可查 run() 与 createSandbox()和 CLI 命令。
其他文档页覆盖沙箱提供方、分支策略、代理提供方、代理会话、迭代、结构化输出、提示词、钩子、初始化和运行日志。
开发构建
如果要参与库本身的开发,先安装依赖,再构建、测试和类型检查 README lines 35–43:
npm install
npm run build # 用 tsup 打包
npm test # 用 vitest 跑测试
npm run typecheck
使用约束
项目使用 TypeScript 编写,采用 MIT 许可证 README lines 44–46。沙箱行为取决于所选提供方:原生沙箱依赖宿主操作系统的机制,Docker、Podman 和云提供方则各有运行时和账号要求。代理行为取决于所选的代理提供方和会话配置。README 未说明支持的 TypeScript 或 Node 版本、除所列沙箱后端以外的平台范围,以及云提供方的费用影响。
HotRepo 点评
在 2026-11-03 的 TypeScript 日榜上,Sandcastle 记录到 8,802 星、941 个 fork,当日新增 28 星,位列该语言榜第 12 名。这只是一个快照,不是趋势序列,也没有全语言日榜名次记录。技术上看,它的抽象位于沙箱与分支这一层,而不是绑定某一家代理厂商,因此跨提供方并行跑代理、搭建审查流水线是可行的;代价是要沿用所选沙箱和代理提供方的配置方式与成本结构。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。