使用 OpenClaw 打造專屬 AI 助理:5 分鐘快速設定指南
身為開發者,你可能早就習慣了在各種 AI 視窗之間切換,但總覺得少了點什麼。如果能直接在 WhatsApp 上傳個訊息,就能讓 AI 幫你處理電腦上的檔案、跑個腳本,甚至主動提醒你該做的事,那該有多方便?
這篇指南會教你如何使用 OpenClaw 打造一個專屬於你的私人助理。OpenClaw 是一個開源的 Gateway,能把 WhatsApp、Telegram、Discord 等通訊軟體連接到 AI agents,讓你擁有一個 24 小時在線的數位分身。
使用 OpenClaw 打造私人助理
Section titled “使用 OpenClaw 打造私人助理”OpenClaw 是一個自託管的 Gateway,能將 WhatsApp、Telegram、Discord、iMessage 等平台連接到 AI agents。本指南將介紹「私人助理」的設定:一個專用的 WhatsApp 號碼,運作起來就像你專屬的、永遠在線的 AI 助手。
⚠️ 安全第一
Section titled “⚠️ 安全第一”你正在賦予一個 agent 以下權限:
- 在你的機器上執行指令(取決於你的 tool policy)
- 讀取/寫入你工作空間中的檔案
- 透過 WhatsApp/Telegram/Discord/Mattermost (plugin) 發送訊息
建議從保守的設定開始:
- 務必設定
channels.whatsapp.allowFrom(絕對不要在你的個人 Mac 上對全世界開放執行權限)。 - 為助理使用一個專用的 WhatsApp 號碼。
- Heartbeats 現在預設為每 30 分鐘一次。在完全信任設定之前,請先透過設定
agents.defaults.heartbeat.every: "0m"來停用它。
- 已安裝並完成 OpenClaw 初始化 — 如果還沒完成,請參考 Getting Started
- 助理專用的第二個電話號碼(SIM/eSIM/預付卡)
雙手機配置(推薦)
Section titled “雙手機配置(推薦)”你理想的架構應該是這樣:
flowchart TB A["<b>Your Phone (personal)<br></b><br>Your WhatsApp<br>+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)<br></b><br>Assistant WA<br>+1-555-ASSIST"] B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>AI agent"]如果你將個人 WhatsApp 直接連結到 OpenClaw,發給你的每一則訊息都會變成「agent 的輸入」,這通常不是你想要的結果。
5 分鐘快速上手
Section titled “5 分鐘快速上手”- 配對 WhatsApp Web(會顯示 QR code;請用助理手機掃描):
openclaw channels login- 啟動 Gateway(讓它持續執行):
openclaw gateway --port 18789- 在
~/.openclaw/openclaw.json放入最精簡的配置:
{ channels: { whatsapp: { allowFrom: ["+15555550123"] } },}現在,從你允許的電話號碼傳訊息給助理號碼試試看。
當初始化完成後,我們會自動開啟 dashboard 並顯示一個乾淨的(非 token 化的)連結。如果提示需要驗證,請將 gateway.auth.token 中的 token 貼到 Control UI 設定中。之後想重新開啟,請執行:openclaw dashboard。
為 Agent 提供工作空間 (AGENTS)
Section titled “為 Agent 提供工作空間 (AGENTS)”OpenClaw 會從工作空間目錄讀取操作指令和「記憶」。
預設情況下,OpenClaw 使用 ~/.openclaw/workspace 作為 agent 工作空間,並在設定或第一次執行 agent 時自動建立它(包含初始的 AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md)。BOOTSTRAP.md 僅在工作空間全新時建立(刪除後不應再出現)。MEMORY.md 是選配的(不會自動建立);若存在,則會在一般會話中載入。Subagent 會話僅會注入 AGENTS.md 和 TOOLS.md。
提示:把這個資料夾當作 OpenClaw 的「記憶」,並將其設為 git repo(建議設為私有),這樣你的 AGENTS.md 和記憶檔案就能備份。如果系統有安裝 git,全新的工作空間會自動初始化。
openclaw setup完整的工作空間佈局與備份指南:Agent workspace 記憶工作流:Memory
選配:透過 agents.defaults.workspace 選擇不同的工作空間(支援 ~)。
{ agent: { workspace: "~/.openclaw/workspace", },}如果你已經從自己的 repo 部署了工作空間檔案,可以完全停用 bootstrap 檔案的建立:
{ agent: { skipBootstrap: true, },}讓它成為「助手」的配置
Section titled “讓它成為「助手」的配置”OpenClaw 預設就有不錯的助理設定,但你通常會想調整:
SOUL.md中的人格/指令- 思考預設值(如果需要)
- Heartbeats(當你信任它之後)
範例:
{ logging: { level: "info" }, agent: { model: "anthropic/claude-opus-4-6", workspace: "~/.openclaw/workspace", thinkingDefault: "high", timeoutSeconds: 1800, // 先從 0 開始;之後再啟用。 heartbeat: { every: "0m" }, }, channels: { whatsapp: { allowFrom: ["+15555550123"], groups: { "*": { requireMention: true }, }, }, }, routing: { groupChat: { mentionPatterns: ["@openclaw", "openclaw"], }, }, session: { scope: "per-sender", resetTriggers: ["/new", "/reset"], reset: { mode: "daily", atHour: 4, idleMinutes: 10080, }, },}- 會話檔案:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - 會話元數據(token 使用量、最後路由等):
~/.openclaw/agents/<agentId>/sessions/sessions.json(舊版:~/.openclaw/sessions/sessions.json) /new或/reset會為該聊天啟動全新會話(可透過resetTriggers配置)。如果單獨發送,agent 會回覆簡短的問候以確認重置。/compact [instructions]會壓縮會話上下文並回報剩餘的 context 額度。
Heartbeats(主動模式)
Section titled “Heartbeats(主動模式)”預設情況下,OpenClaw 每 30 分鐘執行一次 heartbeat,提示詞如下:
Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
設定 agents.defaults.heartbeat.every: "0m" 即可停用。
- 如果
HEARTBEAT.md存在但內容為空(只有空白行或像# Heading這樣的標題),OpenClaw 會跳過該次 heartbeat 以節省 API 呼叫。 - 如果檔案不存在,heartbeat 仍會執行,並由模型決定要做什麼。
- 如果 agent 回覆
HEARTBEAT_OK(可帶有簡短文字;參考agents.defaults.heartbeat.ackMaxChars),OpenClaw 會攔截該次 heartbeat 的對外訊息發送。 - 預設允許將 heartbeat 發送到 DM 形式的
user:<id>目標。設定agents.defaults.heartbeat.directPolicy: "block"可在保持 heartbeat 執行的同時,攔截對直接目標的訊息發送。 - Heartbeats 會執行完整的 agent 輪次 — 縮短間隔會消耗更多 token。
{ agent: { heartbeat: { every: "30m" }, },}媒體檔案輸入與輸出
Section titled “媒體檔案輸入與輸出”輸入的附件(圖片/音訊/文件)可以透過模板提供給你的指令:
{{MediaPath}}(本地暫存檔案路徑){{MediaUrl}}(虛擬 URL){{Transcript}}(如果啟用了音訊轉錄)
Agent 發出的附件:在獨立的一行中包含 MEDIA:<path-or-url>(不要有空格)。例如:
Here’s the screenshot.MEDIA:https://example.com/screenshot.pngOpenClaw 會提取這些內容並將其作為媒體檔案連同文字一起發送。
本地路徑的行為遵循與 agent 相同的檔案讀取信任模型:
- 如果
tools.fs.workspaceOnly為true,輸出的MEDIA:本地路徑僅限於 OpenClaw 暫存根目錄、媒體快取、agent 工作空間路徑以及 sandbox 產生的檔案。 - 如果
tools.fs.workspaceOnly為false,輸出的MEDIA:可以使用 agent 已被允許讀取的宿主機本地檔案。 - 宿主機本地發送仍僅限於媒體和安全的文件類型(圖片、音訊、影片、PDF 和 Office 文件)。純文字和類似金鑰的檔案不會被視為可發送的媒體。
這意味著,當你的 fs policy 已經允許讀取時,工作空間之外產生的圖片/檔案現在可以發送,且不會造成任意宿主機文字附件外洩的風險。
維運檢查清單
Section titled “維運檢查清單”openclaw status # local status (creds, sessions, queued events)openclaw status --all # full diagnosis (read-only, pasteable)openclaw status --deep # adds gateway health probes (Telegram + Discord)openclaw health --json # gateway health snapshot (WS)日誌存放在 /tmp/openclaw/(預設:openclaw-YYYY-MM-DD.log)。
- WebChat: WebChat
- Gateway 運作: Gateway runbook
- Cron + 喚醒: Cron jobs
- macOS 選單列助手: OpenClaw macOS app
- iOS Node app: iOS app
- Android Node app: Android app
- Windows 狀態: Windows (WSL2)
- Linux 狀態: Linux app
- 安全性: Security
想要更快速地完成設定嗎?試試我們的 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。