最近流行養龍蝦,黃醫師看看家裡那台閒置的Mac Mini M4,想說也來養看看吧!結果,還真是一大串試誤過程。還是分享一下慘痛經驗吧!(不過,如果有什麼賺錢用途,還是乖乖用雲端模式的好…良心建議)
前言
在 16GB 統一記憶體(Unified RAM)的 Mac 上運行具備全自動化、能自己下 Shell 指令的 AI Agent,是一場記憶體與模型智商的極限拉扯。模型太小容易產生格式幻覺(Hallucination),不聽從工具調用規範;模型太大又會直接把系統搞到 OOM (Out of Memory)。
本文將分享如何使用 OpenClaw 框架,搭配 Ollama 與微調過的 Qwen 3.5 9B,在 Mac Mini M4 16GB 上打造一個聽話、穩定、且具備長期記憶與 Terminal 執行權限的 Personal Knowledge Management (PKM) 助理。

🛠️ Step 1: 基礎環境與 OpenClaw 安裝
首先,確保你的 Mac 已經安裝了 Node.js 與 Ollama。打開終端機,全域安裝 OpenClaw 並初始化:
npm install -g openclaw
openclaw init
這會在你的使用者目錄下建立 ~/.openclaw/ 資料夾,這也是我們接下來要動刀的核心區域。
🧠 Step 2: 模型記憶體優化 (Modelfile 改造)
Qwen 3.5 9B 是 16GB RAM 的「極限甜蜜點」,智商夠高,能理解複雜的 JSON 規範。但預設的 Context Window 可能會讓記憶體溢出。我們需要透過 Ollama 的 Modelfile 來強制限制它的資源佔用。
1. 建立一個名為 Qwen-PKM.Modelfile 的純文字檔:
FROM qwen3.5:9b
# 限制上下文視窗,16384 是 OpenClaw 啟動複雜工具鏈的最低安全門檻
PARAMETER num_ctx 16384
# 限制單次最大輸出長度,保留記憶體給作業系統
PARAMETER num_predict 4096
# 降低溫度,讓 Agent 執行工具時更像冷酷的機器,減少廢話
PARAMETER temperature 0.1
2. 終端機執行轉換指令,建立專屬模型:
ollama create qwen3.5-pkm -f ./Qwen-PKM.Modelfile
⚙️ Step 3: 核心配置檔設定 (Config, AGENTS, SOUL)
接下來要進入 ~/.openclaw/ 修改設定,這是確保 Agent 穩定運行的關鍵。
1. 修改 openclaw.json (系統設定)
主要調整模型指向與超時時間(16GB 跑起來較慢,需增加 Timeout 避免執行中斷)。
{
"agents": {
"defaults": {
"model": {
"primary": "ollama/qwen3.5-pkm"
},
"timeoutSeconds": 600
}
}
}
2. 修改 AGENTS.md (代理人職責)
在這裡定義 Agent 的核心任務與環境限制,告訴它硬體只有 16GB RAM,禁止開啟過多並行任務。
3. 修改 SOUL.md (終極防護網:解決 JSON 格式與 STDOUT 問題)
這是本文最重要的踩坑心得。 開源模型非常容易在調用工具時,把 JSON Key 寫錯(例如把 name 寫成 action),或是執行完 ls -la 後不給你原始輸出。
請在 ~/.openclaw/workspace/SOUL.md 的最頂端加入以下「嚴謹回報協議」:
## Strict Reporting & Execution Protocol (CRITICAL)
- 我是 OpenClaw 的自動化核心,不是聊天機器人。
- **格式絕對強制**:當需要調用工具(如 exec)時,我必須且只能使用以下 JSON 格式:
{"name": "工具名稱", "arguments": {"參數名稱": "數值"}}
嚴禁使用 action、tool_name 或任何非官方標籤。
- **原始輸出協議**:執行完終端機指令後,我必須主動、完整地回報 STDOUT 的原始文字。嚴禁對終端機輸出進行任何總結、過濾或翻譯。
- 當使用者要求執行指令時,不要解釋,直接輸出可被解析的 JSON。
🧩 Step 4: 擴充記憶與技能 (Skills & LanceDB)
為了讓 Agent 真正強大,我們需要安裝技能與向量資料庫。
1. 安裝基礎技能
openclaw skill install exec # 賦予 Shell 執行權限
openclaw skill install weather # 天氣查詢
2. 從 GitHub 手動安裝 memory-lancedb-pro
這能賦予 Agent 長期記憶。由於進階套件需要直接從源碼構建,請依序執行:
1. 前往 Jina AI 註冊並獲取免費的 Jina Embeddings API Key(在 16GB Mac 上跑本地 Embedding 會太卡,外包給 Jina 是最佳解)。
2. 開啟終端機,進入 OpenClaw 的外掛目錄並 Clone 專案:
cd ~/.openclaw/plugins
git clone https://github.com/OpenClaw/memory-lancedb-pro.git
(註:請將上述 GitHub 網址替換為該外掛實際的 Repository URL)
3. 進入該目錄並安裝 Node.js 相依套件:
cd memory-lancedb-pro
npm install
4. 編輯 ~/.openclaw/openclaw.json 中配置 Jina API Key:
"plugins": {
"memory-lancedb-pro": {
"embedding": {
"provider": "jina",
"apiKey": "你的_Jina_API_Key"
}
}
}
💡 總結與最佳實踐
在 Mac Mini M4 16GB 上玩轉本地 Agent,最大的挑戰不在於算力,而在於「如何馴服模型的本能」。
透過 Modelfile 限制資源,並透過嚴厲的 SOUL.md 協議強制對齊 OpenClaw 的 name/arguments JSON 格式,我們成功讓 Qwen 3.5 9B 變成了一個冷酷、精準、會乖乖吐出 RAW STDOUT 的超級開發助理。
Troubleshooting 小提示:如果你的 Agent 突然又開始胡言亂語或格式錯誤,請毫不猶豫地在終端機執行
openclaw gateway restart,讓它重新讀取SOUL.md,它就會乖乖恢復正常了。