指南
个人助理设置
OpenClaw 是一个自托管 Gateway 网关,可将 Discord、Google Chat、iMessage、Matrix、Microsoft Teams、Signal、Slack、Telegram、WhatsApp、Zalo 等连接到 AI 智能体。本指南介绍“个人助理”设置:使用一个专用 WhatsApp 号码,让它像始终在线的 AI 助理一样工作。
安全第一
为智能体接入渠道后,它将能够在你的机器上运行命令(具体取决于你的工具策略)、读取或写入工作区中的文件,并通过任何已连接的渠道发送消息。开始时请采取保守设置:
- 始终设置
channels.whatsapp.allowFrom(切勿在你的个人 Mac 上开放给所有人运行)。 - 为助理使用专用的 WhatsApp 号码。
- Heartbeat 默认每 30 分钟运行一次。在你信任此设置之前,请通过设置
agents.defaults.heartbeat.every: "0m"将其禁用。
前置条件
- 已安装 OpenClaw 并完成新手引导——如果尚未完成,请参阅入门指南
- 为助理准备第二个电话号码(SIM/eSIM/预付费号码)
双手机设置(推荐)
你需要以下设置:
flowchart TB
A["<b>你的手机(个人)<br></b><br>你的 WhatsApp<br>+1-555-YOU"] -- 发送消息 --> B["<b>第二部手机(助理)<br></b><br>助理 WA<br>+1-555-ASSIST"]
B -- 通过二维码关联 --> C["<b>你的 Mac(openclaw)<br></b><br>AI 智能体"]如果将你的个人 WhatsApp 关联到 OpenClaw,发送给你的每条消息都会成为“智能体输入”。这通常并不是你想要的效果。
5 分钟快速开始
- 配对 WhatsApp Web(显示二维码;使用助理手机扫描):
openclaw channels login- 启动 Gateway 网关(保持运行):
openclaw gateway --port 18789- 在
~/.openclaw/openclaw.json中放入最小配置:
{ gateway: { mode: "local" }, channels: { whatsapp: { allowFrom: ["+15555550123"] } },}现在,使用允许列表中的手机向助理号码发送消息。
新手引导完成后,OpenClaw 会自动打开仪表板,并输出一个简洁的链接(不含令牌)。如果仪表板提示进行身份验证,请将配置的共享密钥粘贴到 Control UI 设置中。新手引导默认使用令牌(gateway.auth.token),但如果你已将 gateway.auth.mode 切换为 password,也可以使用密码身份验证。以后重新打开时,请使用:openclaw dashboard。
为智能体提供工作区(AGENTS)
OpenClaw 从其工作区目录中读取操作说明和“记忆”。
默认情况下,OpenClaw 使用 ~/.openclaw/workspace 作为 Agent 工作区,并在新手引导或首次运行智能体时自动创建它(以及初始的 AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md)。BOOTSTRAP.md 仅为全新工作区创建,删除后不应再次出现。MEMORY.md 是可选文件,绝不会自动创建;如果存在,则会在普通会话中加载。子智能体会话仅注入 AGENTS.md 和 TOOLS.md。
如果要创建工作区和配置文件夹,而不运行完整的新手引导向导:
openclaw setup --baseline(单独使用 openclaw setup 是 openclaw onboard 的别名,会运行完整的交互式向导。)
完整的工作区布局和备份指南:Agent 工作区 记忆工作流程:记忆
可选:使用 agents.defaults.workspace 选择其他工作区(支持 ~)。
{ agents: { defaults: { workspace: "~/.openclaw/workspace", }, },}如果你已经从仓库提供自己的工作区文件,可以完全禁用引导文件的创建:
{ agents: { defaults: { skipBootstrap: true, }, },}将其变为“助理”的配置
OpenClaw 默认提供良好的助理设置,但通常还需要调整:
SOUL.md中的角色设定/说明- 思考默认值(如果需要)
- Heartbeat(信任此设置后)
示例:
{ logging: { level: "info" }, agents: { defaults: { model: { primary: "anthropic/claude-opus-5" }, workspace: "~/.openclaw/workspace", thinkingDefault: "high", timeoutSeconds: 1800, // 初始设置为 0;稍后再启用。 heartbeat: { every: "0m" }, }, list: [ { id: "main", default: true, groupChat: { mentionPatterns: ["@openclaw", "openclaw"], }, }, ], }, channels: { whatsapp: { allowFrom: ["+15555550123"], groups: { "*": { requireMention: true }, }, }, }, session: { scope: "per-sender", resetTriggers: ["/new", "/reset"], reset: { mode: "daily", atHour: 4, idleMinutes: 10080, }, },}会话和记忆
- 会话行、转录记录行和元数据(令牌用量、上次路由等):
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - 旧版/归档转录工件:
~/.openclaw/agents/<agentId>/sessions/ - 旧版行迁移来源:
~/.openclaw/agents/<agentId>/sessions/sessions.json /new或/reset会为该聊天启动新会话(可通过session.resetTriggers配置)。如果单独发送,OpenClaw 会确认重置,而不会调用模型。/compact [instructions]会压缩会话上下文,并报告剩余的上下文预算。
Heartbeat(主动模式)
默认情况下,OpenClaw 每 30 分钟使用以下提示词运行一次 Heartbeat:
Follow the heartbeat monitor scratch context when provided. Recurring tasks are cron jobs; create or change their schedules with cron tools or the openclaw cron CLI, not heartbeat scratch. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
设置 agents.defaults.heartbeat.every: "0m" 可将其禁用。Heartbeat 检查清单位于监控器的 cron 临时区中(请参阅 Heartbeat);openclaw doctor --fix 会将旧版工作区中的 HEARTBEAT.md 迁移到该位置。
- 如果监控器临时区存在但实际上为空(仅包含空行、Markdown/HTML 注释、类似
# Heading的 Markdown 标题、围栏标记或空的检查清单占位项),OpenClaw 会跳过 Heartbeat 运行以节省 API 调用。 - 如果不存在临时区,Heartbeat 仍会运行,并由模型决定如何处理。
- 如果智能体回复
HEARTBEAT_OK(可以带有少量填充内容;请参阅agents.defaults.heartbeat.ackMaxChars),OpenClaw 会阻止该次 Heartbeat 的出站发送。 - 默认允许将 Heartbeat 发送到私信类型的
user:<id>目标。设置agents.defaults.heartbeat.directPolicy: "block"可禁止发送到直接目标,同时保持 Heartbeat 继续运行。 - Heartbeat 会运行完整的智能体轮次——间隔越短,消耗的令牌越多。
{ agents: { defaults: { heartbeat: { every: "30m" }, }, },}媒体输入和输出
入站附件(图像/音频/文档)可通过模板提供给你的命令:
{{AttachmentPath}}(本地临时文件路径){{AttachmentUrl}}(原始 URL 或提供商引用){{AttachmentContentType}}(MIME 内容类型){{AttachmentDir}}(包含本地路径的目录){{AttachmentIndex}}(从零开始的来源事实索引){{Transcript}}(如果已启用音频转录)
旧版的 {{MediaPath}}、{{MediaUrl}}、{{MediaType}} 和 {{MediaDir}}
名称仍可作为已弃用的兼容性别名使用。
智能体的出站附件使用消息工具或回复载荷中的结构化媒体字段,例如 media、mediaUrl、mediaUrls、path 或 filePath。消息工具参数示例:
{ "message": "这是屏幕截图。", "mediaUrl": "https://example.com/screenshot.png"}OpenClaw 会将结构化媒体与文本一并发送。出于兼容性考虑,旧版智能体最终回复可能仍会被规范化,但工具输出、浏览器输出、流式块和消息操作不会将文本解析为附件命令。
本地路径行为遵循与智能体相同的文件读取信任模型:
- 如果
tools.fs.workspaceOnly为true,出站本地媒体路径将限制在 OpenClaw 临时根目录、媒体缓存、Agent 工作区路径和沙箱生成的文件中。 - 如果
tools.fs.workspaceOnly为false,出站本地媒体可以使用智能体已获准读取的主机本地文件。 - 本地路径可以是绝对路径、工作区相对路径,或使用
~/的主目录相对路径。 - 主机本地发送仍仅允许媒体和安全文档类型(图像、音频、视频、PDF、Office 文档,以及经过验证的文本文档,例如 Markdown/MD、TXT、JSON、YAML 和 YML)。这是对现有主机读取信任边界的扩展,并非秘密扫描器:如果智能体可以读取主机本地的
secret.txt或config.json,并且扩展名和内容验证相符,它就可以附加该文件。
请将敏感文件放在智能体可读文件系统之外,或保留 tools.fs.workspaceOnly: true,以更严格地限制本地路径发送。
运维检查清单
openclaw status # 本地状态(凭据、会话、排队事件)openclaw status --all # 完整诊断(只读、可直接粘贴)openclaw status --deep # 探测渠道(WhatsApp Web + Telegram + Discord + Slack + Signal)openclaw health --json # 通过 WS 连接获取 Gateway 网关健康快照日志位于 /tmp/openclaw/ 下:默认配置文件使用 openclaw-YYYY-MM-DD.log,
命名配置文件使用 openclaw-<profile>-YYYY-MM-DD.log。
后续步骤
- WebChat:WebChat
- Gateway 网关运维:Gateway 网关运行手册
- 定时任务和唤醒:定时任务
- macOS 菜单栏配套应用:OpenClaw macOS 应用
- iOS 节点应用:iOS 应用
- Android 节点应用:Android 应用
- Windows Hub:Windows
- Linux 状态:Linux 应用
- 安全:安全