Temporal 提供可重播的耐久編排,但呼叫 OpenClawActivity 仍須具備一般 HTTP 客戶端的維運脊幹:閘道工具白名單、誠實的 活動心跳(heartbeat) 邊界,以及工作流可合併的 精簡失敗摘要,而非整段代理轉錄。本篇面向專用遠端 Mac,Worker、閘道與模型是否共用 loopback,都應先寫進 Runbook。

建議先讀Agno 閘道工具白名單篇sessions_spawn 失敗摘要回傳,再對照Task Brain 身分切分,讓編排稽核與閘道日誌能用同一組 correlation 對帳。

本頁導覽: 常見三類故障 · Worker 身分 · 重試策略 · 機密注入 · 閘道 loopback/隧道 · 可重現步驟

維運上反覆踩到的三種情境

其一,Bearer 有效卻出現「空工具表」,常因 HTTPSession 工具仍在預設拒絕清單。其二,長時間 OpenClaw 呼叫未送心跳,Temporal 端已逾時取消,閘道側請求仍在跑,重試時易造成重複副作用。其三,把權杖塞進工作流輸入會進入重播歷史,匯出或除錯時外洩。下列 H2 逐一對應可調旋鈕。

Worker 身分

為 Python Worker 註冊每環境穩定的 task queue、可讀的 worker identity 字串,以及版本化用的 build id。在 OpenClaw 閘道請求標頭或日誌帶上相同的關聯識別(correlation id),歷史與閘道線路才能 join。互動式除錯佇列與正式排程佇列應分開,爆炸半徑與自動擴縮規則才清晰。

重試策略

工作流程式碼保持決定性,勿在內直接呼叫 OpenClaw。對外 HTTP 與工具呼叫一律放進 Activity,並設定 retry policy、反映佇列壓力的 schedule_to_start,以及涵蓋最壞延遲加閘道等待的 schedule_to_close。驗證錯誤與明確的用戶端過失應標為 non_retryable;可重試路徑用有上限的指數退避,避免恢復時把閘道打滿。

機密注入

OpenClaw 權杖、模型 URL、租戶識別應經由 Worker 行程環境、動時讀取的密封檔,或 Activity 進入點才讀的秘密管理服務注入,不要寫進工作流參數、子工作流 payload,或會落盤的搜尋屬性。輪替時以重啟 Worker 並排空進行中 Activity 為主,避免在重播程式碼路徑內突變秘密。

閘道 loopback/隧道模式說明

Loopback 適用於閘道監聽與 Worker 位於同一臺 macOS,Activity 直接打 127.0.0.1,延遲與 TLS 終止最單純。隧道模式以 SSH -L 本機轉發:Worker 仍對 localhost 發請求,由 sshd 轉到實際監聽位址,適合閘道在容器網路或另一介面、但希望程式碼維持固定 base URL 的場景。兩者擇一後寫入服務說明,錯配 DNS 往往浪費數小時。無論哪一種,都要與開頭所述 Agno 白名單思維一致,只放行實際會呼叫的 tools/invoke 等路徑。

模式 適用時機 主要風險 緩解
Loopback 閘道與 Worker 共機;可鎖定固定埠。 與其他開發服務搶埠。 在 launchd plist 釘選埠號,並與 task queue 名稱並列記錄。
SSH 本機轉發 閘道在另一命名空間;Worker 仍看 localhost。 隧道靜默斷線導致重試重複工具呼叫。 以極小探針工作流偵測隧道,並以工作流 id 加 activity attempt 綁 冪等鍵
混合 Temporal 叢集在雲端、OpenClaw 留在 Mac Worker 機。 雲端與 Mac 日誌時鐘與脈絡分裂。 Temporal 搜尋屬性與 OpenClaw 請求帶同一 correlation id

可重現步驟(上線排程前於遠端 Mac 依序完成)

下列步驟假設你已具 Temporal Cloud 或自管端點的 TLS 連線資訊,並要在專用 Mac 上常駐 Worker。

  1. 安裝 Node 22 LTS 與發行說明對齊的 OpenClaw CLI,執行 openclaw doctor;將標準輸出與命名空間一併歸檔。
  2. 啟動閘道或建立隧道後,把 OPENCLAW_BASE_URL 寫成團隊共識的 loopback 或轉發埠。
  3. 簽發短效 Bearer;在閘道對齊 SessionHTTP 工具允許清單,涵蓋 Activity 將呼叫的 invoke 路徑。
  4. 以 Activity 包裝 OpenClaw:設定 逾時、長串流期間定期 heartbeat,回傳工作流可分支的型別化結果。
  5. 註冊 Worker:task queueidentitybuild id 與 Runbook 一致;連線 Temporal 端點並驗證 TLS。
  6. 混沌演練:刻意斷隧道或擋閘道埠,確認歷史出現預期嘗試次數,且 Activity 回傳小型 JSON 失敗信封(含 id 與錯誤類別),而非整頁 HTML。
  • 驗收門檻:心跳間隔須嚴格小於命名空間預設的活動心跳逾時。
  • 驗收門檻:失敗 JSON 維持數 KB 內,歷史成本才可控。
  • 驗收門檻:每次 OpenClaw 請求記錄的 correlation 須與 Activity 完成註記一致。

FAQ

要把完整轉錄灌回工作流嗎? 不建議;依 sessions_spawn 篇只合併摘要,完整追蹤放物件儲存並以 correlation 索引。

Temporal 能取代閘道政策嗎? 不能;Temporal 管重試與逾時,OpenClaw 仍負責工具可見性與權杖範圍。

延伸可瀏覽技術部落格其他 OpenClaw 主題;產品脈絡見首頁定價購買頁免登入瀏覽,再依本篇 Runbook 在租用節點上重現浸泡測試。

小結(含採購引導):釘選 task queue、worker identity 與 build id;僅在 Activity 內呼叫 OpenClaw,搭配心跳與有上限重試;機密留在歷史之外;依環境選 loopback 或 SSH 隧道並對齊閘道白名單與 Bearer 範圍;錯誤以精簡 JSON 回傳以利耐久重播。筆電驗通後,建議在常駐遠端 Mac mini M4上跑相同混沌腳本與排程浸泡——可先查定價算時數池,再到購買頁選節點;架構與帳務問題可參說明中心