桃子桃子快讯
返回首页
工具

DiscoBox:为 AI 编程代理打造的一次性沙箱环境

DiscoBox 让 Claude Code、Codex、OpenCode 等编程代理在独立沙箱中运行,每个沙箱拥有源码…

2026.09.23 · 周三4 分钟阅读

DiscoBox 是一款专为 AI 编程代理设计的一次性沙箱工具,目前已支持 Claude Code、Codex 与 OpenCode 等主流终端代理。它让每个代理会话运行在独立环境中,互不干扰,开发者的本地工作区始终保持干净。

核心思路:每个代理一个独立沙箱

传统做法让多个 AI 代理共用同一份本地代码库时,往往会出现文件冲突、分支抢占、端口与数据库资源争用等问题。DiscoBox 的解法非常直接:每个代理克隆出一份独立的源码副本,各自拥有独立的 git 仓库、服务和 Docker 实例。开发者可以在同一仓库上并行启动 bug 修复、新功能开发甚至可丢弃的实验,同时继续在自己的 checkout 中工作。

基于 Git 的同步机制

DiscoBox 没有引入额外的同步层,依赖原生 git 完成代码流转:

  • 沙箱从开发者本地仓库(指定 commit)克隆出一份副本,工作树中的未提交改动会被询问后带入。沙箱内的 origin 是只读的,代理无法直接推回开发者机器。
  • 代理在沙箱内完成提交后,开发者可以执行 discobox apply 把这些提交以 cherry-pick 方式合并回本地当前分支,保留原 commit 的作者、消息与边界。
  • 也可以直接在沙箱内执行 git push 并通过 gh 发起 Pull Request,提交方式与本地开发完全一致。
  • 沙箱之间彼此不可见,它们的工作统一汇聚到开发者的本地仓库;一旦某个沙箱的结果被 apply,其他沙箱可通过 git fetch && git rebase 拿到这部分改动继续构建。

冲突解决也发生在沙箱内:代理在沙箱里处理完毕后,开发者再 apply 重新 base 后的结果,合并压力始终留在沙箱一侧。

接入方式与编辑器支持

  • 终端与 SSH:内置 TUI 界面,discobox shell 即可进入;创建沙箱时自动同步 SSH 配置,ssh $DISCOBOX_ID 或按沙箱名直接连接均可使用。
  • 编辑器与工具:提供 discobox tools vscodediscobox tools zed 等命令在沙箱工作目录中打开对应编辑器;也支持通过 .discobox/tools 中的 YAML 或 front-matter 脚本声明自定义工具。任何支持 SSH 远程协议的编辑器都可直连。
  • 桌面与浏览器:可通过 VNC 或 noVNC 加端口转发访问沙箱的图形桌面与浏览器,便于需要 GUI 的代理任务。
  • 工具链:direnv 会自动加载项目声明的环境,包括 Nix 或 mise 配置。
  • 自动化:CLI 与 OpenAPI 接口支持脚本化创建沙箱、授权凭证与回收结果。

安装与运行

DiscoBox 目前仍在积极开发中,支持 macOS、Linux 与 Windows。

  • macOS / Linux(Homebrew):brew install discobox-ai/tap/discobox
  • macOS / Linux(一键脚本):curl -sSfL https://discobox.ai | sh
  • Windows(PowerShell):irm https://discobox.ai/install.ps1 | iex

安装完成后,在仓库根目录下执行 discobox 即可打开启动器创建沙箱;代理完成提交后回到原仓库执行 discobox apply 即可把改动合并回来。

隔离与凭证管理

DiscoBox 同时使用虚拟机与容器进行隔离,代理可以在沙箱内自由安装软件包与运行命令而无需审批。其凭证机制设计为:开发者把 Git 托管平台 token 以 secret 形式传入,或由代理请求授权后由人工授予,沙箱内只持有占位符,避免长期凭证泄露风险。

对于运行在远端机器上的沙箱,客户端会在开发者保持连接时把新提交推入沙箱,需要时也可通过 discobox push 主动同步,确保远端沙箱始终基于最新代码工作。

信源