多 Agent

并发的代价:谁能同时跑

「看」可以并行:多个搜索同时跑不会冲突。「改」必须排队:两个 Agent 同时改同一个文件会出事。判断一个操作能否并发,关键就一条:它是只读的吗?

可并行 vs 必须串行
可并行(只读操作)
搜索网页
读取文件
查询 API
数据分析
数据库查询
读取笔记

这些操作不修改任何东西,多个同时跑互不影响。10 个 Agent 同时搜索不会冲突。

必须串行(写操作)
写入文件
发送邮件
执行命令
删除资源
支付操作
编辑笔记

这些操作会改变外部状态。两个 Agent 同时改同一个文件 = 数据覆盖、内容丢失。

时间线对比

同一个任务:3 次搜索 + 1 次写入

3 个搜索并行,写入排在最后
搜索 A
2s
搜索 B
3s
搜索 C
2s
写入
1s
0s2s4s6s
总耗时:~4 秒 ✓
判断规则
一条规则判断能否并发:
这个操作执行完,世界有没有变?没变 → 可以并行
这个操作执行完,世界有没有变?变了 → 必须排队
两个「写」操作如果改的是不同的东西(不同文件、不同数据库表)→ 也可以并行

简单说:冲突发生在多个操作修改同一个资源的时候。只要目标不同,写操作之间也可以并行。

并行能省时间,但只有只读类操作才安全,涉及「写」的操作必须排队。设计多 Agent 系统时,第一步就是把工具分成「读」和「写」两类。