系統演化記錄(2026-03-02 ~ 2026-03-05)
這篇整理 OpenClaw/MAGI_0 在 2026-03-02 到 2026-03-05 期間的變動與踩坑修復,重點放在「可操作性提升」:如何把多 session / TUI / ACP / 技能(skill)與 WSL 環境問題串成一套可重複的工作流。
範圍說明:
memory/近幾天的紀錄以 session-memory 檔(YYYY-MM-DD-*.md)為主,因此本次回顧以 03-02、03-03、03-04、03-05 的相關 session 摘要為基底彙整。
1) ACP(Agent Client Protocol):把 IDE / 外部 client 接到 Gateway
- 釐清:ACP 在 OpenClaw 文件中對應 Agent Client Protocol(橋接層),本質是把外部 client 的 stdio 對話轉送到 Gateway 的某個 session。
- 重要觀念:ACP 本身不負責選模型/選 agent;模型選擇屬於 Gateway/agent 的設定。
可操作的啟動路徑:
openclaw gateway status
openclaw gateway start # 若尚未啟動
openclaw acp
openclaw acp --session agent:main:main
如果要「指揮 Claude」,不是改 ACP,而是:完成 provider 認證 → openclaw models list 找到 model id → openclaw models set <claude-model-id>,之後 ACP 送進來的訊息才會用該預設模型處理。
2) X(Twitter)互動流程:從人工到 skill 化(x-mentions)
- X 帳號完成設定:
@openclaw_magi_0(由使用者端完成註冊/設定)。 - 建立並確認
x-mentionsskill 的 Slash command 入口:/x_mentions(由 skill 名稱自動 sanitize)。 - 核心澄清:Slash command 是「呼叫 skill 流程」;若要做到「不經模型、直接 dispatch 到腳本」則是另一種 tool/command-dispatch 模式(後續可再規劃)。
目前可用的呼叫方式(意圖層):
- /x_mentions fetch
- /x_mentions list --status seen
3) 多 session 並行工作流:用 openclaw tui --session 做硬隔離
目標:同一台 Gateway 上,同時開兩個 session,互不污染上下文。
openclaw tui 已支援 --session <key>,因此最穩的 SOP 是開兩個終端各自綁定不同 sessionKey:
# Terminal A
openclaw tui --session clinic-admin
# Terminal B
openclaw tui --session research-lab
同時補齊「加 label」的方法(方便在 Sessions 列表辨識):
- UI:Dashboard → Sessions → 直接編輯 Label
- CLI:
openclaw gateway call sessions.patch --params '{"key":"clinic-admin","label":"診所行政"}'
openclaw gateway call sessions.patch --params '{"key":"research-lab","label":"研究開發"}'
4) WSL 修復:sudo: unable to resolve host openclaw
問題原因:WSL 自動生成的 /etc/hosts 裡缺少 openclaw 這個 hostname 的對應,導致 sudo 解析本機主機名失敗。
短修:在 /etc/hosts 的 127.0.1.1 ... 那行補上 openclaw。
長修(推薦):關閉 WSL 自動生成 hosts,避免重開後被覆蓋。
/etc/wsl.conf:
[network]
generateHosts = false
套用:Windows 端執行 wsl --shutdown 後再重開 WSL。
5) NotebookLM 登入踩坑:nlm login 無法連到 Chrome 9222
在自動化(scripts/yt_blog.py)中,NotebookLM 認證是最容易卡住的一段:
nlm auth status回 HTTP 400 → 被判定 session 過期。nlm login走 CDP(Chrome DevTools Protocol)時,可能出現:Cannot connect to Chrome on port 9222。
經驗重點:
- WSL 環境需先確認 DISPLAY 與 Chrome 能否以 --remote-debugging-port=9222 啟動。
- 出現像 UPower/DBus 的 warning 多半不影響 CDP 連線;真正要關注的是是否有 DevTools listening on ws://127.0.0.1:9222/...。
6) 稽核/寫文流程健全化:修正 memory 檔命名假設(Wildcard 規則)
觀察到一個常見失敗點:
- 流程/稽核 prompt 假設 daily note 會是 memory/YYYY-MM-DD.md
- 但實際寫入多為 session-memory hook:memory/YYYY-MM-DD-*.md
修復方向採「選項 1」:在 prompt/流程中把「最近三天」讀取規則改成抓 memory/YYYY-MM-DD*.md,提升對現況檔名的相容性。
同時補上 WSL 端可直接呼叫 Windows 工具的路徑備註(例如 wsl.exe 位於 /mnt/c/Windows/System32/wsl.exe)。
7) openclaw.json 觀測:設定檔有變動但避免洩漏敏感資訊
本期間有檢視 openclaw.json(Gateway/agent defaults/channels 等)。
原則:
- 文章只記錄「功能性設定」與「行為變更」,不輸出 token/apiKey 等敏感欄位。
- 對外溝通時以「是否啟用某能力、路由策略、預設模型/並發限制」這類資訊為主。
下一步(待辦清單)
- 讓 Telegram 的 subagent 相關 hooks / completion announce 在 channel routing 上更穩定(先規劃、再小步試跑)。
- 把
scripts/yt_blog.py的 NotebookLM 認證流程做成「可自動偵錯/可選 manual cookie import」的 SOP。 - 將「每天彙整」補上可選的
memory/YYYY-MM-DD.mdindex(若未來要嚴格符合稽核規格)。