为什么4个并行Agent,不该一起改同一个文件

"同时运行 4 个 Agent"正在从极客演示变成真实工作方式。

OpenAI 9 月 6 日发布的内部数据提到,研究员经常在并发会话中使用 coding agents,使用 4 个或更多 Agent 的高并发方式正在增加。更有意思的是,官方没有把并发包装成线性提速:3.1 个 Agent 工作日只是运行时口径,复杂流程仍有其他瓶颈;成功的 4--8 小时任务里,超过一半至少需要一次人工介入。

多 Agent 的工程难点因此不在 Promise.all(),而在共享状态。四个 Agent 可以同时工作,不代表它们应该同时改同一个文件、操作同一个浏览器、提交同一个账号。

判断能否并行,只问两个问题

第一,两个任务之间有没有数据依赖?

第二,它们会不会写同一个可变资源?

可以用一个很小的判定器表达:

ts 复制代码
function canRunInParallel(a: Task, b: Task) {
  const hasDependency =
    a.dependsOn.includes(b.id) || b.dependsOn.includes(a.id);

  const sharedWrites = a.writes.some(resource =>
    b.writes.includes(resource)
  );

  return !hasDependency && !sharedWrites;
}

这比按"岗位名称不同"判断更可靠。研究 Agent 和编辑 Agent 名字不同,但如果编辑依赖尚未冻结的事实,它们就不该全程并发。两个平台编辑都叫 editor,只要分别写 csdn.md 和 juejin.md,反而可以安全并行。

用 fork-join 切开任务

以多平台内容生产为例,比较清晰的图是:

text 复制代码
                       ┌─> product_facts ─┐
brief ── fork ─────────├─> audience_q&a ──┼─> join/freeze
                       └─> trend_scan ────┘       │
                                                  ├─> csdn.md
                                                  ├─> juejin.md
                                                  ├─> toutiao.md
                                                  └─> images/
                                                        │
                                                   review/join
                                                        │
                                                   publish queue

第一轮并行收集相互独立的证据,join 后生成只读事实版本。第二轮并行产出互不覆盖的稿件和视觉,review 后进入单一发布队列。

这套图里最重要的不是 fork,而是两次 join。没有明确汇合条件的并发,只会把不完整产物更快地推向下游。

Artifact Contract 比群聊转述可靠

每个 Agent 的返回值不应该只有一段"我已经完成"的自然语言。至少要有:

json 复制代码
{
  "taskId": "juejin-draft",
  "artifact": "platforms/juejin.md",
  "basedOn": "facts@sha256:5e...",
  "checks": {
    "newUnverifiedClaims": 0,
    "imageCount": 2,
    "summaryLength": 78
  },
  "status": "needs_review"
}

basedOn 解决版本漂移,checks 让合并节点只看异常,status 则决定是否可以进入下一阶段。人不必复读所有上下文,只处理差异和例外。

共享资源使用 single-writer

对唯一真相源、浏览器和生产账号,我更倾向单写者模型:

yaml 复制代码
facts_source:
  writer: research_lead
  readers: "*"

platform_files:
  writer: owning_editor
  isolation: path

browser_session:
  writer: publisher
  concurrency: 1

external_submit:
  writer: publisher
  gate: human_confirmation

所谓 single-writer,不是禁止协作,而是禁止多个岗位直接争抢同一个最终状态。其他 Agent 可以提交 patch 或建议,由 owner 合并。这个约束看似保守,却能消掉大量最难复现的竞态问题。

并发预算不应等于模型上限

系统能开 20 个 Agent,不代表应该默认开 20 个。并发度至少受四件事约束:

  • 独立子任务的数量;
  • 人能同时审核多少异常;
  • 外部 API、浏览器和账号的限流;
  • 失败后需要回滚的共享状态。

一个实用的策略是小批次 fan-out:先并行 3--4 个证据任务,join 后再决定是否继续。与其让十几个 Agent 在错误前提上跑很远,不如让事实冻结成为天然的背压点。

这也是我们做 Tipkay 时偏向岗位化 AI 团队的一个原因。官网描述的方式是:复杂目标拆给不同岗位,每位员工做好自己的部分,再把结果交给下一位;岗位分别配置经验、流程、Skill 与 MCP。这里不把它包装成"无限并发",真正想解决的是所有权和交接:谁读什么、写什么、何时停下等确认。

如果要记一条落地规则,我会选这一句:

text 复制代码
读共享,写隔离,提交串行。

多 Agent 的价值不是让屏幕上同时跑满进度条,而是把互不依赖的等待重叠起来,同时不牺牲版本一致性和对外动作的确定性。

参考资料:

相关推荐
在所不辞兄4 小时前
【零基础学智能仿真-53】多智能体协作——有限元自动化实战从工程需求到可审核的仿真报告
人工智能·深度学习·神经网络·机器学习·有限元
AI Coder 码农王6 小时前
AgentScope Java v2 第3课,从 ReActAgent 到 HarnessAgent
人工智能
格物致胜工业数智技术6 小时前
明治EOS系列传感器技术解析:精密制造高反光金属件在位检测
人工智能·制造
甲维斯6 小时前
DeepSeek 新版还是难评!
人工智能
晨间晓6 小时前
图片细节丰富不丰富?用华为云码道开发 OpenCV 纹理复杂度分析工具
人工智能·opencv·华为云
2603_965148117 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
镜象科技7 小时前
什么是好的校园AI心理健康解决方案服务商?从中外校园心理服务的一天说起
人工智能
Geeys7 小时前
拼多多单品推广完整方案(可直接落地)
大数据·人工智能
泡椒鸡脚7 小时前
AI室内设计风格融合:把布局、材质和光影参考分开写
人工智能·材质
袁俪7 小时前
世界模型与智能体
人工智能