多 Agent
併發的代價:誰能同時跑
「看」可以並行:多個搜索同時跑不會衝突。「改」必須排隊:兩個 Agent 同時改同一份檔案會出事。判斷一個操作能否併發,關鍵就一條:它是只讀的嗎?
可並行 vs 必須串行
可並行(只讀操作)
搜索網頁
讀取檔案
查詢 API
數據分析
數據庫查詢
讀取筆記
這些操作不修改任何東西,多個同時跑互不影響。10 個 Agent 同時搜索不會衝突。
必須串行(寫操作)
寫入檔案
發送郵件
執行命令
刪除資源
支付操作
編輯筆記
這些操作會改變外部狀態。兩個 Agent 同時改同一份檔案 = 數據覆蓋、內容丟失。
時間綫對比
同一個任務:3 次搜索 + 1 次寫入
3 個搜索並行,寫入排在最後
0s2s4s6s
總耗時:~4 秒 ✓
判斷規則
一條規則判斷能否併發:
呢個操作做完,世界有冇變?沒變 → 可以並行
呢個操作做完,世界有冇變?變了 → 必須排隊
兩個「寫」操作如果改的是不同的東西(不同文件、不同數據庫表)→ 也可以並行
簡單説:衝突發生在多個操作修改同一個資源的時候。只要目標不同,寫操作之間也可以並行。
並行能省時間,但只有只讀類操作才安全,涉及「寫」的操作必須排隊。設計多 Agent 系統時,第一步就是把工具分成「讀」和「寫」兩類。