字数:约3000字 | 阅读时间:9分钟 “把派活做成流水线,把拍板留给人。”
「记忆工程」系列第三篇。上一篇讲完数据模型,这篇兑现第一篇埋的伏笔:这个项目由我和几个AI协作开发,一台服务器上的AI做编排,另外几台机器上的AI分头写代码。这篇把这条流水线拆开讲讲。
先交代起点,免得后面显得太顺。立项时项目手里有什么?一份需求提案、一份设计文档、一轮五路红队评审——结论FAILED,11个阻塞性问题;外加一张14个开发任务的清单。开工数:0。
决策者没打算自己一行行补代码,也没打算找一个"超级Agent"托管一切。最后跑通的东西说出来很朴素:一块任务板,一条纪律,三台机器上各跑一个干活的AI,工头也住在其中一台服务器上。
一、第一个决定:不并行
直觉上,多台机器就该并行,越多越快。我们拍板的第一个架构决策恰恰相反:全局串行。
原因一半是钱:三个干活的AI共用同一个编码模型的订阅额度,并行等于三倍烧钱抢饭吃。另一半是评审链:串行让每个任务都有干净的"谁写的、谁评的"记录,出了问题翻commit就能定位到环节。并行省下的时间,排查时会加倍还回去。
机制落在共享记忆库里的一把全局锁上:任何worker开工前先看锁,锁上写着当前任务和执行者;干完、评完、落库,才轮到下一个。推进时段也卡着额度的低峰走——工作日的深夜和清晨,加上周末全天,每晚一到两个任务,不贪多。
还有条潜规则:纯架构设计、文档合并这类不消耗编码额度的活,工头直接干,不进流水线排队。
二、谁干什么,谁不许夸自己
分工是踩过坑之后修出来的:
| 节点 | 角色 | 主要产出 |
|---|---|---|
| 工头主机 | 编排+评审集成 | 派活、收报告、架构文档、静态评审 |
| 云服务器A | worker | 编码、CI、文档、巡检、看门狗 |
| Windows笔记本 | worker | 编码重活、实测类任务 |
| 人类决策者 | 拍板者 | 检查点验收、例外处置 |
其中一条纪律值得单独一段:禁止自审自批。谁写的代码,交叉评审必须换一台机器。评审报告本身也是一次commit,和代码一样进Git历史。到收官时,仓库里攒下191个commit、35份评审文档——评审在这个项目里是交付物,有编号、有结论、可追溯。
三、一个任务的一生
拿一个典型任务走一遍全流程:
任务板上认领(任务板是一份人人可读的Markdown清单)→ 读spec、写代码、跑测试 → push到远端 → 协调器把变更集派给另一台机器交叉评审 → 评审报告落docs目录 → 阻塞项退回修复,非阻塞项记档留给下一个任务吸收 → 任务板打勾 → 共享记忆库沉淀一条经验。
几个数字:MVP阶段8个里程碑任务全部走完这套流程;加上收尾和增强轮,任务板上T1到T16全部打勾;自动化测试从0涨到近400个,全绿。
更重要的是检查点制度。整条流水线只在三种情况下需要人出场:战略拍板(要不要做)、阶段验收(specs二审、demo验收)、例外处置。流水线跑了一个多月,人真正出手一只手数得过来——三次检查点拍板,外加几次事故处置。其余时间,任务板自己转。
四、翻车集锦:流水线是修出来的
听起来太顺了?事故记录都在档案里。
**事故一:凭空蒸发的任务。**凌晨给笔记本上的AI派了个分析任务,日志显示已开工,十来分钟后再看:临时目录清空、AI进程归零,任务没了。根因查了一圈才定位:笔记本在Linux子系统(WSL)里跑AI,派活的会话被一个300秒超时杀掉后,子系统判断"没人用了",五分钟后把整个实例连锅端了。处置:换Windows原生方式跑AI,加"保温"长连接防回收,顺便立了规矩——所有事故必须落档,格式固定:现象、根因、处置、沉淀。
**事故二:评审查死的罗生门。**笔记本上的AI连着两次在评审任务里"卡死":进程活着,不报错,就是不产出。靠对比采样才抓到真相:它在Windows上跑测试套件,Node测试进程启动极慢,600秒超时根本跑不完;AI随即陷入"读日志→诊断→再等等"的补救循环,永远不会主动放弃。由此总结出判死三件套:CPU采样对比、日志最后写入时间、产出物是否存在——三条证据齐了就判死重派,不再干等。顺带改了纪律:笔记本从此只做纯静态评审,实跑测试的活交给服务器。
事故三:派发通道不可靠。工头派活走消息通道,丢过三次。最后长出来的机制叫心跳自主开工:每个worker有自己的巡检节奏,主动检查任务板和锁文件,发现该自己干的活没人干,就按决策记录自行开工。协调通道从必需品降级成了加速器——它挂了,活照样往前走。
三次事故,三份档案,三条新纪律。这条流水线的可靠性,一半是设计出来的,另一半是这么修出来的。
五、工头干完活,拆了自己的工棚
流水线的最后一环是监督。每小时一轮看门狗巡检:任务板状态、worker进程、锁文件、远端同步,只读写档不发通知,有异常才升级。稳定期连续几十轮巡检结果一字不差——这种"无聊"是流水线健康时的标准长相。
收官方式有点意思。MVP验收通过后,每小时协调器按设计执行了自我移除:任务板全勾、锁状态改成"等待拍板"、协调进程注销。工头干完活,自己拆了工棚,这件事本身也写进了完成记录。
六、写在流水线边上
带得走的三条:
- **串行是纪律,也是保险。**并行度上不去的时候,先把评审链做干净;
- **事故是流水线的一部分。**翻车不落档,等于白翻;
- **人只出现在必须拍板的地方。**检查点之外,人和AI互不打扰。
照例:本文由 AI 起草、人类审校拍板。这个栏目本身,就是这个项目的人机协作现场记录。
「记忆工程」系列 · 03 | 上一篇:把记忆存进Git:一个AI记忆系统的数据模型