如何通过 Proliferate 在隔离的 git 树中运行多个 AI 代理
最近发现自己陷入了一个恼人的日常:你打开终端中的 Claude Code 来重写一个模块,同时用 Cursor 修复样式,还在第三个标签页中运行一个本地的 Codex 来进行测试重构。结果就是工作副本一片混乱:分支相互覆盖,未提交的文件被覆盖,对话上下文在不同窗口间丢失。
proliferate-ai 的开发者们尝试将这个混乱的环境打包成一个统一的环境。他们的项目叫做 Proliferate。这是一个开源的开发环境(AI IDE),可以并行启动不同的编码代理,并将每个代理隔离在独立的 git worktree 中。

底层原理以及为什么需要 worktree
这个项目的核心概念是并行工作。当你给 AI 代理分配任务时,你不想等它完成生成和测试运行后再去处理下一个工单。同时,在单一工作目录中运行多个代理是危险的:它们必然会相互覆盖彼此的更改。
Proliferate 用 Git 内置工具解决了这个问题。每个子任务都有自己独立的 git worktree,包含独立的分支、隔离的终端、对话历史和代码审查界面。
你可以同时让 Claude Code 关闭一个后端 bug,而 OpenCode 或 Grok 在下一个窗口中编写集成测试。它们操作的是同一个仓库,但物理上位于不同的文件夹中,互不干扰。
支持的引擎和工具
Proliferate 不强制使用单一模型或供应商。它内置了一套针对流行引擎的原生包装器:
- Claude Code
- OpenAI Codex
- OpenCode
- Cursor
- Grok
该平台使用这些工具的原生接口,而不是发明自定义提示格式。如果你已经有订阅或配置好的 API 密钥,可以将它们连接到统一的仪表板。
该项目还包含 MCP(Model Context Protocol)支持、浏览器集成和系统访问(Computer Use)。工具设置在项目级别配置一次,之后任何连接的代理都可以使用它们。
另一个有趣的功能是嵌套子代理。主代理可以将一部分工作委托给子进程,等待结果,然后继续构建项目。
自动化和工作流程
除了手动启动聊天,还有工作流程部分。这是指根据计划或事件触发代理运行。
例如,你可以设置一个夜间审查运行:代理会浏览当天更改的文件,查找回归问题,然后将报告放到一个独立的分支中。或者将触发器附加到监控警报上,这样代理会立即克隆包含错误的分支并开始定位故障。
这个项目还很新(GitHub 上刚刚超过 300 颗星),但功能看起来考虑得很周全,特别是对于那些厌倦了在十个终端之间切换的团队来说。
如何部署和试用
Proliferate 的客户端部分使用 Rust 和 Tauri 构建,Web 界面基于 Node.js 22。后端控制面板使用 Python 编写,配合 uv 包管理器和 PostgreSQL 数据库。
代码库在 AGPL-3.0 许可证下开源。服务器部分可以通过 Docker Compose 完全部署在你自己的基础设施上,或部署在云端。
从源码构建桌面应用程序
如果你想本地试用客户端,需要安装 Rust、Node.js 22 和 pnpm。
# Клонируем репозиторий и ставим зависимости
git clone https://github.com/proliferate-ai/proliferate.git
cd proliferate
make install
make dev-local
运行完整的开发栈
需要 Docker 来使用本地数据库和完整的后端:
make server-install
make setup PROFILE=main
make build
make run PROFILE=main
仓库中有一个现成的模板 server/deploy/.env.production.example,包含连接供应商和配置身份验证所需的所有环境变量。对于生产服务器,作者提供了一个现成的 docker-compose 文件,使用 Caddy 作为反向代理。
这个项目现在对谁有用
对于那些每天只用一次自动补全、写几行代码的人来说,Proliferate 可能没有必要。普通的编辑器插件就能很好地处理这些。
但如果你积极地将代码生成工作委托给 Claude Code 这样的 CLI 工具,并且并行运行多个任务,那么隔离的 git worktree 概念将节省大量精力。你会得到一个可视化的看板板,上面有各个代理,每个进程都有自己的终端、清晰的 diff 和明确的执行状态。
这个项目正在积极更新,肯定会发现各种 bug,但通过 worktree 的架构方法比在终端中手动切换分支要可靠得多。
相关项目