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,包括对结构化输出提取的支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目