跳到內容

使用 OpenClaw 打造專屬 AI 助理:5 分鐘快速設定指南

身為開發者,你可能早就習慣了在各種 AI 視窗之間切換,但總覺得少了點什麼。如果能直接在 WhatsApp 上傳個訊息,就能讓 AI 幫你處理電腦上的檔案、跑個腳本,甚至主動提醒你該做的事,那該有多方便?

這篇指南會教你如何使用 OpenClaw 打造一個專屬於你的私人助理。OpenClaw 是一個開源的 Gateway,能把 WhatsApp、Telegram、Discord 等通訊軟體連接到 AI agents,讓你擁有一個 24 小時在線的數位分身。

OpenClaw 是一個自託管的 Gateway,能將 WhatsApp、Telegram、Discord、iMessage 等平台連接到 AI agents。本指南將介紹「私人助理」的設定:一個專用的 WhatsApp 號碼,運作起來就像你專屬的、永遠在線的 AI 助手。

你正在賦予一個 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/預付卡)

你理想的架構應該是這樣:

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 的輸入」,這通常不是你想要的結果。

  1. 配對 WhatsApp Web(會顯示 QR code;請用助理手機掃描):
Terminal window
openclaw channels login
  1. 啟動 Gateway(讓它持續執行):
Terminal window
openclaw gateway --port 18789
  1. 在 ~/.openclaw/openclaw.json 放入最精簡的配置:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

現在,從你允許的電話號碼傳訊息給助理號碼試試看。

當初始化完成後,我們會自動開啟 dashboard 並顯示一個乾淨的(非 token 化的)連結。如果提示需要驗證,請將 gateway.auth.token 中的 token 貼到 Control UI 設定中。之後想重新開啟,請執行:openclaw dashboard。

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,全新的工作空間會自動初始化。

Terminal window
openclaw setup

完整的工作空間佈局與備份指南:Agent workspace 記憶工作流:Memory

選配:透過 agents.defaults.workspace 選擇不同的工作空間(支援 ~)。

{
agent: {
workspace: "~/.openclaw/workspace",
},
}

如果你已經從自己的 repo 部署了工作空間檔案,可以完全停用 bootstrap 檔案的建立:

{
agent: {
skipBootstrap: true,
},
}

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 額度。

預設情況下,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" },
},
}

輸入的附件(圖片/音訊/文件)可以透過模板提供給你的指令:

  • {{MediaPath}}(本地暫存檔案路徑)
  • {{MediaUrl}}(虛擬 URL)
  • {{Transcript}}(如果啟用了音訊轉錄)

Agent 發出的附件:在獨立的一行中包含 MEDIA:<path-or-url>(不要有空格)。例如:

Here’s the screenshot.
MEDIA:https://example.com/screenshot.png

OpenClaw 會提取這些內容並將其作為媒體檔案連同文字一起發送。

本地路徑的行為遵循與 agent 相同的檔案讀取信任模型:

  • 如果 tools.fs.workspaceOnly 為 true,輸出的 MEDIA: 本地路徑僅限於 OpenClaw 暫存根目錄、媒體快取、agent 工作空間路徑以及 sandbox 產生的檔案。
  • 如果 tools.fs.workspaceOnly 為 false,輸出的 MEDIA: 可以使用 agent 已被允許讀取的宿主機本地檔案。
  • 宿主機本地發送仍僅限於媒體和安全的文件類型(圖片、音訊、影片、PDF 和 Office 文件)。純文字和類似金鑰的檔案不會被視為可發送的媒體。

這意味著,當你的 fs policy 已經允許讀取時,工作空間之外產生的圖片/檔案現在可以發送,且不會造成任意宿主機文字附件外洩的風險。

Terminal window
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)。

想要更快速地完成設定嗎?試試我們的 AI Setup Assistant。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。