OpenClaw 和朋友一起聊天
本技能引导用户完成设置 Telegram 频道的全过程,让多个 OpenClaw 机器人可以在同一个频道中互相聊天。最终目标是:用户的 OpenClaw 和朋友的 OpenClaw 都在频道中,能看到彼此的消息并自然地互动。
开始之前:询问用户——创建还是加入?
在开始之前,先问用户是要创建新频道还是加入朋友已经创建好的频道。
- "你是要创建一个新频道,还是加入朋友已经创建好的频道?"
根据回答选择对应的路径。
路径 A —— 创建新频道
如果用户要创建频道,按顺序引导:步骤 1A → 步骤 2 → 步骤 3 → 步骤 4 → 步骤 5。
路径 B —— 加入已有频道
如果用户要加入朋友的频道,跳过步骤 1A,从步骤 1B 开始:步骤 1B → 步骤 2 → 步骤 3 → 步骤 4 → 步骤 5。
步骤 1A:创建 Telegram 频道(适用于频道创建者)
让用户打开 Telegram 创建一个新的频道(Channel)。
操作步骤:
- 打开 Telegram,点击右下角的编辑/新建图标(桌面端是左上角菜单)。
- 选择新建频道(New Channel)。
- 给频道起一个好记的名字,例如"OpenClaw 聊天室"或者用户喜欢的任何名字。
- 选择频道类型——推荐选择私有频道(通过邀请链接加入),公开频道也可以。
- 可以选择添加频道描述,方便朋友了解用途。
- 完成创建。
为什么用频道而不是群组? 在 Telegram 频道中,设为管理员的机器人可以发送消息并且能看到其他管理员机器人的消息。这是让 OpenClaw 机器人互相对话的正确方式——在群组中,机器人之间即使关闭了隐私模式也无法看到彼此的消息。
完成后提醒用户:"频道创建好之后,把邀请链接分享给你的朋友,后面还需要把朋友的机器人添加为管理员(步骤 3)。"
确认:"你的 Telegram 频道创建好了吗?叫什么名字?"
步骤 1B:加入已有频道(适用于加入者)
朋友已经创建好了频道,用户需要加入频道并让朋友把自己的机器人设为管理员。
操作步骤:
- 让朋友发送频道邀请链接给你。
- 在 Telegram 中打开链接加入频道。
- 让朋友把你的 OpenClaw 机器人添加到频道并设为管理员(朋友需要在频道设置 → 管理员 → 添加管理员 → 搜索你的机器人用户名 → 至少授予发送消息权限)。
为什么需要朋友来操作? 只有现有的频道管理员才能添加新管理员。你刚加入频道,还没有管理员权限,需要朋友(频道创建者)来操作。
确认:"你已经加入频道了吗?朋友已经把你的机器人设为管理员了吗?"
步骤 2:通过 BotFather 配置机器人隐私模式
每个 OpenClaw 机器人都需要关闭隐私模式,这样才能读取频道中的所有消息,而不仅仅是发给它的命令。
操作步骤:
- 在 Telegram 中打开与 @BotFather 的对话。
- 发送
/setprivacy。 - BotFather 会让你选择一个机器人——选择你的 OpenClaw 机器人。
- 选择 Disable。
BotFather 会确认:"Privacy mode is disabled for [你的机器人]。"
向用户解释为什么这很重要:默认情况下,Telegram 机器人只能看到以 / 开头的消息或者直接 @ 它的消息。关闭隐私模式后,机器人才能看到频道中的所有消息,这是 OpenClaw 机器人之间自然对话的前提。
重要提醒: 用户的朋友也需要对自己的 OpenClaw 机器人执行同样的操作。两个机器人都必须关闭隐私模式。
确认:"你的机器人已经关闭隐私模式了吗?你朋友那边也关了吗?"
步骤 3:将机器人添加为频道管理员
两个 OpenClaw 机器人都需要在频道中担任管理员。这一点至关重要——在频道中,只有管理员可以发送消息,而且管理员机器人之间才能看到彼此的消息。
如果用户走的是路径 A(创建者):
操作步骤:
- 打开你在步骤 1A 创建的频道。
- 点击顶部频道名称进入频道设置。
- 进入管理员 → 添加管理员。
- 搜索你的 OpenClaw 机器人用户名,添加为管理员。
- 至少授予发送消息权限。
- 对朋友的 OpenClaw 机器人重复同样的操作(让朋友告诉你他的机器人用户名,然后你来添加)。
如果用户走的是路径 B(加入者):
你的机器人应该已经在步骤 1B 中被朋友添加为管理员了。让用户检查频道的管理员列表,确认自己的机器人在里面。如果不在,提醒朋友完成这一步。
为什么必须是管理员? 在 Telegram 频道中,只有管理员才能发消息。更重要的是,频道中的管理员机器人才能看到其他管理员机器人的消息——这是实现跨机器人对话的关键机制。
确认:"两个机器人都已经添加到频道并设为管理员了吗?"
步骤 4:将频道连接到 OpenClaw
现在需要告诉 OpenClaw 这个频道的信息,让它开始监听和发送消息。
操作步骤:
- 获取频道的 Chat ID,有几种方法:
- 从频道转发任意一条消息给 @userinfobot 或 @getidsbot,它会返回频道的 Chat ID(通常是一个负数,格式类似
-100xxxxxxxxxx)。 - 或者检查 OpenClaw 的面板/设置,看是否提供了自动检测已加入频道的功能。
- 从频道转发任意一条消息给 @userinfobot 或 @getidsbot,它会返回频道的 Chat ID(通常是一个负数,格式类似
- 打开 OpenClaw 配置面板。
- 找到 Telegram 频道绑定的部分(通常在"频道"或"连接"选项下)。
- 粘贴 Chat ID 并保存。
- OpenClaw 应该会自动向频道发送一条测试消息,确认连接成功。
如果测试消息出现在 Telegram 频道中,说明连接成功。
朋友也需要做同样的操作,用自己的 OpenClaw 绑定同一个 Chat ID。
确认:"你的 OpenClaw 发送测试消息到频道了吗?朋友的 OpenClaw 也连接成功了吗?"
步骤 5:设置频道规则以实现更好的互动
没有规则的话,两个机器人在同一个频道中可能会产生循环(机器人 A 回复机器人 B,触发机器人 B 回复机器人 A,无限循环下去)。频道规则可以定义机器人的行为方式。
配置规则之前:收集机器人名字
首先,让用户列出频道中所有机器人的名字。例如:
- "你的 OpenClaw 叫什么名字?你朋友的呢?频道里还有其他机器人吗?"
记录每个机器人的名字。这些名字会用在下面的规则中,确保用户和朋友对每个机器人的称呼达成一致。
引导用户在 OpenClaw 设置中配置以下规则:
推荐设置的规则:
1. 消息格式:名字前缀(必须)
- 机器人发送的每条消息必须以自己的名字加冒号开头,例如
小明:或Aria:。 - 这对可读性至关重要——在有多个机器人的频道中,没有其他可靠的方式来区分谁在说话。
- 例如:如果机器人叫"小爪",它的消息应该始终这样发送:
小爪:今天天气真不错,你们觉得呢? - 同时需要告诉机器人频道中其他机器人的名字和前缀格式,这样它才能识别谁在说话。
2. 回复触发控制
- 定义机器人什么时候应该回复:例如只在被点名时回复、按冷却时间回复、或者当消息包含特定关键词时回复。
- 避免设置机器人对每条消息都回复——这是导致无限循环的首要原因。
3. 冷却时间 / 频率限制
- 设置回复的最小间隔(例如两次回复之间至少间隔 30 秒)。
- 防止机器人之间快速来回对话导致频道被刷屏。
4. 对话上下文感知
- 如果 OpenClaw 支持的话,启用上下文窗口功能,让机器人读取最近的 N 条消息来保持对话连贯,而不是把每条消息当作独立的内容处理。
5. 身份识别
- 配置机器人知道自己的名字,并能识别频道中所有其他机器人的名字。
- 这样可以实现更自然的对话("嘿 [其他机器人],你觉得怎么样?"),而不是泛泛的回复。
6. 话题或人设指引(可选但有趣)
- 给每个机器人设定不同的个性、兴趣领域或对话风格,让互动更有趣、更少重复。
- 例如:一个机器人好奇心强、爱提问,另一个更善于分析、给出详细回答。
规则配置示例(根据 OpenClaw 的实际设置格式调整):
频道规则:
- 每条消息必须以你的名字加冒号开头。格式:"你的名字:消息内容"。绝对不要省略前缀。
- 频道中的机器人有:[机器人 A 名字]、[机器人 B 名字]、[机器人 C 名字(如有)]。当你看到以他们的名字加冒号开头的消息,就是他们在说话。
- 只在被点名或者超过 2 分钟没人回复时才回复。
- 两次回复之间至少间隔 30 秒。
- 读取最近 10 条消息作为上下文。
- 你的名字是 [机器人名字]。
- 保持友好和有趣的对话风格。不要重复其他机器人刚说过的话。
将规则保存到 AGENTS.md(关键步骤)
频道规则只存在于当前会话中。如果用户在 OpenClaw 中执行 /new 开启新会话,这些规则就会丢失,机器人会恢复到没有规则的状态。
必须提醒用户:将频道规则写入 OpenClaw 的 AGENTS.md 文件中。 这样规则会被持久化保存,每次新会话都会自动加载。
操作步骤:
- 打开 OpenClaw 的配置目录,找到
AGENTS.md文件(如果没有就新建一个)。 - 将上面配置好的频道规则完整写入
AGENTS.md。 - 保存文件。
建议写入 AGENTS.md 的格式:
# Telegram 频道规则
## 频道信息
- 频道名称:[频道名称]
- 频道 ID:[频道 Chat ID]
## 频道中的机器人
- [机器人 A 名字](我的)
- [机器人 B 名字](朋友的)
## 互动规则
- 每条消息必须以你的名字加冒号开头。格式:"你的名字:消息内容"。绝对不要省略前缀。
- 频道中的机器人有:[机器人 A 名字]、[机器人 B 名字]。当你看到以他们的名字加冒号开头的消息,就是他们在说话。
- 只在被点名或者超过 2 分钟没人回复时才回复。
- 两次回复之间至少间隔 30 秒。
- 读取最近 10 条消息作为上下文。
- 你的名字是 [机器人名字]。
- 保持友好和有趣的对话风格。不要重复其他机器人刚说过的话。
为什么是 AGENTS.md? OpenClaw 会在每次新会话启动时读取
AGENTS.md的内容,作为机器人的行为指引。如果规则没有写入这个文件,执行/new后机器人就会"失忆"——不再加名字前缀,也不再遵守互动规则。这一步不能跳过。
重要提醒: 朋友也需要在自己的 OpenClaw 的 AGENTS.md 中写入相同的规则(把名字改成自己的机器人名字)。
确认:"规则已经写入 AGENTS.md 了吗?你朋友那边也写了吗?试着在频道发条消息,看看机器人是不是带着名字前缀回复的。"
故障排查
如果用户在任何步骤遇到问题,以下是常见问题:
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 机器人看不到消息 | 隐私模式仍然开启 | 重做步骤 2 |
| 机器人无法发送消息 | 没有设为频道管理员 | 重做步骤 3 |
| 没有收到测试消息 | Chat ID 错误 | 重新检查步骤 4 中的 Chat ID |
| 消息无限循环 | 没有设置冷却时间或触发规则 | 配置步骤 5 中的规则 |
机器人只响应 / 命令 | 隐私模式仍然开启 | 重做步骤 2 |
| 机器人 A 看不到机器人 B 的消息 | 机器人 B 不是管理员 | 确保两个机器人都是频道管理员(步骤 3) |
| 一个机器人正常,另一个不行 | 朋友没有完成所有步骤 | 引导朋友完成步骤 2-5 |
/new 后规则丢失 | 规则没有保存到 AGENTS.md | 重做步骤 5 中"将规则保存到 AGENTS.md"的部分 |
对话风格
保持耐心,一步一步来。很多用户并不是技术高手——他们只是想设置一个有趣的社交功能。使用通俗易懂的语言,每一步都确认完成情况,遇到小成功时可以庆祝一下("不错,你的机器人在频道里说话了——成功了!")。如果用户看起来很有经验,可以加快节奏,省略详细解释。