四台AI协同干活实录:从单兵作战到分工流水线,一次需求交付的完整复盘

2026年8月24日,一个看似平常的新功能又把我折腾得够呛。

任务本身不复杂:为某个SaaS管理后台增加CSV文件批量导入能力,附带查重检测以及导入结果的汇总展示。我起初还是沿用老套路,打开Claude Code,把需求说明、UI设计图、项目旧代码统统塞进去,丢下一句“把这个功能搞定”。结果三个钟头过去,程序确实能跑了,但验收环节直接暴露4个缺陷:空文件未做拦截、重复判断条件搞反、某接口命名前后矛盾、导入大文件时内存直接爆掉。当晚我瞄了一眼账单:花费18.5美元,消耗1.2M token,还得搭上28分钟亲自下场修修补补。那一刻我意识到,我哪儿是在调试代码,分明是在给AI收拾烂摊子。

于是我开始琢磨:一个人单挑全栈会累瘫,那一个AI单挑全栈是不是同样会崩?与其如此,不如把需求梳理、架构规划、代码编写、质量审查这几个环节拆成四种独立的思维角色,让不同的大模型各自认领一块?过去一个月里,我试着用Kimi、Claude Code、Codex和DeepSeek搭建了一条极简的多Agent协作管道。这篇文章不讲空洞理论,纯粹是我亲身蹚雷的经验汇总,有数据、有配置、有最终结论。

01 症结所在:单一Agent面对全栈任务时,上下文必然过载

我此前的操作方式大概和许多独立开发者没两样:挑一个能力最强的模型,把能给的背景信息全塞进去,指望它一口气从零写到尾。对付那些简单的增删改查页面,这招确实省心。可一旦任务链条拉长,涉及需求理解、系统设计、编码实现再到自我验证,单一Agent就开始精神分裂。它既要当产品经理,又要做系统架构师,还得扮演程序员和测试员,一个上下文里挤满了彼此掣肘的目标。

拿这次CSV导入功能举例,Claude Code前十分钟还在跟我确认“查重到底依据邮箱还是手机号”,后十分钟已经跑去纠结React表格的列宽样式;等我提醒它补几个单元测试,它又掉头去调整接口命名。最终交付的代码里,接口定义前后对不上有三处,类型标注错了一处,空文件场景压根没处理。我大致统计了一下:真正有效的协作时间约110分钟,其中至少40分钟全耗在纠正它“我们刚才可不是这么约定的”这类问题上。

我也试过换用GPT-4.1来统管全局,结果它在长篇上下文里的代码一致性表现更糟,花销也没见省。单Agent模式的核心短板其实不在于模型智力不够,而是同一个上下文里承载了太多相互冲突的决策维度。理解需求需要发散联想,设计架构需要收敛聚焦,编写代码要求精准无误,审查代码又得吹毛求疵——这四种思维模式天生不对付,硬塞进一次对话里,不崩才不正常。

还有个容易被忽视的点是开销。Claude Code的Agent模式每次推理都会反复扫描整个工作目录,那1.2M token里将近一半属于重复劳动。18.5美元对个人项目来说不算小数目,但真正让人心累的并非钱,而是精力消耗:你得全程盯住这个“全能选手”,防止它跑偏方向。

这段经历给我的教训总结成一句话:一个人扛下全栈没问题,但别指望一个AI也能扛下全栈。 我真正需要的不是更强的单点模型,而是把任务拆成几段接力,每一段交给最擅长的那位。

02 探索过程:四模型各司其职的设想很完美,现实交接却狼狈不堪

我决定依照认知类型来做拆分:

想象中一切完美,但头一周我就撞上了四个大跟头。

第一个坑:交接不等于丢个链接。 一开始我让Kimi产出一份三千字的PRD文档,直接扔给Codex。结果Codex只挑标题和代码片段看,把“支持十万行CSV”这条非功能性需求给漏了,生成的实现是整表一次性载入内存。问题不在模型本身,而在交接的媒介。后来我改用带字段约束的prd.json,每个需求项都包含ID、优先级、验收准则、非功能限制,下游必须逐项勾选确认。

第二个坑:每个模型都觉得自己能改接口。 Claude定下的函数签名是parse_csv(file_stream, options),Codex写着写着就换成了parse_csv_buffer(buffer),DeepSeek又提建议改回parse_csv(file_stream)但参数含义全变了。三天下来,接口定义文件被改得面目全非。最后我引入了一个接口锁定规则:Claude先输出interface.lock,把函数签名、错误码、数据库字段全部钉死;下游想改动,必须先在handoff.yaml里写明原因并触发人工审批。

第三个坑:审查员秒变夸夸团。 头一回让DeepSeek做评审,我的提示词写得太客气,它全程都在说“整体很棒,建议微调”,这种反馈等于没反馈。后来我重写了严格的reviewer提示词,要求它必须按Severe/Major/Minor三个等级分类问题,遇到Severe级别直接打回重做。同时我也给Codex加了条规矩:“只修被点名的问题,禁止顺手重构”,不然它又会自作主张改出一堆新毛病。

第四个坑:编排框架纯属智商税。 我一开始被某个开源的Multi-Agent框架吸引,花两天时间学DAG、配置工具、搭状态机,最后发现它给我的全部价值就是帮忙调API。对个人开发者和小团队来说,一条线性处理链加两个条件回环就绰绰有余。我现在用的调度器就是一百来行Python代码,读JSON状态、调SDK、跑测试、写日志。别为了用框架而用框架。

03 实操方案:我用一百行Python串起一条生产流水线

现在跑通的流程是这样的:Kimi产出PRD → Claude确定架构和测试 → Codex完成实现 → DeepSeek审查diff → 自动执行测试 → 人工最终合并。每个环节之间都通过一份handoff.yaml来衔接,里面记录了上游产物的哈希值、改动的文件列表、悬而未决的决策点以及测试执行结果。

四阶段多Agent流水线与交接产物

我把核心配置分享出来,大家可以按需参考。

Kimi需求提炼环节:

kimi_client = OpenAI(
    api_key=os.getenv("KIMI_API_KEY"),
    base_url="https://api.moonshot.cn/v1"
)
system = """
你是一名需求分析师。只输出结构化PRD,禁止写代码。
必须包含:背景、用户故事、验收标准(每条可测试)、非功能约束、风险点。
输出格式为JSON,字段名固定。
"""
prd = kimi_client.chat.completions.create(
    model="kimi-latest",
    messages=[
        {"role": "system", "content": system},
        {"role": "user", "content": raw_requirements}
    ],
    temperature=0.2
)

Claude Code架构与测试设计: 我在项目里加了提示文件.claude/CLAUDE.md

1. 先写测试,再写实现。
2. 所有函数必须带类型注解。
3. 不要修改 interface.lock 中的签名。
4. 输出 ARCHITECTURE.md 说明模块关系。
5. 测试必须覆盖空文件、超大文件、重复数据三种场景。

Claude Code用Sonnet模型跑Agent模式,每次只分配一个任务包,防止它思路发散。

Codex编码实现: .codex/config.yaml

model: codex-latest
instructions: |
  - 只根据已有测试补实现,不要新增函数。
  - 禁止重构与当前任务无关的代码。
  - 读取 interface.lock 和 handoff.yaml 后再开始。
  - 输出变更摘要到 IMPLEMENTATION.md。

DeepSeek代码审查:

review_prompt = """
你是一名资深代码审查员。审查以下git diff,按Severe/Major/Minor分级。
Severe包括:安全漏洞、逻辑错误、接口破坏、未处理异常。
只评论与本次变更相关的问题,不要泛泛而谈。
输出JSON:{"summary": "...", "blockers": [...], "suggestions": [...]}
"""

模型选用deepseek-coder-v2,温度设为0.0,便宜且输出稳定。

三道质量关卡: - 第一关:Codex自己跑一遍pytest,失败就自动重试一次。 - 第二关:DeepSeek检查diff,发现Severe问题就打回给Codex,最多循环三次。 - 第三关:我人工核对一遍handoff.yaml和最终diff,控制在五到十分钟内。

三阶质检与回环机制

这套回环机制表面看多了几个步骤,实际效果是把“写完再返工”变成了“中途就拦截”。回到CSV导入那个需求,整条流水线跑下来的数据如下:

单Agent vs 多Agent端到端耗时与返工时间对比

综合来看,端到端速度提升了2.6倍,成本降到了原来的约三分之一(节省2.6倍),返工时间更是缩减到不足之前的三成。更关键的是我的心态变化——我再也不用同时扮演客户、架构师和测试员,去跟同一个模型来回拉扯了。

04 可直接上手的清单:多Agent协作的七条实战心得

如果你也想尝试这套模式,不必照搬我的四个模型组合,先把下面七条原则落实到位:

  1. 按认知角色划分,别按文件类型划分。 需求、架构、编码、审查是四种不同的思考方式,不是前端后端那种简单的模块切分。
  2. 每个Agent只专注一件事,且必须明确禁止越界行为。 比如Kimi禁止写代码,Codex禁止改接口,DeepSeek只能给审查意见不能提实现方案。
  3. 交接要用结构化格式,别用大段文字。 PRD用JSON/YAML,代码差异用git,状态同步用handoff.yaml,别让下游去猜你的意图。
  4. 把接口和契约冻结住。interface.lockARCHITECTURE.md把函数签名、错误码、数据库字段固定下来,谁想改谁就得负责。
  5. 审查必须有权叫停流程。 那种只夸不批的审查毫无价值。Severe问题直接打回,同时限制Codex只修指定问题。
  6. 调度先走线性,再考虑复杂DAG。 个人或小团队用百来行脚本就能跑通,别一上来就搞状态机那套。
  7. 把贵模型用在关键处。 需求理解和架构设计用强模型,纯审查和简单生成交给DeepSeek这类便宜模型。省下的token就是利润。

最后说句可能不中听的实话:市面上很多打着“AI员工团队”旗号的SaaS产品,本质上就是给API调用套了个多Agent的外壳,按月收取几百块一个席位的费用,对独立开发者来说大概率是花冤枉钱。 你自己花一个下午搭条流水线,既可控又能随意改,账单还明明白白。当然,如果你的团队已经有十个人规模、流程也标准化了,买现成工具能省下管理成本,那就是另一码事了。

说明:数据来源为公开行业报告综合整理、部分数值为估算仅供参考