在前两篇文章中,我们了解了 OpenClaw 的核心概念并完成了基本安装。现在让我们深入配置各种消息频道,并学习如何在日常工作中有效使用 OpenClaw。
目录
频道配置详解
OpenClaw 支持 20+ 个消息平台。让我们详细了解如何配置最常用的几个频道。
Telegram 配置
Telegram 是最容易配置的频道之一,也是推荐的入门选择。
创建 Telegram Bot
- 在 Telegram 中搜索
@BotFather - 发送
/newbot命令 - 按提示设置 Bot 名称和用户名
- 保存 BotFather 返回的 Token(格式:
123456:ABCDEF...)
配置 OpenClaw
方式一:使用环境变量
export TELEGRAM_BOT_TOKEN="123456:ABCDEF..."
方式二:编辑配置文件
编辑 ~/.openclaw/openclaw.json:
{
"channels": {
"telegram": {
"botToken": "123456:ABCDEF...",
"allowFrom": ["@your_username"],
"groups": {
"*": {
"requireMention": true
}
}
}
}
}
配置选项说明
botToken:Telegram Bot Token(必需)allowFrom:允许的用户列表(用户名或 ID)groups:群组配置"*":匹配所有群组requireMention:是否需要 @ 提及才响应
webhookUrl:Webhook URL(可选,用于接收消息)webhookSecret:Webhook 密钥(可选)
测试连接
- 在 Telegram 中搜索你的 Bot
- 发送
/start开始对话 - 发送任何消息测试响应
WhatsApp 配置
WhatsApp 集成使用 Baileys 库,需要扫码配对。
重要提示
强烈建议使用专用号码:
- 不要使用你的主 WhatsApp 号码
- 使用 SIM 卡、eSIM 或预付费号码
- 这样可以避免个人消息被 Agent 处理
配对 WhatsApp
运行配对命令:
openclaw channels login
这会显示一个二维码,使用你的 WhatsApp 扫描配对。
配置文件
{
"channels": {
"whatsapp": {
"allowFrom": ["+1234567890"],
"groups": {
"*": {
"requireMention": true
}
}
}
}
}
配置选项说明
allowFrom:允许的电话号码列表(必需,使用国际格式)groups:群组配置- 如果设置了
groups,它将成为群组白名单 - 包含
"*"以允许所有群组
- 如果设置了
凭证存储
WhatsApp 凭证存储在:
~/.openclaw/credentials/whatsapp/
如果需要重新配对,删除此目录并重新运行 openclaw channels login。
Discord 配置
Discord 集成支持文本命令和原生斜杠命令。
创建 Discord Bot
- 访问 Discord Developer Portal
- 点击 “New Application”
- 进入 “Bot” 选项卡,点击 “Add Bot”
- 复制 Bot Token
- 启用以下 Privileged Gateway Intents:
- Presence Intent
- Server Members Intent
- Message Content Intent
- 生成邀请链接并添加 Bot 到服务器
配置 OpenClaw
方式一:使用环境变量
export DISCORD_BOT_TOKEN="your-discord-token"
方式二:编辑配置文件
{
"channels": {
"discord": {
"token": "your-discord-token",
"allowFrom": ["user_id_1", "user_id_2"],
"guilds": {
"*": {
"requireMention": true
}
},
"dmPolicy": "pairing",
"commands": {
"native": true,
"text": true
}
}
}
}
配置选项说明
token:Discord Bot Token(必需)allowFrom:允许的用户 ID 列表guilds:服务器配置dmPolicy:DM 策略("pairing"或"open")commands.native:启用斜杠命令commands.text:启用文本命令mediaMaxMb:媒体文件大小限制(MB)
获取用户 ID
在 Discord 中:
- 启用开发者模式(设置 > 高级 > 开发者模式)
- 右键点击用户 > 复制 ID
Slack 配置
Slack 集成使用 Bolt 框架。
创建 Slack 应用
- 访问 Slack API
- 点击 “Create New App” > “From scratch”
- 配置 Bot Token Scopes:
app_mentions:readchannels:historychat:writeim:historyim:readim:write
- 安装应用到工作区
- 复制 Bot User OAuth Token 和 App-Level Token
配置 OpenClaw
export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_APP_TOKEN="xapp-..."
或在配置文件中:
{
"channels": {
"slack": {
"botToken": "xoxb-...",
"appToken": "xapp-...",
"allowFrom": ["U01234567"],
"dmPolicy": "pairing"
}
}
}
iMessage 配置(macOS)
OpenClaw 支持两种 iMessage 集成方式。
方式一:BlueBubbles(推荐)
BlueBubbles 是推荐的 iMessage 集成方式,支持远程访问。
设置 BlueBubbles 服务器:
- 在 macOS 上下载并安装 BlueBubbles Server
- 配置服务器并获取 URL 和密码
- 设置 Webhook
配置 OpenClaw:
{
"channels": {
"bluebubbles": {
"serverUrl": "http://localhost:1234",
"password": "your-password",
"webhookPath": "/webhook/bluebubbles"
}
}
}
方式二:iMessage(传统)
仅限 macOS,使用 imsg CLI。
{
"channels": {
"imessage": {
"allowFrom": ["+1234567890"],
"groups": {
"*": {
"requireMention": true
}
}
}
}
}
注意:Messages 应用必须登录。
Signal 配置
Signal 集成需要 signal-cli。
安装 signal-cli
macOS:
brew install signal-cli
Linux:
# 下载并安装 signal-cli
wget https://github.com/AsamK/signal-cli/releases/download/v0.11.0/signal-cli-0.11.0.tar.gz
tar xf signal-cli-0.11.0.tar.gz -C /opt
ln -sf /opt/signal-cli-0.11.0/bin/signal-cli /usr/local/bin/
注册 Signal 号码
signal-cli -u +1234567890 register
signal-cli -u +1234567890 verify CODE
配置 OpenClaw
{
"channels": {
"signal": {
"number": "+1234567890",
"allowFrom": ["+0987654321"]
}
}
}
其他频道
OpenClaw 还支持:
- Google Chat:企业通讯集成
- Microsoft Teams:需要 Bot Framework 配置
- Mattermost:通过插件支持
- Matrix:去中心化通讯
- IRC:传统聊天协议
- Feishu/LINE/Zalo 等:区域性平台
详细配置请参考官方文档。
安全配置
安全性是 OpenClaw 的重要考虑因素。
DM 策略
OpenClaw 提供两种 DM(直接消息)策略:
配对模式(默认,推荐)
{
"channels": {
"telegram": {
"dmPolicy": "pairing"
}
}
}
行为:
- 未知发送者收到配对码
- Bot 不处理消息直到批准
- 使用
openclaw pairing approve <channel> <code>批准
开放模式(需谨慎)
{
"channels": {
"telegram": {
"dmPolicy": "open",
"allowFrom": ["*"]
}
}
}
警告:开放模式允许任何人与 Bot 交互,仅在受控环境中使用。
白名单配置
始终配置白名单以限制访问:
{
"channels": {
"telegram": {
"allowFrom": ["@user1", "@user2", "123456789"]
},
"whatsapp": {
"allowFrom": ["+1234567890", "+0987654321"]
},
"discord": {
"allowFrom": ["user_id_1", "user_id_2"]
}
}
}
群组配置
控制 Bot 在群组中的行为:
{
"channels": {
"telegram": {
"groups": {
"*": {
"requireMention": true
}
}
}
},
"routing": {
"groupChat": {
"mentionPatterns": ["@openclaw", "openclaw", "hey claw"]
}
}
}
选项:
requireMention: true:需要 @ 提及才响应requireMention: false:响应所有消息(谨慎使用)
运行安全检查
定期运行安全诊断:
openclaw doctor
这会检查:
- 危险的 DM 策略
- 缺少白名单
- 开放的群组访问
- 其他安全风险
聊天命令
OpenClaw 支持多种聊天命令来控制 Agent 行为。
基本命令
在任何频道中发送这些命令:
/status - 查看状态
显示当前会话的状态信息:
/status
输出示例:
Model: claude-opus-4-6
Tokens: 1,234 / 200,000
Cost: $0.05
Session: main
/new 或 /reset - 重置会话
开始一个新的会话,清除历史记录:
/new
或
/reset
Agent 会回复确认消息。
/compact - 压缩上下文
压缩会话上下文,生成摘要:
/compact
可选地提供压缩指令:
/compact 保留最近的代码讨论
/think - 设置思考级别
调整 Agent 的思考深度(仅 GPT-5.2 和 Codex 模型):
/think off
/think minimal
/think low
/think medium
/think high
/think xhigh
/verbose - 详细模式
启用或禁用详细输出:
/verbose on
/verbose off
/usage - 使用统计
控制每次响应后的使用统计显示:
/usage off # 不显示
/usage tokens # 仅显示 token 数
/usage full # 完整统计
群组命令
这些命令仅在群组中可用,且仅群组所有者可以使用。
/restart - 重启 Gateway
重启 Gateway 进程:
/restart
警告:这会断开所有连接并重新启动。
/activation - 激活模式
切换群组激活模式:
/activation mention # 需要提及
/activation always # 始终响应
会话管理
理解 OpenClaw 的会话模型对于有效使用至关重要。
会话类型
主会话(Main Session)
- 所有直接聊天(DM)合并到一个共享的主会话
- 跨频道保持上下文
- 适合个人助手使用
群组会话
- 每个群组有独立的会话
- 群组之间互相隔离
- 防止上下文泄漏
会话配置
{
"session": {
"scope": "per-sender",
"resetTriggers": ["/new", "/reset"],
"reset": {
"mode": "daily",
"atHour": 4,
"idleMinutes": 10080
}
}
}
选项说明:
scope:会话范围"per-sender":每个发送者一个会话"per-channel-peer":每个频道-用户对一个会话
resetTriggers:触发重置的命令reset.mode:自动重置模式"daily":每天重置"idle":空闲后重置
reset.atHour:每日重置的小时(0-23)reset.idleMinutes:空闲多少分钟后重置
会话文件
会话数据存储在:
~/.openclaw/agents/<agentId>/sessions/
<SessionId>.jsonl:会话消息历史sessions.json:会话元数据(token 使用、最后路由等)
工作区定制
工作区是 Agent 的”大脑”,包含操作指令和记忆。
工作区结构
~/.openclaw/workspace/
├── AGENTS.md # Agent 操作指令
├── SOUL.md # Agent 个性和行为
├── TOOLS.md # 可用工具说明
├── IDENTITY.md # Agent 身份信息
├── USER.md # 用户信息
├── HEARTBEAT.md # 心跳任务配置
├── MEMORY.md # 可选的持久记忆
└── skills/ # 技能目录
├── gmail/
├── calendar/
└── ...
编辑 SOUL.md
SOUL.md 定义 Agent 的个性:
# Agent 个性
你是一个高效、友好的个人助手。
## 沟通风格
- 简洁明了,避免冗长
- 使用友好但专业的语气
- 适当使用表情符号 😊
- 中文为主要语言
## 行为准则
- 主动提供帮助建议
- 在执行重要操作前确认
- 保护用户隐私
- 承认不确定性
## 专长领域
- 日程管理
- 邮件处理
- 代码审查
- 文档编写
编辑 AGENTS.md
AGENTS.md 包含操作指令:
# Agent 操作指令
## 邮件处理
- 每天早上 9 点检查未读邮件
- 自动归档营销邮件
- 标记重要邮件并通知我
## 日程管理
- 提前 15 分钟提醒会议
- 检查日程冲突
- 建议最佳会议时间
## 代码审查
- 检查代码风格
- 识别潜在 bug
- 建议性能优化
编辑 HEARTBEAT.md
HEARTBEAT.md 定义主动任务:
# 心跳任务
## 每日任务
- 检查未读邮件数量
- 查看今日日程
- 检查待办事项
## 每周任务
- 生成周报
- 清理旧文件
- 备份重要数据
## 条件任务
- 如果有紧急邮件,立即通知
- 如果磁盘空间不足,发出警告
使用 MEMORY.md
MEMORY.md 用于持久记忆(可选):
# 持久记忆
## 用户偏好
- 喜欢简洁的回复
- 工作时间:9:00-18:00
- 时区:UTC+8
## 重要信息
- 项目 A 的截止日期:2026-03-15
- 客户 B 的联系方式:xxx
- 服务器 C 的 IP:xxx
## 学习记录
- 用户经常在周五下午请假
- 用户喜欢在早上处理重要任务
心跳功能
心跳是 OpenClaw 的主动式功能,让 Agent 定期检查和执行任务。
配置心跳
{
"agent": {
"heartbeat": {
"every": "30m"
}
}
}
选项:
"0m":禁用心跳"15m":每 15 分钟"30m":每 30 分钟(默认)"1h":每小时"2h":每 2 小时
心跳行为
每次心跳时,Agent 会:
- 读取
HEARTBEAT.md(如果存在) - 执行指定的任务
- 如果没有需要处理的事项,回复
HEARTBEAT_OK - 如果回复
HEARTBEAT_OK,不会发送消息
心跳策略
{
"agent": {
"heartbeat": {
"every": "30m",
"ackMaxChars": 20,
"directPolicy": "allow"
}
}
}
选项说明:
ackMaxChars:HEARTBEAT_OK的最大字符数directPolicy:"allow":允许发送到 DM 目标(默认)"block":阻止发送到 DM 目标
最佳实践
- 保守开始:初始设置
every: "0m"禁用心跳 - 逐步启用:熟悉后再启用心跳
- 明确任务:在
HEARTBEAT.md中明确定义任务 - 避免空文件:如果
HEARTBEAT.md为空,心跳仍会运行但 Agent 自行决定
媒体处理
OpenClaw 支持处理图片、音频和文档。
发送媒体给 Agent
直接在聊天中发送文件,Agent 可以访问:
- 图片:分析、识别、描述
- 音频:转录(如果启用)
- 文档:读取、总结、分析
Agent 发送媒体
Agent 可以生成和发送媒体文件。
语法:
在回复中单独一行包含:
MEDIA:<path-or-url>
示例:
这是你要的截图。
MEDIA:https://example.com/screenshot.png
或本地文件:
报告已生成。
MEDIA:/tmp/report.pdf
媒体配置
{
"channels": {
"telegram": {
"mediaMaxMb": 50
},
"discord": {
"mediaMaxMb": 25
}
}
}
语音转录
启用语音转录(需要配置转录服务):
{
"media": {
"transcription": {
"enabled": true,
"provider": "whisper"
}
}
}
日常使用技巧
技巧 1:使用别名
为常用命令创建别名:
# 在 ~/.bashrc 或 ~/.zshrc 中
alias claw="openclaw"
alias claw-status="openclaw status"
alias claw-logs="tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log"
技巧 2:快速发送消息
使用 CLI 发送消息:
openclaw message send --to +1234567890 --message "提醒我明天开会"
技巧 3:与 Agent 对话
直接从命令行与 Agent 对话:
openclaw agent --message "总结今天的邮件" --thinking high
技巧 4:使用模板
在 AGENTS.md 中定义常用模板:
## 邮件模板
### 会议邀请
当我说"发送会议邀请"时,使用以下模板:
...
### 周报
当我说"生成周报"时,包含:
...
技巧 5:多 Agent 设置
为不同用途创建多个 Agent:
# 创建工作 Agent
openclaw agents add work --workspace ~/.openclaw/workspace-work
# 创建个人 Agent
openclaw agents add personal --workspace ~/.openclaw/workspace-personal
技巧 6:使用 Cron 任务
设置定时任务:
{
"cron": {
"jobs": [
{
"schedule": "0 9 * * *",
"command": "openclaw agent --message '检查今日日程'"
},
{
"schedule": "0 18 * * 5",
"command": "openclaw agent --message '生成本周总结'"
}
]
}
}
技巧 7:集成 Webhook
接收外部事件:
{
"webhooks": {
"enabled": true,
"port": 18790,
"endpoints": [
{
"path": "/github",
"action": "forward-to-agent",
"message": "GitHub 事件: {{body}}"
}
]
}
}
故障排查
问题 1:Agent 不响应
检查清单:
-
Gateway 是否运行?
openclaw status -
频道是否连接?
openclaw status --deep -
用户是否在白名单中? 检查配置文件中的
allowFrom -
群组是否需要提及? 尝试
@bot_name 你好
问题 2:会话丢失
解决方案:
检查会话文件:
ls -la ~/.openclaw/agents/*/sessions/
如果文件损坏,可以重置:
rm ~/.openclaw/agents/*/sessions/<SessionId>.jsonl
问题 3:心跳过于频繁
解决方案:
调整心跳间隔:
{
"agent": {
"heartbeat": {
"every": "1h"
}
}
}
或临时禁用:
{
"agent": {
"heartbeat": {
"every": "0m"
}
}
}
问题 4:API 限制
解决方案:
- 使用更高级别的 API 订阅
- 配置模型回退:
{ "agent": { "model": "anthropic/claude-opus-4-6", "fallback": ["anthropic/claude-sonnet-4-5", "openai/gpt-4"] } }
问题 5:媒体文件过大
解决方案:
调整大小限制:
{
"channels": {
"telegram": {
"mediaMaxMb": 100
}
}
}
下一步
在本文中,我们详细介绍了如何配置各种消息频道、使用聊天命令、管理会话以及日常使用技巧。
在下一篇也是最后一篇文章中,我们将探讨:
- 高级功能:浏览器控制、Canvas、设备节点
- 技能系统:安装和创建自定义技能
- 远程访问:使用 Tailscale 或 SSH 隧道
- 维护和更新:保持 OpenClaw 最新
- 性能优化:提高响应速度和降低成本
- 备份和恢复:保护你的数据
参考资源
内容基于 OpenClaw 官方文档改编,遵循内容许可限制