二〇二六知識庫團隊在遠端 Mac跑GraphRAG建索引,若缺OpenClaw工具白名單與社區檢測批大小熔斷,最易統一記憶體爆峰或出站失控。本文給決策矩陣、五步 HowTo與PR/CI 失敗摘要模板。🕸️
導覽:痛點 · M4 環境 · onboard 白名單 · 逾時熔斷 · CI 摘要 · FAQ · 可引用 本機 RAG 矩陣、LiteLLM 路由、首頁。
痛點拆解
- 批大小錯置:社區檢測與 embedding 批過大,迷你主機第四代統一記憶體瞬間打滿,索引任務被系統殺进程。
- 出站無界:GraphRAG 直連多供應商,工具與網域未白名單化,審計與帳務難對齊單一閘道。
- 失敗不可追:長索引逾時無標準信封,PR/CI 只能看到紅字日誌,無法重放當批語料。
GraphRAG 在 M4 上的環境與批大小閾值
鎖定 Python 與 GraphRAG 次要版本;預留統一記憶體三成給系統與向量落盤。批大小請對照本機 RAG 決策矩陣之 embedding 欄位,勿與查詢路徑混用同一池。
| 階段 | 保守起點(16GB 統一記憶體) | 風險訊號 | 建議動作 |
|---|---|---|---|
| 文字分塊入庫 | 批 32~64 段;overlap 依矩陣稿 | 磁碟 IO 飽和 | 降批並序列化讀檔 |
| embedding | 批 8~16;維度鎖檔 | 記憶體尖峰 > 85% | 改 8 並關閉並行讀檔 |
| 社區檢測 | 批 4~8 圖;單工序列化 | CPU 長尾 > 30 分鐘 | 拆子圖重跑並寫 stage |
| 查詢路徑 | 與索引分 profile;併發 ≤2 | 查詢拖垮索引槽 | 獨立閘道路由鍵 |
openclaw onboard/閘道權杖與出站網域白名單
- 於租用主機執行 openclaw onboard,留存閘道接聽位址與設定驗證摘要。
- 匯出短期 Bearer僅授權索引工具:建圖、嵌入、查詢三類 JSON Schema,其餘動詞拒絕。
- 出站網域白名單僅允許相容 LLM 端點與向量庫;供應商密鑰只存閘道側。
- GraphRAG 的 OpenAI 相容客戶端基底網址改指向閘道,模型別名與LiteLLM 路由稿對齊。
索引/查詢逾時熔斷與重試模板
| 路徑 | 連線/首包/整體 | 熔斷 | 重試 |
|---|---|---|---|
| 建索引 | 300ms/15s/45~90min | 60s 視窗連 3 同類失敗 | 指數退避至多 4 次 |
| 區域查詢 | 300ms/8s/120s | 連 5 逾時開熔斷 | 僅逾時可重試 |
| 全域查詢 | 300ms/12s/180s | 與索引分計數 | 政策拒絕不重試 |
{ "correlation_id": "gr-…", "stage": "community_detect", "hint": "lower_batch", "retry_after_sec": 60 }失敗摘要回傳 PR/CI 的步驟
- 索引腳本 catch 後序列化脫敏信封(無 prompt 原文、無金鑰)。
- CI 上傳
graphrag-fail-summary.json為構建產物,PR 註解貼 correlation_id 與 stage。 - 熔斷開啟時標記
needs_human,避免自動重試放大風暴。 - 合併前對照閘道審計日誌與批大小設定束是否一致。
- 驗收:同語料在租用節點重放,第九十五百分位延遲與峰值記憶體寫入簽核表。
embedding 爆記憶體 FAQ
先降 embedding 批再降社區批;關閉並行讀檔;檢查向量快取是否寫入 ~/Library/Caches 導致雙份佔用。仍爆峰則改夜間序列化社區階段,並複製RAG 矩陣之配額欄至遠端 profile。
索引與查詢能否共用熔斷?不建議——請以 stage 分流計數,避免 CI 把長索引誤判為查詢 SLA 退化。
可引用資訊
- 16GB 統一記憶體機型建議embedding 批不超過 16,社區檢測不超過 8(實測再調)。
- 建索引整體逾時宜為單階段工具逾時的六十倍以上,避免鏈式誤殺。
- 失敗摘要留存至少三十天,對齊月結與配額重置節奏。
結尾與動線
參數束複製至LLM 遠端 Mac 節點做二十四小時浸泡;續讀本機 RAG 管線矩陣與LiteLLM 閘道路由。首頁、定價免登入;長索引選型至套餐購買。