问题举例:
我们是一个8人的开发团队。现在要开发一个大项目,该项目需要多人协同开发;这个项目我们想使用AI技术开发,使用codex 协同开发,但是遇到问题,A开发修改或者开发了功能,但是B开发的模型不知道,导致代码被互相覆盖,怎么设计一个合理的协同开发方案?
下面是一套从 流程、规范、工具链到自动化 的完整方案,让8人团队既能享受AI的效率,又能像传统开发一样有序协作。
一、总体思路:以 Git 为中枢,AI 为加速器
把 AI 看作一个 超级新手程序员:它能力很强,但只知道自己被喂进去的那点上下文。所以核心原则只有两条:
-
AI 动代码前,必须拿到项目最新、最全的上下文
-
所有代码修改必须经过 Git 的明确边界,AI 不能"悄悄"覆盖
不要期望每个开发者的 AI 能自动感知别人的改动------这需要靠工作流程来强制保证。
二、分支策略:Feature Branch + 及时 Rebase
推荐模型:类 GitHub Flow 的短分支 + 频繁 rebase
main (只接受合并, 受保护) ├── feature/user-auth (A 负责) ├── feature/payment (B 负责) └── ...
核心规则:
-
每个人在自己 feature 分支上工作,AI 的修改也只在当前分支。
-
每天至少一次 :从
main拉取最新代码,在自己的 feature 分支上执行rebase,解决冲突后再继续。 -
AI 生成的代码必须由开发者确认后提交 ,不能有 AI 自动
git push的设定。
这样做的好处是:即便 B 的 AI 不知道 A 做了什么,当 B 把自己的分支 rebase 到最新的 main 时,所有冲突都会立刻暴露,由 B(人类)介入协调或让 AI 辅助解决。
三、AI 工作区设计:给 AI 一张"项目快照"
你们用 OpenAI Codex CLI(或类似终端 AI),它的上下文窗口有限。因此需要一个可刷新的项目上下文文件,每次开启 AI 会话前强制更新。
3.1 创建共享的上下文目录
/docs /ai-context ARCHITECTURE.md # 系统架构、模块职责、数据流向 API_CONTRACTS.md # 接口定义、请求/响应示例 DATABASE_SCHEMA.sql # 最新的数据库结构 CURRENT_TASKS.md # 当前各成员正在开发的功能及影响范围 CODING_STANDARDS.md # 统一代码规范、命名规则
这些文件由全员共同维护,每次功能合并入 main 时,必须同步更新对应的上下文文档。
3.2 制作"AI 启动脚本"
每个开发者机器上都有一个脚本 start-session.sh,包含:
bash
#!/bin/bash
# 1. 强制拉取最新 main
git fetch origin main
# 2. 将当前分支 rebase 到最新 main(冲突则提示开发者先解决)
git rebase origin/main || { echo "请先手动解决冲突"; exit 1; }
# 3. 将文档目录复制为本次 AI 会话的快照
mkdir -p .ai-snapshot
cp -r docs/ai-context/* .ai-snapshot/
# 4. 启动 Codex CLI,并注入上下文文件内容作为 system prompt 的一部分
echo "项目当前架构及所有接口规范如下:" > .ai-prompt
cat .ai-snapshot/*.md >> .ai-prompt
# 也可通过 Codex 的 --instructions 或配置文件传入
codex --instructions .ai-prompt
这样一来,AI 每次启动时看到的都是 此刻 main 分支的最新契约 + 架构全局,不再是过时的局部视图。
四、开发节奏:一人一域,高频集成
4.1 任务拆分做到"低耦合"
8 人需提前划定模块边界,尽量让每个 feature 分支只修改有限文件。比如:
-
A 负责用户模块,主要改
src/user/ -
B 负责支付模块,主要改
src/payment/
如果出现必须跨模块的改动,采用以下顺序:
-
修改公共接口的人先提交并合入
main(比如 A 改了一个共享类型定义) -
另一个人的分支 rebase 后,AI 自然就能看到新的接口
4.2 小步提交,频繁 rebase
-
每完成一个逻辑单元(如实现一个函数)就提交,不要积攒大量 AI 生成代码后一次性提交。
-
每天开始工作前执行一次 rebase,每天收工前再 rebase 一次。
-
鼓励 中午统一 rebase 窗口,团队约定时间一起处理可能的冲突,降低集成痛苦。
五、AI 的"记忆"机制:变更广播与检查点
虽然无法让 AI 像人一样看群消息,但可以给 AI 做一份"变更摘要"。
5.1 利用 Git Hook 生成变更摘要
在仓库中配置 post-merge hook(或 CI 上),每当有代码合入 main,自动在 docs/ai-context/CHANGELOG.md 的最顶部追加:
## 2026-05-29 14:30 (张三) - 修改了 user service 的 login 接口,增加字段 `deviceId` - 影响范围:所有调用 /api/login 的模块
这样下一个开发者启动脚本时,AI 就能读到"自从我上次工作后,别人改了这些",从而避免生成冲突代码。
5.2 在 AI 对话中显式声明边界
开发者对 Codex CLI 下任务时,使用标准化指令开头:
"请基于当前
.ai-snapshot中的接口定义,实现支付回调逻辑。注意:用户模块的所有接口必须以IUserService定义为准,不要修改src/user/下的任何文件。"
这样明确约束了 AI 的操作范围,减少跨界覆盖。
六、自动化防线:CI 守卫与覆盖率检查
人工难免有疏漏,需要在 CI 上加几把锁:
-
禁止直接 push 到 main,一律通过 PR。
-
PR 触发自动化检查:
-
检查是否意外修改了不属于本 feature 范围的文件(可通过
CODEOWNERS+ diff 分析) -
运行全量单元测试 & 集成测试
-
检查生成的代码是否符合统一标准(linter)
-
-
代码审查:每个 PR 至少由另一名成员审查。审查者重点关注:
-
是否改动了不该改的接口
-
AI 生成的代码是否遵守了最新的上下文文档
-
这条防线能兜底,防止 AI 的"覆盖型生成"悄无声息进入主分支。
七、沟通补充:人的层面不可替代
AI 工具不管怎么设计,都无法完全替代人类同步信息。建议:
-
每日站会(15 分钟):每人一句话说明今天要改哪些文件、可能影响哪个模块。
-
当修改公共接口或类型定义时,先在团队频道(如 Slack)发消息 ,附上 diff 或说明,其他人立即
git fetch,并在下次启动 AI 前更新快照。 -
建立一个共享表格,记录"各成员当前锁定的模块文件",遇到重叠任务主动沟通。
八、方案落地
| 层面 | 措施 | 解决的核心问题 |
|---|---|---|
| 版本控制 | Feature 分支 + 每日 rebase | 让覆盖冲突早暴露、早解决 |
| AI 上下文 | 共享文档快照 + 启动脚本强制刷新 | 喂给 AI 最新的全局契约 |
| 任务拆分 | 低耦合模块划分 + 小步提交 | 减少多人同时动同一文件 |
| 变更通知 | Git hook 生成 CHANGELOG + 群内广播 | 让下一名开发者的 AI "知道"发生了什么 |
| 自动化防线 | CI 文件范围检查、测试、代码审查 | 兜底拦截 AI 的越界修改 |
这套方案不需要引入昂贵的新平台,完全基于你们现有的 Git + Codex CLI,配合少量脚本和流程约束,就能将 AI 协同的成功率大幅提升。
如果你们需要, start-session.sh 和 post-merge hook 的完整代码,或者根据你们的项目语言量身定制 ai-context 文档模板。请看下一篇文章