多AI协作开发
- 多个AI进行协作时,要想保证开发时能够互不影响且高效进行,需要让每个AI都成为"受权限限制的独立开发者",要同时做到:变更隔离、环境隔离、任务协调、自动验证、受控合并、可回滚
一、拆分任务,并发执行
每个任务应有明确的任务契约:
- 目标和验收标准
- 允许修改的模块或文件
- 禁止修改的范围
- 依赖任务和前置提交
- 测试要求
- 风险等级
- 是否允许修改数据库、接口、部署配置
适合并发的任务包括独立模块、单独接口、测试补充、文档、代码审查等。
以下任务通常应串行或指定唯一负责人:
- 数据库迁移
- 公共接口或数据模型变更
- 构建系统和部署系统修改
- 权限、安全、生产配置
- 多模块重构
二、使用Git worktree进行隔离
- 给每一个AI都创建一个不同的分支,每个AI都只能在自己的分支目录中进行修改
- 所有AI完成任务后,将产出的结果放到集成工作区进行合并
- 需要对AI进行行为约束
- AI 不执行 git gc、git worktree remove/prune
- AI 不删除或重命名其他分支
- AI 不修改仓库级 Git 配置和 hooks
- AI 不操作 main
- 不使用共享的 git stash
- 临时进度直接提交到自己的分支,最后再 squash
- 合并、rebase、分支清理只由集成负责人执行
- AI 不执行 git gc、git worktree remove/prune
三、运行环境隔离
需要隔离:
- 临时数据库或独立 schema
- Redis、消息队列的 key 前缀或独立实例
- 独立端口和容器网络
- 独立测试数据
- 独立构建目录和缓存
- 分支级别的配置和密钥
四、AI 负责实现,人负责关键决策
推荐的角色分工是:
-
规划 AI:拆任务、识别依赖
-
实现 AI:只处理限定范围
-
审查 AI:检查逻辑、测试和安全风险
-
集成负责人:处理跨模块冲突
-
人类负责人:审核架构、数据库、权限、生产发布
尤其不能让 AI 自动决定以下内容:
-
破坏性数据库迁移
-
认证和授权逻辑
-
生产基础设施
-
依赖大版本升级
-
自动解决高风险合并冲突
-
直接发布生产环境
五、发布必须可观察、可暂停、可回滚
生产发布建议采用:
- 不可变构建产物
- Feature Flag
- 灰度发布或金丝雀发布
- 自动健康检查
- 指标、日志、链路追踪
- 一键关闭功能
- 快速回滚版本