2026 OpenClaw 用「五層模型」做分級排障:Channel / Account / Agent / Session / Memory 症狀對照表 + Mac 雲網關日誌對齊的可復現步驟
你已經能跑通 openclaw doctor,卻仍在「偶發不回復、群聊怪、上下文越來越慢」裡打轉——往往是因為把通道問題當成模型問題、把會話膨脹當成網關掛了。本文用 Channel、Account、Agent、Session、Memory 五層把故障面切開:先給每層「壞了長什麼樣」,再給症狀→層級路由表,接著寫 Mac 雲 7×24 下日誌路徑、輪轉與 Gateway 狀態欄位如何對齊 JSONL,最後給出先分層定位再跑 doctor的可執行順序,並鏈到站內 JSONL 可觀測性長文,避免與純命令階梯類文章重複勞動。
本文要點
1. 痛點:只堆 doctor 為什麼不夠
- 同一超時多義:IM 回調慢、模型首 token 慢、磁碟刷 JSONL 慢都可能表現為「Thinking 很久」;若不先判層,會把通道限流誤判成 Provider 429。
- 配置鍵合法 ≠ 行為正確:
doctor能過語法與埠探測,但 Account 層 Key 輪換、Channel 層 pairing 過期仍可導致「私聊正常、群聊不回」。 - 會話與記憶混談:Session 層並發與 Memory 文件膨脹都會推高 Token;只重啟網關不拆層,會反覆踩同一條彎路。
五層模型的價值是把「猜」變成「路由」:每一層有相對獨立的證據來源與最小修復動作。
2. 五層職責速查與典型壞法
下列描述面向 2026 年常見部署:Gateway 常駐、多通道並存、Mac 雲 SSH 運維。
- Channel(通道):Webhook、長連接、Bot 權限、群聊策略(如 requireMention)。壞了常見:配對失效、事件進不來、群與私聊行為不一致。
- Account(帳號/憑據):Provider Key、組織/工作區綁定、配額與計費身份。壞了常見:偶發 401/403、某帳號獨佔失敗而另一帳號正常。
- Agent(代理策略):工具白名單、技能包、系統提示與安全邊界。壞了常見:工具不調、誤拒操作、策略升級後行為突變。
- Session(會話):多輪上下文、spawn/隔離會話、並發對話。壞了常見:串臺、歷史錯亂、長線程越來越慢。
- Memory(記憶):長期事實與偏好文件、向量/圖譜(若啟用)。壞了常見:陳舊事實刪不掉、檢索噪聲大、上下文與記憶互相打架。
3. 症狀 → 層級路由表
| 症狀 | 優先查層 | 先別做 |
|---|---|---|
| 僅群聊不回、私聊正常 | Channel | 調模型 temperature |
| 所有通道同時 401 類錯誤 | Account | 重裝 npm 全局包 |
| 回復變保守、工具明顯少調用 | Agent | 盲目提高 max_tokens |
| 同用戶多話題互相汙染 | Session | 只清 Gateway 緩存目錄 |
| 事實陳舊、偏好刪了又回來 | Memory | 反覆重啟整機 |
4. 五步落地:分層證據 → 日誌對齊 → doctor
- 凍結時間窗:記錄故障起止 UTC、涉及 channel id / conversation id(若有),避免事後日誌被輪轉衝掉。
- 從 Channel 向外擴:先確認事件是否到達(投遞日誌、重放測試消息),再下鑽 Account 憑據是否在該通道上下文有效。
- 核對 Agent 變更:比對最近技能/策略變更與故障起點;必要時用最小復現會話單獨 spawn,排除群聊噪聲。
- Session 與 Memory 分流:對慢響應同時看會話長度與記憶文件寫入頻率;長文合併策略與 Gateway JSONL 中的 token 相關欄位對照(詳見站內可觀測性文)。
- 最後跑 doctor:在已定位層級後執行
openclaw doctor(必要時帶修復開關),避免「未讀日誌先 --fix」把問題層攪混。
Mac 雲上建議固定日誌目錄與 launchd 重定向路徑,保證 SSH 非登錄 shell 也能寫到與本地一致的 JSONL 文件;輪轉策略與磁碟水位見站內 7×24 運維類文章。
5. 可引用:Gateway 欄位、時間窗與 Mac 雲側
- 時間窗:排障默認抓取約 5–15 分鐘共置日誌;跨天問題需對齊日誌輪轉邊界,避免只看被截斷的文件尾。
- 欄位習慣:在 JSONL 中優先按 channel、conversation、request 關聯鍵橫向拉齊;不要把 ERROR 行當唯一信號。
- Mac 雲:為 Gateway 進程單獨預留磁碟水位(建議低於約 85% 佔用即告警);SSH 隧道暴露 18789 時,在分層排障中把「網絡 RTT」與「通道投遞」分開記錄。
- 與 doctor 的邊界:
doctor偏配置與健康探測;分層表偏業務症狀。二者順序應是「分層有假設 → doctor 驗證/修復配置面」。
6. FAQ 與和 JSONL 長文的銜接
多通道同時開,先從哪層? 仍建議 Channel→Account:先證明每條通道事件都入帳,再比較各通道帳號上下文是否串 Key。
多帳號如何減少誤判? 在路由表中把「全掛」與「單掛」區分:全掛更像 Account 或網絡;單掛更像 Channel 權限或會話路由。
會話膨脹優先動 Session 還是 Memory? 先量會話輪次與工具輸出體積,再查記憶寫入頻率;二者同時動容易失去對照。
只在筆記電腦或臨時容器裡反覆試命令、不把分層寫進 Runbook,很難撐住 7×24 業務流;純靠重啟更像賭運氣而非工程。要在穩定 Apple 硬體上把 Gateway、日誌與通道長期對齊,並把排障順序固化成可審計習慣,租用 VPSMAC 的專用 Mac 雲節點通常是更省心的底座。更細的 JSONL 欄位解讀、Token 預警與 Gateway 探針示例見站內長文,可與本文五層順序串聯使用。