2026年6月19日 2 分钟阅读

并行 AI 编码 Agent 实战:用 AWF 在隔离 Docker 工作区中安全协作

tinyash 0 条评论

场景:当多个 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 集成直接在工作区中启动编码任务:


每个工作区的完整生命周期如下:

  1. 在工作区数据库中创建一行记录
  2. 从请求的基础分支创建一个隔离的 git worktree
  3. 解析工作区配置文件(描述项目运行时环境)
  4. 生成并启动专属的 Docker Compose 栈
  5. 执行 Profile 定义的初始化阶段
  6. 可选:AWF 自有的 Plan → Execute → Compare 迭代
  7. 在容器内运行选定的编码 Agent
  8. 执行验证阶段和自定义检查命令
  9. 提交、推送并创建 PR
  10. 监控 PR 直到合并、关闭或失败
  11. 收到评论后重新唤醒 Agent 处理
  12. CI 失败时获取日志并修复
  13. 基础分支更新时同步到 PR 分支
  14. 给 Reviewer 一个初始审查缓冲期
  15. 所有门禁通过后自动合并
  16. 清理成功的任务,保留失败的用于排查

Agent 适配器:一个控制面板管所有

AWF 最实用的设计之一是Agent 适配器。它内置了 6 个主流 AI 编码 Agent 的适配器:

Agent适配方式特点
Codex原生 CLI标准行为
Claude CodeClaude CLI默认使用
Cursorheadless 模式可在 CI 中运行
Gemini CLI原生 CLIGoogle 生态
OpenCode原生 CLI开源选项
GrokCLIxAI 生态

选择不同 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

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。