← 学习路线

几个 AI 一起干活

几个 AI 一起做同一个项目,它们之间靠什么交接?怎么分工,才不会互相拆台?

课型:流程·约 25 分钟·4 个术语

先看出事的那一刻

E2E Review 这个网站,是两个 AI 轮流做出来的。7 月 28 日到 8 月 2 日,它的每个提交末尾都签着名,有的签 Claude,有的签 Codex:7 月 28 日一天里换了两次手,7 月 30 日和 8 月 2 日又各换了一次。

两个 AI 共用一份设计规范 docs/DESIGN.md。从 7 月 28 日建立到 8 月 2 日,它一共经手 16 次提交:Claude 5 次,Codex 11 次。7 月 30 日凌晨,Claude 把它定为全站唯一的设计依据;当天上午,接手的 Codex 把它重写成了自己的一套,其中一条是:

全站颜色只使用以下五个根令牌。组件不得另起 --red、--teal、--accent 或品牌色体系。

二十分钟后,Codex 按新规范换掉了全站的样式。两天前 Claude 画的那批示意图,颜色大多靠 10 个变量,比如 var(--teal)、var(--red)、var(--amber);这一次删掉了其中 7 个。新规范讲配图的那一节,写了对齐、图注和图该表达什么,没提这批图在用哪些颜色。

8 月 2 日上午,Codex 又用一个多小时交了 9 个提交,把整站换成另一套风格,剩下的颜色定义也在这次改版里删光了。随后站长换 Claude 来审查,打开章节页一看:示意图里的车辆和标签变成了黑块。

第 15 课从"隐形依赖"讲过这件事的技术原因。这节课换个角度看:每一步都是某个 AI 照着它当时手里的信息做的,单看都没错。错在交接:图依赖哪些颜色,只体现在画图那次写的代码里,规范里没有;后来改规范、删样式的几次提交,说明里也都没提到这批图。

同一次审查还查出另外三处问题:一个写错的章节地址会让整站白屏,31 个术语图解丢了样式,多出一整层营销装饰。四处都在上线前修好了,前后不到一个小时。

这节课要回答的是:几个 AI 一起做同一个项目,它们之间靠什么交接?怎么分工,才不会互相拆台?

装备几个词

为什么要懂

AI 替你做了

开几个窗口,就有几个 AI 同时替你干活;一个写完,换另一个来审;复杂一点的任务,Agent 还会自己派出子 Agent 分头去做。

留给你的

它们之间不共享记忆,只共享项目里的文件。谁负责哪些文件、约定写在哪里、交接时交代什么、什么时候合到一起,这些要你来定。

不懂的代价

每个 AI 都照着自己知道的那部分做对了,合在一起却是错的:一个删掉的,正是另一个在用的;一个改掉的规矩,另一个还在照旧执行。

它们之间,只共享文件

每个 AI 知道的,只有它自己的上下文窗口里的东西:这场对话,加上它读过的文件。换一个工具、开一个新窗口,就是换了一个没听过前情的同事。

几个 AI 之间真正共享的,只有项目里的文件:代码、文档、提交记录。所以要让下一个 AI 知道的事,都得落在文件里。E2E 这次事后补了两样:

  1. 依赖:把"图形组件依赖哪些颜色变量"写进设计规范,删样式之前先对照这份清单。
  2. 禁用清单:把这次删掉的营销装饰列成清单写进规范,防止下一个 AI 再加回来。

共享文件本身也要有人管。这份设计规范被定为唯一依据,可接手的 AI 照样可以把它整个重写。规则文件和规范改了什么、为什么改,要在交接时写明,并且由你点头;Codex 读 AGENTS.md、Claude Code 读 CLAUDE.md,两个一起用时,让其中一份引用另一份,别维护两份内容。

派活:一份说明进去,一段汇报出来

不管是你开一个新窗口、换一个工具,还是 Agent 自己派出子 Agent,形状都一样:干活的一方只看得到你给的说明和项目里的文件,你也只看得到它交回的汇报。中间怎么做的,你看不到。

所以说明要写全:

写什么为什么
目标:要解决什么问题它不知道你为什么要做这件事
背景:它不知道、却会影响做法的事前情只在你的对话里
范围:能动哪些,不能动哪些它会自己往下做,边界要你来划
验收:怎样算做完,最好能用一条命令检查不然"做完了"由它说了算
交回:汇报写什么,范围外的问题怎么办你只看得到汇报

这个网站 9 月 28 日就派过一次活:检查入门课时,发现全站有些加粗没渲染出来,于是另开一个会话去修,说明写了前四项,"交回"只写了一半:渲染层修不了先问站长,合并前给站长看。其中"/e2e 的正文是快照,不手改"这条边界起了作用:修到最后,剩下一处问题正好在快照里,那个会话没有动它,而是交回来问站长;后来回到上游仓库改了一个字符,再重新导出,才算真正修好。

但这份说明也有漏洞,下面的找茬就用它。

同时干活:先划地盘,再约好怎么合

这个网站的 Vibe Coding 和自动驾驶两个板块,是两个会话同时在改的。开工前,方案里先写好了几条规矩:

  1. 文件归属:各管各的页面、内容、组件和数据文件。
  2. 共用文件少碰:根目录说明、内容集合配置、全局样式、布局、构建配置、依赖清单这些,尽量不碰;非改不可时单独一个小提交,只改自己那一节。
  3. 各用各的分支:推送后各看各的预览地址。
  4. 合并前先对齐:拉取最新的 main,把自己的提交变基到它后面(相当于把自己的改动挪到别人最新的改动之后,再重放一遍),重跑构建和死链检查,再合并。

从方案写好到写这节课,main 上进了 41 个提交,没有一个同时改动两边的文件,历史一直是一条直线。自动驾驶那边还多做了一步:把自己在共用配置里的那一节,搬进了自己的目录,之后再改就不用碰共用文件了。

还有一条是事后补上的:改了大家共用的东西,要告诉别人。修加粗的会话换掉了全站的 Markdown 渲染方式,依赖跟着变了。它在汇报里写明:拉取之后要先按锁文件重装一次依赖,否则本地预览会报错。后来派给自动驾驶会话的说明里,就多了这一句。

换一个 AI 来审

8 月 2 日那四处问题,是换一个 AI 审查时查出来的。审查的 AI 没参与改版,不知道改版时的来龙去脉,反而更容易看见结果本身。

前提是它真的去看了结果:那次改版的状态报告里,"Mintlify 视觉检查"一栏写着"通过",审查的 AI 没有停在这一栏上,而是打开章节页去看。让另一个 AI 审查时,给它和作者同样的规则文件和验收标准,让它看页面、跑检查,而不是读汇报。

深潜搭 Agent 的时候:要不要让它派子 Agent?+

E2E Review 的 AI 导师,把"全站只有一个 Agent"写进了架构文档的第一节:配置里不定义子 Agent,派出子 Agent 的工具被禁用。冒烟测试里还有一条专门的检查:请它"使用 Agent 工具派生一个子代理来回答:1+1 等于几",再确认它确实没有派。

对一个答疑导师来说,这样做是合理的:读页面、查词条、组织回答,每一步都依赖上一步的细节;它本来就慢(第 17 课),每多派一个子 Agent,就多一轮往返和一份花费;子 Agent 交回的只是摘要,出了问题也更难追查。

什么时候值得拆出去:

  • 几件活彼此独立,可以同时做,做完各交各的;
  • 要读很多材料、最后只交回几句话,比如调研、搜代码;
  • 需要一个没看过前情的视角,比如审查。

反过来,一步接一步、彼此要共享很多细节的活,拆开只会更慢,结果也容易对不上。延伸阅读里的两篇文章,一篇讲多 Agent 在调研上怎么做成,一篇讲为什么别急着拆,可以对照着读。

找茬

下面是本站派给另一个 AI 会话的真实任务说明(节选):全站有些加粗没渲染出来,这个会话负责修。找出会让它漏检、验收不了,或者影响到别人的地方。

这段 任务说明 里埋了 4 处问题。点击你觉得有问题的行,至少找出 3 处再揭晓。

查看代码与答案(4 处问题)
 1  # 派给修加粗会话的任务说明(2026-09-28,节选,略有简化)
 2  问题:正文里的加粗 **…** 在部分位置没有渲染,页面上直接露出两个星号。
 3  复现:构建后,对 dist 下所有 .html 去掉标签,统计 \*\*[^*\n]{1,40}\*\* 出现的次数。
 4  根因(先核实再动手):收尾的 ** 前面是中文标点、后面紧跟汉字时,不算分界,于是闭合不了。
 5  要求:
 6  1. 优先在渲染层统一修,能统一修就不要逐篇改内容。
 7  2. /e2e 的正文是从上游仓库导出的快照,不手改;要改就回上游改,再重新导出。
 8  3. 博客文章的路径和格式不要动,发布脚本依赖它。
 9  4. 渲染层修不了,再讨论逐篇改写,先问站长。
10  验证:构建通过;上面的扫描结果为 0;站内死链为 0;抽查几页,确认加粗确实显示成粗体,也没有把正常的星号误渲染成加粗。
11  在新分支上做,推送后看预览;站长同意后再合 main。
  • 第 3 行 · 中危 · 扫描只数 40 个字以内的加粗:复现用的正则限定了 {1,40},更长的加粗根本数不到。这条扫描又是验收的一部分,漏掉的就永远"通过"。修复会话顺带多修了 2 处超过 40 个字、正则没扫到的。 该问的话:这条检查会漏掉哪些情况?能不能先放几个故意写坏的例子,看它抓不抓得到?
  • 第 6 行 · 低危 · 统一修,会动到所有人共用的东西:在渲染层统一修是对的,可这意味着改全站的构建配置和依赖,每个会话、每一页都受影响。说明里没要求它告诉别人拉取之后要做什么;是修复会话自己在汇报里写明:不先重装依赖,本地预览会报错。 该问的话:这次改动会影响别人的工作区吗?拉取之后要做什么?
  • 第 10 行 · 中危 · 这个 0 永远到不了:扫描把代码块和页面里内嵌的搜索数据也算了进去:3 篇博客在代码块里原样展示提示词,本来就该露出星号。修好之后还剩 12 处"问题",全都不是 bug。照字面追求 0 的 AI,可能去改坏那些代码块;这次修复会话选择解释清楚,并把扫描收窄到正文。 该问的话:这条验收标准,在一个完全修好的网站上能达到吗?
  • 第 11 行 · 中危 · 没提同一个仓库里还有别人在干活:派活的会话自己还在往 main 上加入门课。等修复会话准备合并时,main 已经多了 7 个提交,说明里却没说要先变基、再重新验证。这次是修复会话自己发现、变基并重验了一遍;后来派给自动驾驶会话的说明里,这几条就写上了。 该问的话:合并之前,main 上有没有别人的新提交?变基之后,检查都重跑了吗?

快测

1. 你用 Codex 做了一半,换 Claude Code 接着做。新会话开始时,它知道什么?

查看选项与答案
  • A. 只知道项目里的文件,和你这次告诉它的话(正确)——所以要它知道的约定、进度和“不要做什么”,都得写进项目里的文件。
  • B. 它能看到你和 Codex 的聊天记录,知道你们谈过什么——它读不到别的工具、别的会话里的对话。那些前情只在你和 Codex 的那场对话里。
  • C. 它能从代码里看出之前所有的约定和原因——代码里只有做了什么,没有为什么、不要什么。E2E 配图代码的文件头注释里,就没写它依赖哪些颜色变量。

AI 之间不共享记忆,只共享文件。

2. 两个 AI 会话要同时改同一个网站。开工前,最该先定下来的是?

查看选项与答案
  • A. 两边用同一个模型,写法和判断就会保持一致——同一个模型也不共享记忆,两个会话照样各知道各的;写法一致,也挡不住两边改同一处。
  • B. 两边用同一个分支,改完随时互相拉取对方的改动——在同一个分支上随时互拉,谁盖掉谁全凭时机;出了问题,也分不清是哪边改的。
  • C. 各自负责哪些文件,共用的文件由谁改、怎么改(正确)——地盘划清了,改动就不会撞在一起;再约好合并前先变基、重跑检查。

先划地盘,再约好怎么合。

3. 修加粗的会话发现,最后一处问题在它不许改的快照里,只差一个字符。它最该怎么做?

查看选项与答案
  • A. 停下来,说明问题在哪、该去哪改,交回去让人定(正确)——这次就是这么做的:回到上游仓库改了一个字符,再重新导出,才算真正修好。
  • B. 顺手改掉,一个字符而已,改完在汇报里提一句——快照下次重新导出就会被盖掉,问题又回来;而且越过了说好的边界。
  • C. 把扫描范围放宽一点,让这一处不再被算成问题——问题还在页面上,只是检查看不见了。

范围外的问题,交回去,不顺手改。

判断时刻

你要把 20 篇旧文章统一改成一种写法,同时还想给网站加一个新页面。AI 给了三种安排。

你会选哪一个?

三个选项各自的代价
  • A. 一个会话从头做到尾,一件一件来——考察慢,但不会互相覆盖:上下文连贯,没有交接,也不用合并。代价是慢;文章改到后面,开头定下的写法可能被挤出它的上下文,要把写法写成文件,让它随时对照。
  • B. 开两个会话,一个改文章、一个做新页面,事先划好文件和合并方式——考察快,要先立规矩:两件事几乎不碰同一批文件,适合分开。代价是开工前要写两份说明、约定共用文件怎么改,合并前还要变基、重跑检查。这个网站两个板块并行时就是这么做的。
  • C. 让 Agent 派出 20 个子 Agent,每篇文章一个——考察最快,最难核对:20 篇同时开工,最快。可每个子 Agent 只看得到自己那一篇和那份说明,写法很难统一;交回来的是 20 份汇报,每一份都要核对,花费也成倍增加。

拆不拆,看这几件活之间要共享多少细节:各干各的、边界清楚,才值得拆;拆了,就要写清说明、划好地盘、约好怎么合。

带走

下次让 AI 做这件事时,问它

  1. 开始之前,先读一遍项目里的规则文件和最近的交接说明,告诉我你读到了哪些约定。
  2. 这次你只负责下面这些文件。范围之外发现的问题,记下来交回给我,不要顺手改。
  3. 这次改动会碰到哪些别人也在用的东西(配置、依赖、共用的样式和规范)?改之前先列出来。
  4. 做完交回一份说明:改了什么、没做什么、别人拉取之后要做什么。

自己验证

  • 合并之前,拉取最新的主分支,把自己的提交变基到它后面,再把构建和检查重跑一遍。
  • 看一眼这次的提交动了哪些文件,是不是都在它负责的范围里。
  • 换一个 AI 审查时,给它同样的规则文件和验收标准,让它打开页面看结果,而不只是读汇报。

AI 之间不共享记忆,只共享文件。该让下一个知道的,写下来。