OpenClaw Telegram 完全配置手册:从零开始搭建你的专属 AI Bot

从零开始配置频道接入,私聊/群聊权限配置


目录

  1. 前置准备
  2. 基础配置:接入 Telegram
  3. 私聊策略(dmPolicy)
  4. 群聊策略(groupPolicy)
  5. 白名单配置(allowFrom)
  6. 消息行为配置
  7. Bot 功能开关(actions)
  8. 群组专属配置(groups)
  9. 完整配置示例
  10. 配置方式

1. 前置准备

1.1 创建 Telegram Bot

  1. 在 Telegram 中搜索 @BotFather,发送 /newbot
  2. 按提示设置 bot 名称和 username
  3. 获取 Bot Token(格式:123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
  4. 接着发送 /setprivacy → 选择你的 bot → 选 Disable(让 bot 能在群里看到所有消息)

1.2 要获取你的 Telegram 用户 ID

需要的是你的数字 ID(不是 @username),获取方式:

  • 私聊 @userinfobot,它会返回你的数字 ID
  • 或启动 OpenClaw 后看日志中 from.id 字段

2. 基础配置:接入 Telegram

openclaw.jsonchannels 中添加 telegram:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN"
    }
  }
}

这是最小配置,启动后 bot 就能收发消息了。但默认权限较宽松,建议继续配置访问控制。


3. 私聊策略(dmPolicy)

控制谁能通过 Telegram 私聊与 bot 对话。

效果适用场景
pairing首次私聊需手动审批(默认)初次部署
allowlist仅白名单用户可私聊:white_check_mark: 推荐日常使用
open任何人都能私聊公开服务型 bot
disabled完全禁用所有私聊纯群聊 bot
{
  "channels": {
    "telegram": {
      "dmPolicy": "allowlist",
      "allowFrom": ["YOUR_USER_ID"]
    }
  }
}

:warning: 注意disabled 会无视 allowFrom,即使白名单里有你自己,私聊消息也会被丢弃。如果只想限制他人私聊而不是关闭自己的,请记得使用 allowlist

pairing 模式详解

首次使用推荐 pairing,流程:

  1. 用户在 Telegram 私聊 bot
  2. OpenClaw 记录配对请求
  3. 你在命令行执行 openclaw pairing approve <request-id>
  4. 该用户被加入白名单,后续可直接对话

配对完成后可切换为 allowlist 简化后续使用。


4. 群聊策略(groupPolicy)

控制群聊中谁的消息 bot 会处理。

效果
open群内所有人的消息都处理
allowlist仅白名单用户的消息会被处理(默认)
disabled完全忽略所有群聊消息
{
  "channels": {
    "telegram": {
      "groupPolicy": "open"
    }
  }
}

:warning: 重要:groupPolicy 只接受 openallowlistdisabled 三个值,拼写错误(如 “allowList” 大写 L)会导致配置校验失败,容器无法启动。

群聊白名单

groupPolicy: "allowlist" 时,默认复用 allowFrom。如需单独控制群聊白名单:

{
  "channels": {
    "telegram": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["USER_ID_1", "USER_ID_2"]
    }
  }
}

5. 白名单配置(allowFrom)

allowFrom 是核心权限列表,同时作用于 dmPolicy=allowlistgroupPolicy=allowlist

{
  "channels": {
    "telegram": {
      "allowFrom": ["123456789", "987654321"]
    }
  }
}
  • 值为 Telegram 数字用户 ID 的字符串数组
  • 支持通配符 "*"(允许所有人,配合 open 策略使用)
  • 群聊可用 groupAllowFrom 单独覆盖

6. 消息行为配置

6.1 自动确认表情(ackReaction)

Bot 收到消息后自动点一个表情表示”已收到”。

{
  "messages": {
    "ackReaction": "👀",
    "ackReactionScope": "group-mentions"
  }
}
字段说明
ackReaction自动回应的 emoji,设为 "" 可禁用
ackReactionScope触发范围:direct(仅私聊)、group-mentions(群聊被@时)、all

:light_bulb: ackReaction 是系统层行为(无条件触发),和 AI 模型主动发起的 reaction 是两套独立机制。如果你觉得 bot 反应太频繁,先检查这个配置。设为空字符串 "" 禁用后,AI 仍可根据语境主动 react。

6.2 流式输出(streamMode)

控制 bot 回复时是否实时更新消息。

效果
partial实时流式更新,用户能看到打字过程(推荐)
full等完整回复生成后一次性发送
none不流式
{
  "channels": {
    "telegram": {
      "streamMode": "partial"
    }
  }
}

7. Bot 功能开关(actions)

控制 bot 可以执行哪些 Telegram 操作。

{
  "channels": {
    "telegram": {
      "actions": {
        "reactions": true,
        "sendMessage": true,
        "deleteMessage": true,
        "sticker": true
      }
    }
  }
}
功能说明
reactions允许 bot 给消息点表情
sendMessage允许 bot 主动发消息
deleteMessage允许 bot 删除消息
sticker允许 bot 发送/搜索贴纸

8. 群组专属配置(groups)

可以为特定群设置独立的行为规则。

{
  "channels": {
    "telegram": {
      "groups": {
        "-100XXXXXXXXXX": {
          "systemMessage": "你在一个技术讨论群里,保持专业。",
          "requireMention": true
        }
      }
    }
  }
}
字段说明
systemMessage该群专属的系统提示词
requireMention是否需要 @bot 才触发回复

群 ID 获取方式:查看 OpenClaw 日志中的 chat.id 字段,超级群通常以 -100 开头。


9. 完整配置示例

个人使用(推荐)

只有自己能私聊,群聊所有人可触发,无自动表情:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN",
      "dmPolicy": "allowlist",
      "allowFrom": ["YOUR_USER_ID"],
      "groupPolicy": "open",
      "streamMode": "partial",
      "actions": {
        "reactions": true,
        "sendMessage": true,
        "deleteMessage": true,
        "sticker": true
      }
    }
  },
  "messages": {
    "ackReaction": "",
    "ackReactionScope": "group-mentions"
  }
}

多人共用(何尝不是一种NTR呢 :rofl:

多个用户都能私聊和群聊:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN",
      "dmPolicy": "allowlist",
      "allowFrom": ["USER_ID_1", "USER_ID_2", "USER_ID_3"],
      "groupPolicy": "open",
      "streamMode": "partial"
    }
  }
}

纯群聊 Bot

不接受私聊,只在群组内工作,需要 @mention 才回复:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN",
      "dmPolicy": "disabled",
      "groupPolicy": "open",
      "groups": {
        "-100XXXXXXXXXX": {
          "requireMention": true,
          "systemMessage": "你是群聊助手,被 @ 时才回复。"
        }
      }
    }
  }
}

10. 配置方式

方式一:直接编辑文件

nano ~/.openclaw/openclaw.json
# 编辑后重启
openclaw gateway restart

方式二:CLI Patch(推荐)

Patch 会自动校验配置合法性,相对于手动编辑来说更安全:

# 修改单个字段
openclaw config patch '{"channels":{"telegram":{"dmPolicy":"allowlist"}}}'

# 修改多个字段
openclaw config patch '{"channels":{"telegram":{"dmPolicy":"allowlist","groupPolicy":"open"}}}'

# 修改后自动重启,或手动重启
openclaw gateway restart

验证配置

# 查看当前完整配置
openclaw config get

# 查看日志
openclaw logs --tail 50

个人认为最推荐的初始配置dmPolicy=allowlist + groupPolicy=open + ackReaction=""

发表评论