查詢引擎對外呼叫若未經閘道收口,工具與檢索都易失控;對齊二〇二六 OpenClaw 閘道模型後,以白名單、檢索逾時熔斷與失敗摘要即可在遠端 Mac重現簽核級演練。📋
本篇目錄
本文為文章加操作指南:決策表後接目錄與程式骨架。延伸《LlamaIndex Workflows 遠端成本矩陣》、《閘道工具與重試》、《Haystack 閘道 HowTo》。
痛點拆解:
- 工具未與閘道登記一致,提示誤觸或惡意客戶端易繞過邊界。
- 向量或關鍵字後端尾延遲無截止時,整段回答迴圈易佇列雪崩。
- 長堆疊難進報表與工單,需關聯編號與欄位化摘要才利簽核。
| 控制點 | 僅應用層 | 閘道加應用 |
|---|---|---|
| 工具白名單 | 易繞過 | 單一真實來源可審計 |
| 檢索逾時 | 易雪崩 | 截止加熔斷護記憶體 |
| 失敗回傳 | 難簽核 | 信封含階段碼與提示 |
相較僅在LlamaIndex內調重試,閘道強制工具白名單能在多客戶端版本並存時維持同一信任邊界,利於跨團隊交接與事後稽核。
依賴與目錄佈局
專案根下分venv、indexes、scratch、configs;鎖檔釘版,索引絕對路徑寫入啟動腳本。推論只指閘道回環;檢索後端走內網並與出站規則一致。
閘道權杖與出站限制
權杖載租戶專案與工具範圍,檔案僅擁有者可讀且不入庫。閘道綁回環,對外僅隧道;出站白名單放行模型與觀測其餘拒絕。升版後先健康檢查再接查詢引擎流量,免驗證漂移誤觸熔斷。
QueryEngine 接入程式碼級步驟
客戶端基底網址改閘道路徑;建引擎前匯入允許工具。檢索用wait_for類截止,逾時累計熔斷,視窗內連觸發改空結果並帶retrieval_skipped。錯誤映射信封欄位如下。
async def retrieve_with_fuse(retriever, q, *, deadline_s, breaker):
try:
return await asyncio.wait_for(retriever.aretrieve(q), timeout=deadline_s)
except asyncio.TimeoutError:
breaker.record_timeout()
return [], {"stage": "retrieve", "hint": "縮小查詢或降批"}
def summarize_failure(exc, *, correlation_id):
return {"correlation_id": correlation_id, "stage": "gateway_or_retrieve",
"code": getattr(exc, "code", "unknown"),
"hint_one_line": "核對白名單與綱要版號"}熔斷開啟時抑制無界重試;上層依信封決定改寫查詢或轉人工。
日誌與 doctor 巡檢
每請求記關聯編號階段工具綱要版熔斷與耗時;敏感欄位雜湊。openclaw doctor對照儀表與本機設定,差異歸檔驗收包。浸泡須含成功、檢索逾時、驗證失敗、熔斷四類。
落地步驟
- 隔離目錄與鎖檔,固定索引路徑。
- 回環啟閘道,白名單與綱要表健康後再開隧道。
- 模型客戶端指閘道,關閉繞道變數。
- 檢索截止加熔斷,對齊工具逾時表。
- 信封與日誌欄位跑合成案例。
doctor加遠端一輪浸泡並封存雜湊。
可引用資訊:檢索截止秒數宜略低於閘道整段請求上限以免雙層互卡;熔斷視窗內應快失敗並附單行修復提示;白名單與綱要變更綁發版並保留雙人覆核紀錄。
常見問答
熔斷後仍要答使用者嗎?要,帶跳過旗標與單行說明。