并行 AI 编码 Agent 实战:用 AWF 在隔离 Docker 工作区中安全协作
场景:当多个 AI Agent 同时写代码
想象一下这个场景:你的项目需要同时完成三个功能——修复一个安全漏洞、添加一个新 API 端点、重构一个老旧模块。你启动了三路 AI 编码 Agent(Claude Code、Codex、Gemini CLI)同时开工。但很快你发现:
- Agent A 修改了
package.json,Agent B 也修改了同一文件,产生冲突 - Agent C 启动了一个数据库容器,占用了 Agent A 想要的端口
- 三个 Agent 共享本地
node_modules,依赖版本被打乱 - PR 提交后,B 的代码变成了 stale,C 的代码无法通过 CI
这不是 Agent 能力的问题——是工作区隔离的问题。单个 Agent 能写代码不稀奇,但让多个 Agent 安全地并行工作而不踩到彼此的脚,才是规模化 AI 编码的真正瓶颈。
AWF:Agent 工作区编排基板
Agent Workspace Fabric(AWF)是一个开源的工作区编排工具,专门为并行 AI 编码 Agent 场景设计。它给每个 Agent 分配一个独立的 Docker 工作区,包含隔离的文件系统、服务栈和凭据环境,并通过一个控制面板统一管理 16 步生命周期。
| 特性 | 说明 |
|---|---|
| 协议 | Apache-2.0,Python 实现 |
| 状态 | Alpha(本地可用,云部署待推出) |
| Agent 支持 | Codex、Claude Code、Cursor、Gemini CLI、OpenCode、Grok |
| 客户端接口 | REST API、CLI、MCP Server |
| 核心能力 | 每个 Agent 独立 Docker 工作区 + 完整 PR 生命周期管理 |
快速上手:5 分钟启动 AWF
AWF 提供三种安装方式,推荐使用 uv tool 安装:
uv tool install agent-workspace-fabric pipx install agent-workspace-fabric git clone https://github.com/dimileeh/agent-workspace-fabric.git cd agent-workspace-fabric uv tool install . --force
安装后,一键启动本地控制面板:
awf setup awf start
awf start 会启动本地 API、工作进程、数据库和 Web 控制台(默认 http://127.0.0.1:3000),你可以在浏览器中看到所有 Agent 工作区的运行状态。
接着,将你的项目注册到 AWF:
awf init /path/to/your/project --write-profile --yes awf smoke run --project /path/to/your/project --mocked-local --format pretty
awf smoke 命令会执行一次模拟运行,验证项目配置是否正确。如果一切顺利,绿色输出意味着你的项目已准备就绪。
核心工作流:16 步 Agent 生命周期
AWF 将一个编码任务转化为一个可观测、可恢复的 16 步生命周期。工作区操作通过三种客户端接口完成:CLI(主要用于服务管理和初始化)、REST API(程序化调用)和 MCP 工具集(Agent 原生调用)。
启动服务与初始化
awf setup awf start awf service status --format pretty awf init /path/to/your/project --write-profile --yes awf smoke run --project /path/to/your/project --mocked-local --format pretty
awf start 会在本地启动 API 服务、工作进程、数据库和 Web 控制台(地址 http://127.0.0.1:3000)。在该控制台中,你可以查看所有工作区的运行状态、资源使用情况和工作区事件日志。
创建和管理工作区
工作区通过 MCP 工具或 REST API 创建。如果你使用 Claude Code 或 Codex,可以通过 MCP 集成直接在工作区中启动编码任务:
每个工作区的完整生命周期如下:
- 在工作区数据库中创建一行记录
- 从请求的基础分支创建一个隔离的
git worktree - 解析工作区配置文件(描述项目运行时环境)
- 生成并启动专属的 Docker Compose 栈
- 执行 Profile 定义的初始化阶段
- 可选:AWF 自有的 Plan → Execute → Compare 迭代
- 在容器内运行选定的编码 Agent
- 执行验证阶段和自定义检查命令
- 提交、推送并创建 PR
- 监控 PR 直到合并、关闭或失败
- 收到评论后重新唤醒 Agent 处理
- CI 失败时获取日志并修复
- 基础分支更新时同步到 PR 分支
- 给 Reviewer 一个初始审查缓冲期
- 所有门禁通过后自动合并
- 清理成功的任务,保留失败的用于排查
Agent 适配器:一个控制面板管所有
AWF 最实用的设计之一是Agent 适配器。它内置了 6 个主流 AI 编码 Agent 的适配器:
| Agent | 适配方式 | 特点 |
|---|---|---|
| Codex | 原生 CLI | 标准行为 |
| Claude Code | Claude CLI | 默认使用 |
| Cursor | headless 模式 | 可在 CI 中运行 |
| Gemini CLI | 原生 CLI | Google 生态 |
| OpenCode | 原生 CLI | 开源选项 |
| Grok | CLI | xAI 生态 |
选择不同 Agent 的配置在项目初始化时设定,也可以在 Web 控制台中按工作区指定。AWF 的默认配置使用 Claude Code 作为首选 Agent。
实际场景:三个 Agent 同时工作
让我们回到开头的场景。用 AWF 重新组织这个工作流。首先在终端中启动 AWF 本地服务:
awf setup awf start awf init /path/to/your/project --write-profile --yes awf smoke run --project /path/to/your/project --mocked-local --format pretty
服务启动后,在浏览器中打开 Web 控制台 http://127.0.0.1:3000。通过 MCP 工具(如果你使用 Claude Code)或 REST API,依次创建三个工作区:
- 工作区 1(Claude Code):安全漏洞修复,分支
fix/security-vuln - 工作区 2(Codex):新 API 端点,分支
feat/analytics-api - 工作区 3(Gemini CLI):模块重构,分支
refactor/auth-module
三个 Agent 各自拥有:
- 隔离的 Git Worktree:从同一
main分支 fork,互不干扰 - 独立的 Docker Compose 栈:数据库、缓存、服务各一套
- 独立的文件系统:依赖、环境变量、凭据完全隔离
每个 Agent 完成后,AWF 自动创建 PR、运行 CI、监控反馈,并在所有门禁通过后自动合并。你不再需要手动协调多个 Agent 的工作。
安全与供应链门禁
对于生产环境使用,AWF 内置了供应链安全门禁。工作区配置可以声明 security.supply_chain 规则:
- 阻止未固定版本的依赖安装
- 警告远程脚本执行操作
- 检测意外的包注册表域名
- 监控锁文件在授权路径外的修改
这些规则会在每个工作区的验证阶段自动检查,并将结果记录到工作区事件日志中。
小结
AWF 解决了并行 AI 编码 Agent 中最棘手的「打架」问题——工作区冲突。它不是一个聊天界面,也不是一个代码生成器,而是一个执行基板:将多个 Agent 的并行工作变成一个有秩序、可观测、可恢复的工业化流程。
对于每日处理多个编码任务的团队来说,AWF 的价值不在于让单个 Agent 写得更快,而在于让多个 Agent 同时工作而不产生混乱。当你的项目需要同时推进三路功能开发,或者需要让 Agent 在隔离环境中安全地执行高风险操作时,AWF 提供了一种比手动协调可靠得多的方式。
适用场景:并行功能开发、安全审计修复、大规模重构、多 Agent 流水线 项目地址:github.com/dimileeh/agent-workspace-fabric 许可证:Apache-2.0