个人助理设置
OpenClaw 是一个自托管网关,可将 Discord、Google Chat、iMessage、Matrix、Microsoft Teams、Signal、Slack、Telegram、WhatsApp、Zalo 等连接到 AI Agent。本指南涵盖"个人助理"配置:一个专用的 WhatsApp 号码,行为就像你始终在线的 AI 助理。想改为搭建供多人使用的共享网关?请参阅 团队配置。
好的默认设置优先¶
已连接的 Agent 才是有能力的 Agent:根据你的工具策略,它可以运行命令、在其工作区中处理文件,并代表你向他人发送消息。默认设置将这些能力限制在你个人范围内;有几项设置值得事先确认:
- 始终设置
channels.whatsapp.allowFrom(绝不要在个人 Mac 上以对全世界开放的方式运行)。 - 为助理使用专用的 WhatsApp 号码。
- 心跳默认每 30 分钟一次。在评估配置期间,设置
agents.defaults.heartbeat.every: "0m"可禁用循环轮询。定向的事件驱动后续任务仍可运行,因此在信任该配置之前,请对工具策略和沙箱保持保守态度。
先决条件¶
- 已安装并完成引导的 OpenClaw——如果尚未完成,请参阅 快速入门
- 已安装 WhatsApp 插件,或在引导过程中选择了 WhatsApp。WhatsApp 是官方插件,可按需安装。请参阅 WhatsApp
- 为助理准备第二个手机号码(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 输入"。这通常不是你想要的效果。
5 分钟快速上手¶
- 配对 WhatsApp Web(显示二维码;用助理手机扫描):
- 启动网关(保持运行):
- 在
~/.openclaw/openclaw.json中放入最小配置:
现在,从你的白名单手机向助理号码发送消息。
引导完成后,OpenClaw 会自动打开仪表盘并打印一个干净的(不含令牌的)链接。如果仪表盘提示需要认证,请将配置好的共享密钥粘贴到 Control UI 设置中。引导默认使用令牌认证(gateway.auth.token),但如果你已将 gateway.auth.mode 切换为 password,密码认证同样有效。之后如需重新打开:openclaw dashboard。
为 Agent 创建工作区(AGENTS)¶
OpenClaw 从其工作区目录中读取操作说明和"记忆"。
默认情况下,OpenClaw 使用 ~/.openclaw/workspace 作为 Agent 工作区,并在引导或首次运行 Agent 时自动创建它(以及初始的 AGENTS.md、SOUL.md、IDENTITY.md、USER.md)。将特定于环境的工具说明放入 AGENTS.md 的 ## Tools 部分。BOOTSTRAP.md 仅为全新工作区创建,删除后不应再出现。MEMORY.md 是可选的,绝不会自动创建;当存在时,它会在普通会话中加载。子 Agent 会话仅注入 AGENTS.md。
Tip
将文件夹视为 OpenClaw 的记忆,并将其设为 git 仓库(最好是私有的),以便备份你的 AGENTS.md 和记忆文件。如果已安装 git,全新的工作区会自动使用 git init 初始化。
如需在不运行完整引导向导的情况下创建工作区和配置文件夹:
(裸命令 openclaw setup 是 openclaw onboard 的别名,会运行完整的交互式引导向导。)
完整的工作区布局 + 备份指南:Agent 工作区 记忆工作流:Memory
可选:使用 agents.defaults.workspace 选择不同的工作区(支持 ~)。
如果你已经从仓库自带工作区文件,可以完全禁用引导文件的创建:
将其变成"助理"的配置¶
OpenClaw 的默认配置就是一个良好的助理配置,但你通常需要调整:
SOUL.md中的人设/指令- 思考默认值(如果需要)
- 心跳(一旦你信任它)
示例:
{
logging: { level: "info" },
agents: {
defaults: {
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Start with 0; enable later.
heartbeat: { every: "0m" },
},
entries: {
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]会压缩会话上下文,并报告剩余的上下文预算。
心跳(主动模式)¶
默认情况下,OpenClaw 每 30 分钟运行一次心跳——当配置了 Anthropic OAuth/令牌认证(包括 Claude CLI 复用)时则为每小时一次。完整的默认值请参阅 Heartbeat。提示词为:
Follow the heartbeat monitor scratch context when provided. Recurring tasks are automations; create or change their schedules with the automations tool, not heartbeat scratch. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply NO_REPLY.
设置 agents.defaults.heartbeat.every: "0m" 可禁用循环节奏。定向的事件驱动唤醒(例如后台执行完成后的后续处理)仍然可用,且不会创建循环计划。心跳检查清单存放在监视器的 cron scratch 中(参阅 Heartbeat);openclaw doctor --fix 会将旧版工作区的 HEARTBEAT.md 迁移到其中。
- 如果监控 scratch 存在但实际为空(仅包含空行、Markdown/HTML 注释、类似
# Heading的 Markdown 标题、围栏标记或空清单存根),OpenClaw 会跳过本次 heartbeat 运行以节省 API 调用。 - 如果不存在 scratch,heartbeat 仍会运行,并由模型决定如何处理。
- 如果 agent 回复
NO_REPLY,OpenClaw 会抑制该 heartbeat 的出站投递。旧版HEARTBEAT_OK回复仍受支持,并带有固定的 300 字符确认预算。 - 默认情况下,允许向 DM 风格的
user:<id>目标投递 heartbeat。设置agents.defaults.heartbeat.directPolicy: "block"可抑制直接目标投递,同时保持 heartbeat 运行处于活动状态。 - Heartbeat 会运行完整的 agent 轮次——更短的间隔会消耗更多 Token。
媒体输入与输出¶
入站附件(图像/音频/文档)可以通过模板呈现到你的命令中:
{{AttachmentPath}}(本地临时文件路径){{AttachmentUrl}}(原始 URL 或提供商引用){{AttachmentContentType}}(MIME 内容类型){{AttachmentDir}}(包含本地路径的目录){{AttachmentIndex}}(从零开始的源事实索引){{Transcript}}(如果启用了音频转录)
旧版 {{MediaPath}}、{{MediaUrl}}、{{MediaType}} 和 {{MediaDir}}
名称仍可作为已弃用的兼容性别名使用。
agent 的出站附件使用消息工具或回复负载中的结构化媒体字段,例如 media、mediaUrl、mediaUrls、path 或 filePath。消息工具参数示例:
OpenClaw 会随文本一起发送结构化媒体。旧版最终 assistant 回复可能仍会被规范化以兼容,但工具输出、浏览器输出、流式块和消息操作不会将文本解析为附件命令。
如果必须使用旧版最终回复中的 MEDIA: 行,请将其保留为独立的纯
文本。Markdown 包装器、代码围栏以及内联文本,例如
**MEDIA:/path.png**、`MEDIA:/path.png` 或
Here is the image: MEDIA:/path.png,仍会保持为文本,不会附加媒体。参见
富输出协议.
本地路径行为遵循与 agent 相同的文件读取信任模型:
- 如果
tools.fs.workspaceOnly为true,出站本地媒体路径仍限制在 OpenClaw 临时根目录、媒体缓存、agent 工作区路径以及活动会话沙箱中生成的文件。同级沙箱中的文件仍不可访问。 - 如果
tools.fs.workspaceOnly为false,出站本地媒体可以使用 agent 已被允许读取的宿主本地文件。 - 本地路径可以是绝对路径、工作区相对路径,或使用
~/的主目录相对路径。 - 宿主本地发送仍只允许媒体和支持的文档类型(图像、音频、视频、PDF、Office 文档(包括启用宏的 Excel
.xlsm),以及经过验证的文本文档,例如 Markdown/MD、TXT、JSON、YAML 和 YML)。这是现有宿主读取信任边界的扩展,而不是机密扫描器:如果 agent 可以读取宿主本地的secret.txt或config.json,并且扩展名和内容验证匹配,它就可以附加该文件。文件类型验证并不能证明所附加工作簿中的宏可以安全运行。
请将敏感文件放在 agent 可读文件系统之外,或保持 tools.fs.workspaceOnly: true 以更严格地限制本地路径发送。
当消息工具无法为当前会话暂存附件时, 其错误会标识文件及报告的原因,例如文件缺失或 不支持的本地格式。位于工作区内并不意味着所有 文件类型都符合宿主本地附件读取条件。
运维检查清单¶
openclaw status # local status (creds, sessions, queued events)
openclaw status --all # full diagnosis (read-only, pasteable)
openclaw status --deep # probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)
openclaw health --json # gateway health snapshot over the WS connection
日志位于 /tmp/openclaw/ 下:默认
profile 使用 openclaw-YYYY-MM-DD.log,命名 profile 使用 openclaw-<profile>-YYYY-MM-DD.log。
后续步骤¶
- WebChat:WebChat
- Gateway 运维:Gateway 运行手册
- Cron + 唤醒:Cron 任务
- macOS 菜单栏伴侣:OpenClaw macOS 应用
- iOS 节点应用:iOS 应用
- Android 节点应用:Android 应用
- Windows Hub:Windows
- Linux 状态:Linux 应用
- 安全:安全
相关¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw