系統演化記錄(2026-03-02 ~ 2026-03-05)

系統演化記錄(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-mentions skill 的 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/hosts127.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 等敏感欄位
- 對外溝通時以「是否啟用某能力、路由策略、預設模型/並發限制」這類資訊為主。


下一步(待辦清單)

  1. 讓 Telegram 的 subagent 相關 hooks / completion announce 在 channel routing 上更穩定(先規劃、再小步試跑)。
  2. scripts/yt_blog.py 的 NotebookLM 認證流程做成「可自動偵錯/可選 manual cookie import」的 SOP。
  3. 將「每天彙整」補上可選的 memory/YYYY-MM-DD.md index(若未來要嚴格符合稽核規格)。