OpenClaw 的正確打開方式:從也就那樣到離不開

作者:Feisky
日期:2026年4月28日 下午1:33
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

OpenClaw 要「養」先寫好 SOUL、USER、AGENTS 三個檔案,再配記憶同 Skills,先至會從「也就咁樣」變成「離唔開

整理版摘要

呢篇文章係由一位 OpenClaw 用家寫嘅,佢最初裝完 OpenClaw 覺得同 Claude Code 冇咩分別,仲要多一層 Gateway 要維護,差啲想刪咗佢。後來佢發現問題唔喺 OpenClaw 唔得,而係佢冇「養」好。佢分享咗點樣一步步將 OpenClaw 從「也就咁樣」調教到「離唔開」嘅過程。

整體結論係OpenClaw 係一個完整嘅 agent runtime,但唔係裝完就有用,一定要花時間寫好 SOUL.md(點樣講嘢)、USER.md(點樣理解你用家)同 AGENTS.md(點樣做嘢),再配合記憶系統、Skills、ACP 同 Cron,先至可以發揮佢真正嘅價值。作者強調,純論 code gen 能力,Claude Code 仲係強過 OpenClaw,但 OpenClaw 嘅優勢在於可以透過 IM 渠道交互、有記憶、模塊化 Skill 擴展、同埋可以 spawn 其他 agent 做任務,養成之後真係離唔開。

  • OpenClaw 需要通過 SOUL.mdUSER.md、AGENTS.md 三個核心檔案「養成」,先至會變得有用;其中 SOUL.md 管說話語氣、USER.md 管理解用家、AGENTS.md 管流程,分開寫好重要。
  • SOUL.md 要寫具體語氣同禁用詞,仲要畀好輸出同壞輸出嘅範例,千祈唔好寫太長(1000-2000 字就夠),同埋唔好同 AGENTS 混埋一齊。
  • 記憶系統靠 MEMORY.md、每日筆記、working-buffer 同 SESSION-STATE.md 實現,類似 Write-Ahead Logging,每次重要發現會即刻落盤;Dreaming 功能可以定時整理長期記憶,但要定期手動清理避免膨脹。
  • Skills 要精選,分通用增強、安全防護同領域專用三類;安裝外部 Skill 前一定要用 skill-vetter 審查安全,避免隱藏嘅自動任務或遙測代碼。
  • ACP 可以 spawn Claude Code 等 coding agent 做審查 PR 等工作,Cron 可以定時跑 Git Sync、AI News、Issue Triage 等任務;要注意 Gateway 升級後可能配置唔兼容,建議先跑 openclaw doctor --fix 先重啟。
整理重點

養成第一步:寫好三個核心檔案

OpenClaw 嘅 workspace 入面有三個核心檔案,分別管唔同嘢。SOUL.mdOpenClaw 點樣講嘢,唔係 system prompt,而係 Agent 嘅身份定義。USER.md 管 OpenClaw 點樣理解你,放你嘅決策風格、溝通習慣之類,唔係放簡歷。AGENTS.md 管 OpenClaw 點樣做嘢,純流程,例如做咩唔做咩、失敗點處理、PR 點提咁。

呢三個檔案嘅分離好關鍵SOUL.md 寫好後好少變,AGENTS.md 要成日更新,USER.md 則隨住 Agent 更瞭解你而逐步補充。

如果你求其寫,OpenClaw 會答技術問題先嚟三段廢話。所以要寫得具體,例如語氣要「language with voltage」,每句話要值得存在。禁用詞表都要有,例如 comprehensive、robust、leveraging 呢啲 AI 味詞彙全部禁。

整理重點

調教 SOUL.md 嘅具體方法

調咗幾版之後,有幾個教訓。最大嘅係唔好寫太長,1000-2000 字就夠,太長佔上下文空間,又會降低 Agent 智能。另一個犯錯係將 SOULAGENTS 混埋一齊,個性相關嘅放 SOUL,流程相關嘅放 AGENTS,分開先分得清輕重。

SOUL.md 唔係寫完就唔鬱,建議每星期花幾分鐘回顧,刪冇用嘅,加新遇到嘅問題。作者自己改咗四五版,每次改完都覺得 OpenClaw 又多咗啲明白佢。

另外,唔好將 SOUL 寫成 system prompt 咁長篇大論,重點係畀具體語氣同例子,而唔係列一大堆 rule。

整理重點

記憶系統:讓 OpenClaw 唔再「失憶」

LLM 最大問題係無狀態,OpenClaw 嘅解決方案係一套基於檔案嘅記憶系統:MEMORY.md(長期記憶)、memory/日期.md(每日筆記)、working-buffer.md(危險區緩衝)、SESSION-STATE.md(活躍任務狀態)。

記憶機制類似數據庫嘅 Write-Ahead Logging:先落盤,再回應。一發現重要資訊(例如你糾正錯誤、做決策、表達偏好),就即刻寫入檔案,然後先回你。

如果多個項目用 OpenClaw,建議每個項目開獨立目錄放記憶,主 MEMORY.md 只放索引,避免互相干擾。長 session 觸發 context compaction 時,OpenClaw 會先讀 working-buffer.md,再讀 SESSION-STATE.md,然後翻近兩日嘅日記。

整理重點

Skills 與自動化:讓 OpenClaw 自己幹活

Skills 係擴展 OpenClaw 能力嘅機制,每個 Skill 係一個包含 SKILL.md 嘅文件夾。作者將 Skills 分三類:通用增強(proactive-agent、self-improvement等)、安全防護(skill-vetter、dangerous-action-guard等)、領域專用(github、cve-check等)。

安裝任何外部 Skill 之前,一定要先用 skill-vetter 審查安全。作者試過從社區精選 10 個,審查完跳過 3 個:一個會偷偷發 Reddit 請求,一個帶自動 cron 任務,一個藏咗遙測代碼。

ACP 可以 spawn Claude CodeCodex 等 coding agent 做審查 PR 等工作,流程係你 → OpenClaw → 分析任務 → spawn agent → 獨立沙箱執行 → 完成後彙報。仲可以 bind 到 Discord 頻道,直接係 IM 入面同 agent 對話。

Dreaming 配置範例 json
{
  "memory-core": {
    "config": {
      "dreaming": {
        "enabled": true,
        "frequency": "0 19 * * *",
        "timezone": "Asia/Shanghai"
      }
    }
  }
}

Cron 系統可以定時跑任務,每個 job 獨立 session。作者配咗 Git Sync(每小時)、AI News(每 8 小時)、Dreaming、Issue Triage、Version Check 等。

整理重點

踩坑總結同最終對比

作者分享咗幾個踩過嘅坑Gateway 重啟後 ACP sessions reconcile 失敗,原因係舊 session 用 v1 格式,新版只認 v2,要殺 stale harness 再重啟;建議將 tools.sessions.visibility 設成 all,唔係盲調。

每次升級 OpenClaw 後,唔好急住重啟 gateway,要先跑 openclaw doctor --fix 檢查依賴同配置兼容性,唔係 gateway 重啟後可能完全死機。

純論 code gen,Claude Code 仍然強過 OpenClaw。但 OpenClaw 嘅真正優勢係完整 agent runtime:可以透過 IM 隨時交互、有記憶系統、模塊化 Skills、ACP 調度其他 agent、Cron 自動化。不過呢啲都唔係裝完就有,要花時間養。

SOUL/USER/AGENTS 寫得越具體就越懂你,記憶積累越多越好用,Skills 選得越精準就越靠譜。剛開始要折騰,但養一段時間之後,你會發現你已經離唔開佢。

啱啱裝完 OpenClaw,簡單試咗幾個場景,覺得都係咁啦。同直接用 Claude Code 比較,睇唔出有乜嘢明顯優勢,反而仲多咗一層 Gateway 要維護。睇落佢做到嘅嘢,Claude Code 好似都做到,咁不如直接卸載算啦?

你第一次用嘅時候係咪都有呢種感覺?反正我就係咁。

後尾用咗一段時間先發現,問題唔係 OpenClaw 唔得,而係冇「養」好。一個冇調教過嘅 OpenClaw,確實睇落就係一個套殼。但係配置到位之後,差距就出曬嚟。例如,我同 OpenClaw 講一句「review [PROJECT] PR #375」,佢會自己切到項目工作目錄、收集上下文、spawn Claude Code 做各種審查、匯總結果返嚟匯報,最後再發布審核意見到 PR 裏面。而且,佢仲可以喺同你互動嘅過程中自動學習你教俾佢嘅經驗,能夠記得你同佢講嘅各種注意事項,用嚇用嚇就離唔開佢啦。

呢篇就分享嚇,我係點樣一步步將 OpenClaw 從「都係咁啦」養到「離唔開」嘅。

先寫好三個文件

呢步我覺得最重要,先教 OpenClaw 點樣講嘢、點樣做嘢、點樣理解你。你俾佢配置得越具體、越有觀點,OpenClaw 嘅輸出就越似一個有血有肉嘅人。

具體嚟講,OpenClaw 嘅 workspace 入面有三個核心文件,分別管唔同嘅嘢。

SOUL.md 管 OpenClaw 點樣講嘢。注意呢個唔係 system prompt,而係 Agent 嘅身份定義。你喺入面寫乜嘢語氣、乜嘢詞唔可以用、乜嘢嘅輸出令你滿意,OpenClaw 就會跟住做。

USER.md 管 OpenClaw 點樣理解你。當然呢度唔係放你嘅履歷,而係畀 OpenClaw 理解你點樣思考嘅文件,例如你嘅決策風格、乜嘢令你煩惱、乜嘢令你興奮、你嘅溝通習慣等等。

AGENTS.md 管 OpenClaw 點樣做嘢。呢度就係純流程,例如應該做乜、唔應該做乜、失敗咗點處理、PR 點樣提等等。

呢三個文件嘅分離好關鍵。SOUL.md 寫好之後應該好少變化,身份係穩定嘅;AGENTS.md 要經常更新,因為流程係不斷迭代;USER.md 就隨住 Agent 更加了解你而逐步補充。

點樣寫 SOUL.md

你可能覺得 SOUL.md 求其寫幾行就得。我前嗰排都係咁諗,結果 OpenClaw 成日都回答一個技術問題先嚟三段廢話。

咁,SOUL.md 具體應該點樣寫?

首先表達語氣要寫具體。我嘅 OpenClaw 叫 Klaw 🦀,表達要求係 language with voltage,回覆嘅每句話要值得存在。你若果係求其寫個 be helpful and concise,咁出嚟嘅嘢同 ChatGPT 冇分別。寫得越具體,輸出越似你想要嘅樣。

然後禁用詞表都要有。comprehensive、robust、leveraging 呢啲 AI 味詞彙全部禁曬。

不過最關鍵嘅都係畀好輸出同壞輸出嘅例子。與其寫「簡潔明瞭」四個字,不如直接畀 OpenClaw 睇一對對比:

好輸出:

etcd compaction 的 revision 不對。看一下 --auto-compaction-retention
設的是不是 duration 模式,舊版本默認是 revision 計數。

壞輸出:

Great question! Based on your use case, I'd recommend considering several
factors when configuring etcd compaction...

第一種係一個識嘢嘅工程師喺講嘢,第二種係一個 AI 喺表演熱情。OpenClaw 見到呢對例子,即刻就知道你想要乜嘢啦。

調咗幾版之後嘅經驗

用咗一段時間之後,又踩咗幾個坑。

最大嘅教訓係唔好寫太長,1000-2000 字就夠。太長佔用上下文空間唔在講,畀 AI 太多限制仲容易降低 Agent 嘅智能。

仲有一個容易犯嘅錯係將 SOUL 同 AGENTS 撈亂。個性相關嘅放 SOUL,流程相關嘅放 AGENTS,分開寫 OpenClaw 先分得清輕重。

另外 SOUL.md 唔係寫完就唔鬱,建議每週花幾分鐘回顧嚇,刪咗冇用嘅,加上新遇到嘅問題。我自己已經改咗四五版,每次改完都覺得 OpenClaw 又更加明我多啲。

等佢有記憶

LLM 最大嘅問題係冇狀態,每次對話都從零開始,你尋日話畀佢聽嘅嘢今日全部唔記得。OpenClaw 嘅解決方案係一套基於文件嘅記憶系統:

MEMORY.md                → 長期記憶
memory/2026-04-28.md     → 每日筆記
memory/working-buffer.md → 危險區緩衝
SESSION-STATE.md         → 活躍任務狀態

咁,呢套記憶系統具體係點樣工作嘅呢?

記憶點樣寫入去

OpenClaw 嘅記憶機制有啲似數據庫入面嘅 Write-Ahead Logging:先落盤,再回應。佢會掃描你發嘅每條消息,一旦發現重要資訊(例如你糾正咗佢嘅錯誤、做咗某個決策、表達咗某種偏好,或者提到咗具體嘅數值),就立即寫入文件,然後先回覆你。

簡單講就係:要 OpenClaw 記住一件事,靠把口講唔可靠,寫低先可靠。

Dreaming

OpenClaw 仲有個 Dreaming 功能,可以配一個定時任務喺凌晨自動整理短期記憶:

{
  “memory-core”: {
    “config”: {
      “dreaming”: {
        “enabled”: true,
        “frequency”: “0 19 * * *”,
        “timezone”: “Asia/Shanghai”
      }
    }
  }
}

佢會掃描最近嘅對話,將你成日用嘅記憶提升到長期儲存,唔常用嘅自然淘汰。有啲似人瞓覺嗰陣整理日頭嘅記憶一樣。

不過呢度有個坑:dreaming 容易將一啲囉嗦嘅內容都提升上嚟,搞到 MEMORY.md 越來越臃腫。目前仲未有好好嘅自動化方案,都係要你定期手動清理嚇。

另外如果你同時喺幾個項目上用 OpenClaw,建議唔好將所有項目嘅具體資訊都塞曬入主 MEMORY.md 裏面。我嘅做法係俾每個項目開一個單獨目錄,項目相關嘅記憶都放喺各自目錄下,主 MEMORY.md 入面只放索引。咁樣又唔會互相干擾,揾起嚟都方便。

長 session 唔好失去上下文

用耐咗你仲會遇到一個問題:傾得太耐觸發咗 context compaction,OpenClaw 壓縮上下文之後會甩咗一啲細節。佢嘅恢復策略係先讀 working-buffer.md(呢個係壓縮前自動寫入嘅摘要),再讀 SESSION-STATE.md(當前任務狀態),然後翻嚇近兩日嘅日記。

幫佢裝 Skills

Skills 係擴展 OpenClaw 能力嘅機制,每個 Skill 就係一個包含 SKILL.md 文件嘅文件夾,話畀 OpenClaw 喺乜嘢場景下應該點樣做嘢。

你可能會諗,Skill 係咪裝得越多越好?其實唔係。裝得多互相打架唔在講,上下文都吃不消。

我目前安裝嘅 Skills 大致分三類:

  • • 通用增強:proactive-agent(主動預判需求)、self-improvement(從錯誤中學習)、context-window-management(上下文快滿時自動減負)、systematic-debugging(四階段 root cause 分析)。
  • • 安全防護:skill-vetter(安裝外部 Skill 前做安全審查)、dangerous-action-guard(執行不可逆操作前要你確認)、fact-check-before-trust(對事實性聲明做二次驗證)。
  • • 領域專用:按自己嘅工作場景嚟揀裝,例如 githubcve-checkado 等等。

至於一啲常用 Skills 嘅用法,我之前喺《OpenClaw 必備 Skill 清單》裏面詳細寫過,呢度唔重複啦。

呢度重點講一個我覺得特別重要嘅規則:安裝任何外部 Skill 之前,一定要先跑 skill-vetter 審查安全。

舉個實際例子:我前嗰排從一個社區 Skill 倉庫精選咗 10 個,審查完 skip 咗其中 3 個。一個會偷偷發 Reddit 請求,一個帶咗自動 cron 任務,仲有一個藏咗遙測代碼。如果唔審查就裝上去,OpenClaw 就會喺你唔知道嘅情況下做你唔知道嘅事。要知道 Skill 本質上係一段會被 OpenClaw 執行嘅指令,佢有你嘅文件系統權限。之前喺《23 萬 OpenClaw 公網裸跑》嗰篇都傾過呢個話題,安全呢家嘢真係唔可以大意。

等佢自己做嘢

配置好咗人格、記憶同 Skills 之後,OpenClaw 已經比啱啱裝完嗰陣好用好多。不過到呢一步你仲係要自己發指令、等結果。有冇辦法等 OpenClaw 自己行起嚟,你只管收結果?

呢個就係 ACP 同 Cron 做嘅嘢。

ACP

OpenClaw 可以透過 ACP 調用 Claude Code、Codex、OpenCode 呢啲 coding agent。整個流程大概係咁樣:

你 → OpenClaw → 分析任務 → spawn Claude Code → 獨立沙箱執行 → 完成後彙報

例如,你同 OpenClaw 講一句 review [PROJECT] PR #375,佢會自動切到項目工作目錄,收集 PR 嘅上下文,spawn 一個 Claude Code 調用 code-review skill 做審查,最後將結果匯總返嚟。如果你係自己嘅 Code,仲可以繼續跟進呢啲審查結果迭代,直到得到一個比較滿意嘅結果。最後去將審查結果發佈到 PR 上面,有 bug 就直接留 comment,冇問題就 lgtm。當然,合併之前都建議你人手睇嚇 PR,唔好完全信賴 AI。

另外仲可以將 ACP agent 綁定到 Discord 等 IM 頻道。例如,你可以分別俾 Claude Code 同 Codex 綁定到 #claude 和 #codex 兩個唔同嘅頻道,然後你喺入面發消息就會自動創建 thread 並啟動對應嘅 ACP session,相當於喺 Discord 裏面直接同 Claude Code 同 Codex 對話。

定時任務

咁如果你想等佢定時做嘢呢?OpenClaw 嘅 cron 系統可以每個 job 都行喺隔離嘅 session 裏面,唔會影響你正在用嘅主 session。我目前配咗幾個定時任務:Git Sync 每小時自動備份 workspace,AI News 每 8 小時抓一輪新聞推到 Discord,Dreaming 每日凌晨整理記憶,Issue Triage 每日返工前自動 triage issue 列表, Version Check 每日檢查我關注嘅項目嘅更新狀況。

大模型配置

用得頻密嘅時候,成日遇到 GitHub Copilot 限流嘅問題。如果冇配 fallback chain,OpenClaw 就直接斷線。所以建議你都俾 OpenClaw 嘅模型列表搭上備份配置,例如

{
  “model”: {
    “primary”: “github-copilot/claude-opus-4.6,
    “fallbacks”: [
      “github-copilot/claude-sonnet-4.6,
      “github-copilot/claude-opus-4.7,
      “openai/gpt-5.5
    ]
  }
}

另外 memory search 我都單獨配咗一個 provider,用嘅係 Azure OpenAI 嘅 text-embedding-3-small,配合 hybrid search 都夠用。後尾仲發現 GitHub Copilot 都有 text-embedding-ada-002 可以攞嚟做記憶搜索,就畀 OpenClaw 提咗個 PR 將呢個功能加上。

踩過嘅坑

講真話,OpenClaw 目前仲係一個需要你願意折騰先至用得好的工具,所以大家都仲需要養龍蝦。除咗前面提到嘅 SOUL.md 寫太長同 Dreaming 膨脹嘅問題,仲有一啲值得注意嘅坑。

例如 Gateway 重啟之後,所有 ACP sessions 全部 reconcile 失敗。查咗一下原因係舊嘅 session 用 renderer v1 格式存儲,但新版本只認 v2。處理方法係殺掉 stale harness 然後重啟 gateway。呢件事畀我嘅教訓係:一定要將 tools.sessions.visibility 設成 all,咁你就可以見到所有 session 嘅狀態,除錯 ACP 問題嘅時候冇呢個配置基本係盲調。

OpenClaw 每個版本嘅升級雖然會帶來好多新功能特性,但都會帶來各種各樣嘅問題,有啲仲會導致配置唔兼容。所以,每一次升級之後,唔好急住重啟 gateway,而係先跑一次 openclaw doctor --fix,睇睇係咪缺咗依賴,配置係咪有唔兼容嘅問題。唔整好呢啲問題,gateway 重啟之後可能就完全死咗。

另外 OpenClaw 嘅文檔目前仲唔算完善,好多配置嘅最佳實踐要自己摸索。呢個都係我寫呢篇文章嘅原因,希望可以幫到後來嘅人少行啲冤枉路。

寫喺最後

返到開頭講嗰個問題:OpenClaw 同 Claude Code 到底有乜嘢分別?

雖然我主要將 OpenClaw 用喺編程相關嘅任務中,但純講代碼生成能力,Claude Code 仲係比 OpenClaw 強好多。OpenClaw 真正嘅優勢在於佢係一個完整嘅 agent runtime。佢可以透過 Discord、Telegram、微信呢啲 IM 渠道隨時同你互動,記憶系統令佢唔再每次從零開始,Skills 幫佢裝上咗模塊化嘅能力擴展,ACP 令佢可以調度 Claude Code 同 Codex 幫你做嘢,而 Cron 令佢喺你瞓覺嘅時候自己將啲嘢做完。

不過呢啲都唔係裝完就有㗎。OpenClaw 更似係一個需要你花時間去養嘅嘢,SOUL/USER/AGENTS 寫得越具體佢就越明你,記憶積累得越多佢就越好用,Skills 揀得越精準佢就越可靠。初初開始確實要搞一輪,但養一段時間之後,你會發現你已經離唔開佢啦。


好啦,今日就傾到呢度。如果你都有留意 AI Agent,歡迎關注我嘅公眾號 Feisky,我會定期分享實踐中嘅發現同踩坑經驗。

剛裝完 OpenClaw,簡單試了幾個場景,覺得也就那樣。跟直接用 Claude Code 比,看不出有啥明顯優勢,反而還多了一層 Gateway 要維護。看起來它能幹的,Claude Code 好像也都能做,乾脆卸載算了?

你第一次用的時候是不是也這個感覺?反正我是。

後來用過一段時間才發現,問題不在 OpenClaw 不行,而在於沒有“養”好。一個沒調教過的 OpenClaw,確實看起來就是個套殼。但配到位之後,差距就出來了。比如,我跟 OpenClaw 說一句“review [PROJECT] PR #375”,它會自己切到項目工作目錄、收集上下文、spawn Claude Code 做各種審查、彙總結果回來彙報,最後再發布審核意見到 PR 裏面。並且,它還可以在跟你交互的過程中自動學習你教給它的經驗,能夠記住你跟它說的各種注意事項,用着用着也就離不開了。

這篇就分享一下,我是怎麼一步步把 OpenClaw 從也就那樣養到離不開的。

先寫好三個文件

這是我覺得最重要的一步,先教 OpenClaw 怎麼說話、怎麼做事、怎麼理解你。你給它配置得越具體、越有觀點,OpenClaw 的輸出就越像一個有血有肉的人。

具體來說,OpenClaw 的 workspace 裏有三個核心文件,分別管不同的事。

SOUL.md 管 OpenClaw 怎麼說話。注意這並不是 system prompt,而是 Agent 的身份定義。你在裏面寫什麼樣的語氣、什麼詞不能用、什麼樣的輸出讓你滿意,OpenClaw 就會照着來。

USER.md 管 OpenClaw 怎麼理解你。當然這兒並不是放你的簡歷,而是讓 OpenClaw 理解你怎麼思考的文件,比如你的決策風格、什麼讓你煩、什麼讓你興奮、你的溝通習慣等等。

AGENTS.md 管 OpenClaw 怎麼做事。這裏面就是純流程,比如該做什麼、不該做什麼、失敗了怎麼處理、PR 怎麼提等等。

這三個文件的分離很關鍵。SOUL.md 寫好後應該很少變化,身份是穩定的;AGENTS.md 要經常更新,因為流程在不斷迭代;USER.md 則隨着 Agent 更瞭解你而逐步補充。

怎麼寫 SOUL.md

你可能覺得 SOUL.md 隨便寫幾行就行了。我之前也是這麼想的,結果 OpenClaw 動不動就回答一個技術問題先來三段廢話。

那麼,SOUL.md 具體該怎麼寫?

首先表達語氣要寫具體。我的 OpenClaw 叫 Klaw 🦀,表達要求是 language with voltage,回覆的每句話要值得存在。你要是泛泛地寫個 be helpful and concise,那出來的東西跟 ChatGPT 沒什麼區別。寫得越具體,輸出越像你想要的樣子。

然後禁用詞表也要有。comprehensive、robust、leveraging 這些 AI 味詞彙全部禁掉。

不過最關鍵的還是給好輸出和壞輸出的示例。與其寫簡潔明瞭四個字,不如直接給 OpenClaw 看一對對比:

好輸出:

etcd compaction 的 revision 不對。看一下 --auto-compaction-retention
設的是不是 duration 模式,舊版本默認是 revision 計數。

壞輸出:

Great question! Based on your use case, I'd recommend considering several
factors when configuring etcd compaction...

第一種是一個懂行的工程師在說話,第二種是一個 AI 在表演熱情。OpenClaw 看到這對示例,立刻就知道你想要什麼了。

調了幾版之後的經驗

用了一段時間之後,又踩了幾個坑。

最大的教訓是別寫太長,1000-2000 字就夠了。太長佔用上下文空間不說,給 AI 太多的限制還容易降低 Agent 的智能。

還有一個容易犯的錯是把 SOUL 和 AGENTS 混在一起。個性相關的放 SOUL,流程相關的放 AGENTS,分開寫 OpenClaw 才分得清輕重。

另外 SOUL.md 不是寫完就不動的,建議每週花幾分鐘回顧一下,刪掉沒用的,加上新碰到的問題。我自己已經改了四五版了,每次改完都覺得 OpenClaw 又多懂我了一點。

讓它有記憶

LLM 最大的問題是無狀態,每次對話都從零開始,你昨天告訴它的東西今天全忘了。OpenClaw 的解決方案是一套基於文件的記憶系統:

MEMORY.md                → 長期記憶
memory/2026-04-28.md     → 每日筆記
memory/working-buffer.md → 危險區緩衝
SESSION-STATE.md         → 活躍任務狀態

那麼,這套記憶系統具體是怎麼工作的呢?

記憶怎麼寫進去的

OpenClaw 的記憶機制有點像數據庫裏的 Write-Ahead Logging:先落盤,再響應。它會掃描你發的每條消息,一旦發現重要信息(比如你糾正了它的錯誤、做了某個決策、表達了某種偏好,或者提到了具體的數值),就立即寫入文件,然後才回復你。

簡單說就是:讓 OpenClaw 記住一件事,靠嘴說不可靠,寫下來才可靠。

Dreaming

OpenClaw 還有個 Dreaming 功能,可以配一個定時任務在凌晨自動整理短期記憶:

{
  “memory-core”: {
    “config”: {
      “dreaming”: {
        “enabled”: true,
        “frequency”: “0 19 * * *”,
        “timezone”: “Asia/Shanghai”
      }
    }
  }
}

它會掃描最近的對話,把你經常用到的記憶晉升到長期存儲,不常用的自然淘汰。有點像人睡覺時整理白天的記憶一樣。

不過這裏有個坑:dreaming 容易把一些囉嗦的內容也晉升上來,導致 MEMORY.md 越來越臃腫。目前還沒有好的自動化方案,還是得你定期手動清理一下。

另外如果你同時在好幾個項目上用 OpenClaw,建議不要把所有項目的具體信息都塞進主 MEMORY.md 裏面。我的做法是給每個項目建一個單獨的目錄,項目相關的記憶都放在各自目錄下,主 MEMORY.md 裏只放索引。這樣既不會互相干擾,找起來也方便。

長 session 不丟上下文

用久了你還會碰到一個問題:聊太久觸發了 context compaction,OpenClaw 壓縮上下文之後會丟失一些細節。它的恢復策略是先讀 working-buffer.md(這個是壓縮前自動寫入的摘要),再讀 SESSION-STATE.md(當前任務狀態),然後翻一下近兩天的日記。

給它裝 Skills

Skills 是擴展 OpenClaw 能力的機制,每個 Skill 就是一個包含 SKILL.md 文件的文件夾,告訴 OpenClaw 在什麼場景下應該怎麼做事。

你可能會想,Skill 是不是裝得越多越好?其實不是。裝多了互相打架不說,上下文也吃不消。

我目前安裝的 Skills 大致分三類:

  • • 通用增強:proactive-agent(主動預判需求)、self-improvement(從錯誤中學習)、context-window-management(上下文快滿時自動減負)、systematic-debugging(四階段 root cause 分析)。
  • • 安全防護:skill-vetter(安裝外部 Skill 前做安全審查)、dangerous-action-guard(執行不可逆操作前要你確認)、fact-check-before-trust(對事實性聲明做二次驗證)。
  • • 領域專用:按自己的工作場景來選裝,比如 githubcve-checkado 等等。

至於一些常用 Skills 的用法,我之前在《OpenClaw 必備 Skill 清單》裏詳細寫過,這裏就不重複了。

這裏重點說一個我覺得特別重要的規則:安裝任何外部 Skill 之前,一定要先跑 skill-vetter 審查安全。

舉個實際的例子:我之前從一個社區 Skill 倉庫精選了 10 個,審查完跳過了其中 3 個。一個會偷偷發 Reddit 請求,一個帶了自動 cron 任務,還有一個藏了遙測代碼。如果不審查就裝上去,OpenClaw 就會在你不知道的情況下做你不知道的事。要知道 Skill 本質上是一段會被 OpenClaw 執行的指令,它有你的文件系統權限。之前在《23 萬 OpenClaw 公網裸奔》那篇也聊過這個話題,安全這事真不能大意。

讓它自己幹活

配好了人格、記憶和 Skills 之後,OpenClaw 已經比剛裝完的時候好用太多了。不過到這一步你還是得自己發指令、等結果。有沒有辦法讓 OpenClaw 自己跑起來,你只管收結果?

這就是 ACP 和 Cron 乾的事。

ACP

OpenClaw 可以通過 ACP 調用 Claude Code、Codex、OpenCode 這些 coding agent。整個流程大概是這樣的:

你 → OpenClaw → 分析任務 → spawn Claude Code → 獨立沙箱執行 → 完成後彙報

比如,你跟 OpenClaw 說一句 review [PROJECT] PR #375,它會自動切到項目工作目錄,收集 PR 的上下文,spawn 一個 Claude Code 調用 code-review skill 做審查,最後把結果彙總回來。如果是你自己的 Code,還可以繼續跟進這些審查結果迭代,直到得到一個比較滿意的結果。最後去把審查結果發佈到 PR 上面去,有 bug 就直接留 comment,沒問題就 lgtm。當然,合併之前還是建議你人工去看看 PR,不要完全信賴 AI。

另外還可以把 ACP agent 綁定到 Discord 等 IM 頻道。比如,你可以分別給 Claude Code 和 Codex 綁定到 #claude 和 #codex 兩個不同的頻道,然後你在裏面發消息就會自動創建 thread 並啓動對應的 ACP session,相當於在 Discord 裏面直接跟 Claude Code 和 Codex 對話了。

定時任務

那如果你想讓它定時幹活呢?OpenClaw 的 cron 系統可以每個 job 都跑在隔離的 session 裏,不會影響你正在用的主 session。我目前配了幾個定時任務:Git Sync 每小時自動備份 workspace,AI News 每 8 小時抓一輪新聞推到 Discord,Dreaming 每天凌晨整理記憶,Issue Triage 每天上班前自動 triage issue 列表, Version Check 每天檢查我關注項目的更新狀況。

大模型配置

用得頻繁的時候,經常碰到 GitHub Copilot 限流的問題。如果沒有配 fallback chain,OpenClaw 就直接斷線了。所以建議你也給 OpenClaw 的模型列表搭上備份配置,比如

{
  “model”: {
    “primary”: “github-copilot/claude-opus-4.6,
    “fallbacks”: [
      “github-copilot/claude-sonnet-4.6,
      “github-copilot/claude-opus-4.7,
      “openai/gpt-5.5
    ]
  }
}

另外 memory search 我也單獨配了一個 provider,用的是 Azure OpenAI 的 text-embedding-3-small,配合 hybrid search 也就夠用了。後來還發現 GitHub Copilot 也有 text-embedding-ada-002 可以拿來做記憶搜索,就給 OpenClaw 提了個 PR 把這個功能加上了。

踩過的坑

說實話,OpenClaw 目前還是一個需要你願意折騰才能用好的工具,所以大家都還需要養龍蝦。除了前面提到的 SOUL.md 寫太長和 Dreaming 膨脹的問題,還有一些值得注意的坑。

比如 Gateway 重啓之後,所有 ACP sessions 全部 reconcile 失敗。查了一下原因是舊的 session 用 renderer v1 格式存儲的,但新版本只認 v2。處理方法是殺掉 stale harness 然後重啓 gateway。這件事給我的教訓是:一定要把 tools.sessions.visibility 設成 all,這樣你能看到所有 session 的狀態,調 ACP 問題的時候沒這個配置基本是盲調。

OpenClaw 每個版本的升級雖然會帶來很多新功能特性,但也都會帶來各種各樣的問題,有些還會導致配置不兼容。所以,每次升級之後,不要着急重啓 gateway,而是先跑一遍 openclaw doctor --fix,看看是否缺了依賴,配置是否有不兼容的問題。不修好這些問題,gateway 重啓之後可能就完全掛掉了。

另外 OpenClaw 的文檔目前還不算完善,很多配置的最佳實踐得自己摸索。這也是我寫這篇文章的原因,希望能幫後來的人少走點彎路。

寫在最後

回到開頭說的那個問題:OpenClaw 跟 Claude Code 到底有啥區別?

雖然我主要把 OpenClaw 用在編程相關的任務中,但純論代碼生成能力,Claude Code 還是比 OpenClaw 強得多。OpenClaw 真正的優勢在於它是一個完整的 agent runtime。它可以通過 Discord、Telegram、微信這些 IM 渠道隨時跟你交互,記憶系統讓它不再每次從零開始,Skills 給它裝上了模塊化的能力擴展,ACP 讓它可以調度 Claude Code 和 Codex 幫你幹活,而 Cron 讓它在你睡覺的時候自己把活幹了。

不過這些都不是裝完就有的。OpenClaw 更像是一個需要你花時間去養的東西,SOUL/USER/AGENTS 寫得越具體它就越懂你,記憶積累得越多它就越好用,Skills 選得越精準它就越靠譜。剛開始確實要折騰,但養一段時間之後,你會發現你已經離不開它了。


好了,今天就聊到這兒。如果你也在關注 AI Agent,歡迎關注我的公眾號 Feisky,我會定期分享實踐中的發現和踩坑經驗。