情境
同一個大型專案同時開著三個 agent:一個查架構、一個寫測試、一個做 code review。三者都需要讀同一座 Palace。
v3.9.0 前,若三個 CLI 都各自 direct-search,大型 HNSW 可能被載入多份。v3.9.0 有健康 Hub 時,CLI search 會優先共用 Hub collection。
三條查詢同時進行
# agent A
mempalace search --query "訂單服務的重試決策"
# agent B
mempalace search --query "PaymentService 測試隔離原則"
# agent C
mempalace search --query "最近一次 deadlock postmortem"
對使用者來說指令不變;差異在 runtime topology:三個讀取可以由 Hub 平行處理,而不是三個 process 各自持有完整 index。
寫入仍要序列化
共享 Hub 並不代表所有 mutation 都可以無鎖並行。v3.9.0 保留 mutation exclusive,讀取才使用 shared lock。這避免兩個 agent 同時修改同一批 Drawer metadata 時製造競態。
任務交接
多人/多 agent 協作時,建立任務前記錄:
- immutable base commit
- definition of done
- 對應 topic
之後用 logstream topic routing 只追該任務的事件,避免整條 fleet log 混在一起。
關鍵學習點
- 大型 read-mostly index 適合 centralize;client 可以保持輕量。
- 「讀可平行、寫要控序」比一把 global lock 更有效率。
- shared state 一定要連同 health、auth、fallback 與 task identity 一起設計。