LangGraph 上線後最常爆的是三件事:thread_id分叉、checkpoint 後端扛不住併發寫、以及工具逾時與沙箱配額沒驗就收。下面給決策矩陣、選型提示與遠端 Mac 長跑清單。

延伸閱讀:LLM 工作流與 OpenClaw 主題本機推理矩陣工具逾時與重試沙箱與探針首頁了解平台;長時程節點見購買頁

編排決策矩陣(速查)

由原型到多 worker:遠端長跑請同時盯checkpoint 增長併發寫入

維度 thread_id Checkpoint:SQLite/Postgres 提示 interrupt Tool timeout 目錄/工作區配額
本機開發 固定字串或 UUID;寫入結構化日誌 SQLite 單檔於專案外路徑;避免放在會被同步軟體掃描的目錄 可開;用於核准敏感工具 短(5–30s)逼出錯誤路徑 沙箱根目錄 ~/Library/Application Support/youragent/scratch;軟性上限即可
遠端 Mac 長跑 與外部 ticket/會話主鍵對齊;重試不改 thread 若多行程同時寫入或需備援,優先評估 Postgres;單機仍可用 SQLite 但鎖競爭需壓測 與 SLA 綁定;逾時自動拒絕或轉人工佇列 依下流年產能設階梯(例如 30s/120s/15m) 硬性配額:佔用位元組+檔案數;df 與 inode 告警
多租戶/合規 租戶前綴+不可猜測 id;稽核欄位不可缺 Postgres+分區或依租戶 schema;保留週期與刪除請求(DSR)流程 審批鏈與身分驗證掛鉤 全域預設+每工具覆寫 每租戶獨立沙箱根;配額與備份可獨立執行

Checkpoint:SQLite 與 Postgres

SQLite:單機原型快、備份即拷檔;多行程同寫與長跑膨脹要壓測,並訂過期 checkpoint 清理Postgres:多 worker、HA、可查詢營運面較佳;對 thread_id/時間戳建索引,必要時分 schema隔離 Agent 資料。

thread_id、interrupt 與 tool timeout

thread_id須由上游發放且重試不改,否則狀態分叉。interrupt要配恢復與業務逾時,避免凍結佔滿佇列;與tool timeout(下線護欄)分開設。逾時分類請併用重試策略

HowTo(最小步驟)

  1. API 驗證 thread_id;日誌與閘道對齊同一欄位。
  2. 選定 SQLite 或 Postgres 後做 1–2h soak,看寫入與空間曲線。
  3. 沙箱僅寫入指定樹;設目錄位元組+檔案數配額與 inode 告警。
  4. interrupt/棄單/刪快照寫進 runbook;遠端 Mac 模擬斷線、503、磁碟滿。
export LANGGRAPH_CHECKPOINT_URL="postgresql://…/ckpt" # 或 sqlite:////…/graph.ckpt export TOOL_TIMEOUT_DEFAULT_SEC=60 export AGENT_SANDBOX_ROOT=~/Library/Application\ Support/youragent/sandbox df -h "$AGENT_SANDBOX_ROOT"; ulimit -n

遠端 Mac 長跑:驗收清單

  • thread_id 可稽核;checkpoint 增長與備份還原演練過。
  • 工具逾時/重試/熔斷有儀表;沙箱配額與暫存清理到位。
  • interrupt 佇列有處理或釋放的 SLI,不堆幽靈任務。

摘要:thread_id、checkpoint、interrupt、tool timeout、目錄配額一併驗收後,再放大遠端長跑流量。