mattpocock/sandcastle
Orchestrate sandboxed coding agents in TypeScript with sandcastle.run()
解决的问题
Sandcastle 是一个 TypeScript 库,旨在在隔离沙盒中编排 AI 编码代理。它通过在容器中运行代理,防止其对宿主系统进行不受控的更改,同时自动化管理 git 分支并将更改合并回主代码库的流程。
运作方式
Sandcastle 使用 SandboxProvider 系统来创建隔离环境。它支持 Docker、Podman 和 Vercel 的内置提供者,并允许创建自定义提供者。当通过 sandcastle.run() 调用代理时,该库会处理沙盒化、应用可配置的分支策略以隔离更改,并将产生的提交合并回宿主。
适用对象
它适用于构建 AI 驱动编码工作流的开发者,例如并行化多个“AFK”代理、创建自动化审查流水线,或编排复杂的多代理序列(例如:实现代理后接审查代理)。
特色亮点
- 与提供者无关的沙盒化:内置支持 Docker、Podman 和 Vercel,并提供在本地开发时无需沙盒的选项。
- 灵活的分支管理:可配置的策略来管理代理更改的提交与合并方式。
- 可重复使用的沙盒:
createSandbox()API 允许在单个预热容器内运行多个代理或迭代,以避免启动开销。 - 生命周期钩子:支持宿主和沙盒端的钩子,以便在代理启动前运行设置命令(如
npm install)。 - 程序化控制:完整的 JS API,可集成至脚本、CI 流水线和自定义工具中。
相关
- 项目
- 项目
- 项目
- 项目
- 项目