使用 Moltbot 建置個人助理(Clawd 風格)
Moltbot 是 Pi 代理的 WhatsApp + Telegram + Discord + iMessage 閘道。外掛新增 Mattermost。本指南是「個人助理」設定:一個專用的 WhatsApp 號碼,行為像你永遠線上的代理。
⚠️ 安全第一
你將代理置於可以執行以下操作的位置:
- 在你的機器上執行指令(取決於你的 Pi 工具設定)
- 在你的工作區中讀取/寫入檔案
- 透過 WhatsApp/Telegram/Discord/Mattermost(外掛)發送訊息
從保守開始:
- 始終設定
channels.whatsapp.allowFrom(切勿在個人 Mac 上開放給全世界)。 - 為助理使用專用的 WhatsApp 號碼。
- 心跳現在預設為每 30 分鐘一次。在你信任設定之前停用它,方法是設定
agents.defaults.heartbeat.every: "0m"。
前置需求
- Node 22+
- Moltbot 在 PATH 中可用(建議:全域安裝)
- 助理的第二個電話號碼(SIM/eSIM/預付卡)
npm install -g moltbot@latest
# 或:pnpm add -g moltbot@latest從原始碼(開發):
git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install
pnpm ui:build # 首次執行時自動安裝 UI 相依性
pnpm build
pnpm link --global雙手機設定(建議)
你想要這樣:
你的手機(個人) 第二支手機(助理)
┌─────────────────┐ ┌─────────────────┐
│ 你的 WhatsApp │ ──────▶ │ 助理 WA │
│ +1-555-YOU │ 訊息 │ +1-555-CLAWD │
└─────────────────┘ └────────┬────────┘
│ 透過 QR 連結
▼
┌─────────────────┐
│ 你的 Mac │
│ (moltbot) │
│ Pi 代理 │
└─────────────────┘如果你將個人 WhatsApp 連結到 Moltbot,每則傳送給你的訊息都會成為「代理輸入」。這很少是你想要的。
5 分鐘快速開始
- 配對 WhatsApp Web(顯示 QR;使用助理手機掃描):
moltbot channels login- 啟動閘道(保持執行):
moltbot gateway --port 18789- 將最小配置放入
~/.clawdbot/moltbot.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } }
}現在從你的 allowlist 手機傳送訊息給助理號碼。
引導完成後,我們會自動開啟儀表板並附上你的閘道權杖,並列印權杖化連結。稍後重新開啟:moltbot dashboard。
為代理提供工作區(AGENTS)
Clawd 從其工作區目錄讀取操作說明和「記憶」。
預設情況下,Moltbot 使用 ~/clawd 作為代理工作區,並會在設定/首次代理執行時自動建立它(加上啟動器 AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md)。BOOTSTRAP.md 僅在工作區全新時建立(刪除後不應回來)。
提示:將此資料夾視為 Clawd 的「記憶」,並使其成為 git 儲存庫(理想情況下為私有),以便備份你的 AGENTS.md + 記憶檔案。如果已安裝 git,全新工作區會自動初始化。
moltbot setup完整工作區佈局 + 備份指南:代理工作區 記憶工作流程:記憶
選用:使用 agents.defaults.workspace 選擇不同的工作區(支援 ~)。
{
agent: {
workspace: "~/clawd"
}
}如果你已經從儲存庫提供自己的工作區檔案,你可以完全停用啟動檔案建立:
{
agent: {
skipBootstrap: true
}
}將其變成「助理」的配置
Moltbot 預設為良好的助理設定,但你通常會想要調整:
SOUL.md中的角色/指示- 思考預設值(如果需要)
- 心跳(一旦你信任它)
範例:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-5",
workspace: "~/clawd",
thinkingDefault: "high",
timeoutSeconds: 1800,
// 從 0 開始;稍後啟用。
heartbeat: { every: "0m" }
},
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: {
"*": { requireMention: true }
}
}
},
routing: {
groupChat: {
mentionPatterns: ["@clawd", "clawd"]
}
},
session: {
scope: "per-sender",
resetTriggers: ["/new", "/reset"],
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 10080
}
}
}會話與記憶
- 會話檔案:
~/.clawdbot/agents/<agentId>/sessions/.jsonl - 會話元資料(權杖使用、最後路由等):
~/.clawdbot/agents/<agentId>/sessions/sessions.json(舊版:~/.clawdbot/sessions/sessions.json) /new或/reset為該聊天啟動新會話(可透過resetTriggers配置)。如果單獨發送,代理會以簡短的問候回覆以確認重置。/compact [instructions]壓縮會話內容並報告剩餘內容預算。
心跳(主動模式)
預設情況下,Moltbot 每 30 分鐘執行一次心跳,提示為: 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存在但實際上是空的(僅空白行和 markdown 標題,如# Heading),Moltbot 會跳過心跳執行以節省 API 呼叫。 - 如果檔案缺失,心跳仍會執行,模型會決定要做什麼。
- 如果代理以
HEARTBEAT_OK回覆(可選地帶有短填充;參見agents.defaults.heartbeat.ackMaxChars),Moltbot 會抑制該心跳的出站傳遞。 - 心跳執行完整代理回合——較短的間隔會消耗更多權杖。
{
agent: {
heartbeat: { every: "30m" }
}
}媒體輸入與輸出
入站附件(圖片/音訊/文件)可以透過範本呈現給你的指令:
(本地暫存檔路徑)(偽 URL)(如果啟用音訊轉錄)
代理的出站附件:在自己的行上包含 MEDIA:<path-or-url>(無空格)。範例:
這是截圖。
MEDIA:/tmp/screenshot.pngMoltbot 會提取這些並將它們作為媒體與文字一起發送。
操作檢查清單
moltbot status # 本地狀態(憑證、會話、排隊事件)
moltbot status --all # 完整診斷(唯讀、可貼上)
moltbot status --deep # 新增閘道健康探測(Telegram + Discord)
moltbot health --json # 閘道健康快照(WS)日誌位於 /tmp/moltbot/ 下(預設:moltbot-YYYY-MM-DD.log)。
下一步
- WebChat:WebChat
- 閘道操作:閘道手冊
- Cron + 喚醒:Cron 作業
- macOS 選單列同伴:Moltbot macOS 應用程式
- iOS 節點應用程式:iOS 應用程式
- Android 節點應用程式:Android 應用程式
- Windows 狀態:Windows(WSL2)
- Linux 狀態:Linux 應用程式
- 安全性:安全性