个人助手配置
将 OpenClaw 作为个人助手运行的端到端指南(含安全注意事项)。
OpenClaw 是一个面向 **Pi** agents 的 WhatsApp + Telegram + Discord + iMessage 网关(Gateway)。插件还可以接入 Mattermost。本指南是“个人助手”配置:使用一个专用的 WhatsApp 号码,让它表现为随时在线的 Agent。
⚠️ 安全优先
你把一个 Agent 放在了可能做到这些事的位置: - 在你的机器上运行命令(取决于你的 Pi 工具配置) - 读/写你工作区里的文件 - 通过 WhatsApp/Telegram/Discord/Mattermost(插件)向外发送消息 建议从保守配置开始:
- 始终设置 `channels.whatsapp.allowFrom`(不要在个人电脑上运行一个“对全世界开放”的助手)。
- 为助手使用一个独立的 WhatsApp 号码。
- 心跳(Heartbeat)默认每 30 分钟一次。建议先禁用,直到你信任这个设置:将 `agents.defaults.heartbeat.every: "0m"`。
前置条件
- Node **22+** - 系统 PATH 中能找到 OpenClaw(推荐:全局安装) - 一个第二手机号(SIM/eSIM/预付费均可),用于助手号码
npm install -g openclaw@latest
从源码(开发模式)运行:
git clone https://github.com/openclaw/openclaw.git cd openclaw pnpm install pnpm ui:build # 首次运行会自动安装 UI 依赖 pnpm build pnpm link --global
双手机方案(推荐)
你想要的是这种结构:
你的手机(个人) 第二部手机(助手)
┌─────────────────┐ ┌─────────────────┐
│ 你的 WhatsApp │ ──────▶ │ 助手 WhatsApp │
│ +1-555-YOU │ message │ +1-555-ASSIST │
└─────────────────┘ └────────┬────────┘
│ 通过 QR 码链接
▼
┌─────────────────┐
│ 你的 Mac │
│ (openclaw) │
│ Pi agent │
└─────────────────┘如果你把个人 WhatsApp 账号链接 to OpenClaw,那么每条发给你的消息都会变成 “agent 输入”。这通常不是你想要的。
5 分钟快速开始
1. 配对 WhatsApp Web(会显示 QR;用助手手机扫描):
openclaw channels login
2. 启动 Gateway(保持它一直运行):
openclaw gateway --port 18789
3. 在 `~/.openclaw/openclaw.json` 写一个最小配置:
'{'
channels: '{' whatsapp: '{' allowFrom: ["+15555550123"] '}' '}',
'}'现在,用你的 allowlist 手机号给助手号码发消息。
当 onboarding 完成后,我们会自动打开带 token 的 dashboard 链接,并把 token 化的 URL 打印出来。之后要再次打开:`openclaw dashboard`。
给 Agent 一个工作区(AGENTS)
OpenClaw 会从它的工作区目录读取操作指令和“记忆”。
默认情况下,OpenClaw 使用 `~/.openclaw/workspace` 作为 agent 工作区,并会在 setup/首次运行时自动创建(以及初始的 `AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md`)。`BOOTSTRAP.md` 只会在工作区全新时创建(删除后不应反复出现)。
建议:把这个文件夹当作 OpenClaw 的“记忆”,并把它做成一个 git 仓库(最好是私有仓库)来备份 `AGENTS.md` 与记忆文件。如果系统安装了 git,全新的工作区会自动初始化为仓库。
openclaw setup
可选:通过 `agents.defaults.workspace` 设置不同的工作区路径(支持 `~`):
{
agent: {
workspace: "~/.openclaw/workspace",
},
}如果你已经从仓库分发自己的工作区文件,可以完全禁用 bootstrap 文件创建:
{
agent: {
skipBootstrap: true,
},
}让它真正“像个助手”的配置
OpenClaw 默认已经是一个不错的助手设置,但你通常会想调整:
- `SOUL.md` 里的 persona / 指令
- 思考默认值(如有需要)
- 心跳(在你信任之后再启用)
示例:
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-5",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Start with 0; enable later.
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,
},
},
}会话与记忆
- 会话文件:`<code1>~/.openclaw/agents/<agentId>/sessions/{'{SessionId}'}.jsonl</code1>`
- 会话元数据(token 用量、上一次路由等):`<code1>~/.openclaw/agents/<agentId>/sessions/sessions.json</code1>`(旧路径:`<code2>~/.openclaw/sessions/sessions.json</code2>`)
- `/new` 或 `/reset` 会为该聊天开启一个新会话(可通过 `resetTriggers` 配置)。如果单独发送该命令,Agent 会回复一个简短的确认消息。
- `/compact [instructions]` 会压缩会话上下文并报告剩余的上下文预算。
心跳(主动模式)
默认情况下,OpenClaw 每 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` 存在但基本为空(只有空行或 `# Heading` 这样的标题),OpenClaw 会跳过本次心跳以节省 API 调用。
- 如果文件不存在,心跳仍会运行,由模型决定做什么。
- 如果 Agent 回复 `HEARTBEAT_OK`(可带少量填充;参见 `agents.defaults.heartbeat.ackMaxChars`),OpenClaw 会抑制本次心跳的对外发送。
- 心跳是完整的 agent turn;间隔越短,消耗 token 越多。
{
agent: {
heartbeat: { every: "30m" },
},
}输入与输出媒体
入站附件(图片/音频/文档)可以通过模板参数提供给你的命令:
- `<code1>'{'{MediaPath}'}'</code1>`(本地临时文件路径)
- `<code2>'{'{MediaUrl}'}'</code2>`(伪 URL)
- `<code3>'{'{Transcript}'}'</code3>`(如果启用了音频转写)
Agent 的出站附件:在单独一行写 `<code1>MEDIA:<path-or-url>'</code1>`(无空格)。例如:
这是截图。 MEDIA:https://example.com/screenshot.png
OpenClaw 会解析这些行,并把它们作为媒体与文本一起发送。
运维检查清单
openclaw status # 本机状态(凭据、会话、队列事件) openclaw status --all # 完整诊断(只读,可直接粘贴分享) openclaw status --deep # 增加 gateway 健康探针(Telegram + Discord) openclaw health --json # gateway 健康快照(WS)
日志默认在 `/tmp/openclaw/`(文件名形如 `openclaw-YYYY-MM-DD.log`)。