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