OpenClaw Telegram 渠道
通过 grammY Bot API 框架将 OpenClaw 连接到 Telegram。使用 @BotFather 创建 Telegram 机器人,获取 token,几分钟内就能让 AI 助手在 Telegram 上运行。默认使用长轮询模式,可选 Webhook 模式。这是最容易设置的渠道之一,支持内联按钮、贴纸、表情回应和群聊等丰富功能。
Telegram 支持的功能
文本消息
支持
媒体与文件
支持
消息反应
支持
消息线程
支持
语音消息
支持
群聊
支持
Telegram 前置条件
- 一个 Telegram 账号
- 通过 @BotFather 获取的 Bot Token(向 @BotFather 发送 /newbot)
- OpenClaw Gateway 已运行并配置
- 服务器安装 Node.js 18+
Telegram 快速设置
通过 @BotFather 创建机器人
打开 Telegram,搜索 @BotFather,发送 /newbot。按提示为机器人命名并获取 API token。妥善保存此 token——配置时需要用到。
添加 Telegram 渠道配置
在 ~/.openclaw/openclaw.json 中添加 Telegram 渠道配置。将 @BotFather 提供的 bot token 粘贴到 botToken 字段。设置 dmPolicy(pairing、allowlist 或 open)来控制谁可以与你的 AI 助手对话。
启动 Gateway 并测试
启动 Gateway 进程。在 Telegram 中搜索你的机器人并发送消息。如果使用默认的 pairing 策略,通过 'openclaw pairing approve telegram <code>' 审批发送者。OpenClaw 应通过 AI 助手自动回复。
Telegram 配置示例
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "YOUR_BOT_TOKEN_FROM_BOTFATHER",
"dmPolicy": "pairing"
}
}
}Telegram 深入了解
架构概述
通过 @BotFather 创建机器人
私聊策略
{
"channels": {
"telegram": {
"dmPolicy": "pairing",
"allowFrom": [123456789, 987654321]
}
}
}群聊管理
{
"channels": {
"telegram": {
"groupPolicy": "open",
"requireMention": false,
"groups": ["-1001234567890"]
}
}
}消息格式与流式传输
{
"channels": {
"telegram": {
"streamMode": "partial",
"chunkMode": "newline"
}
}
}内联按钮
{
"channels": {
"telegram": {
"capabilities": {
"inlineButtons": "all"
}
}
}
}贴纸与媒体
表情回应
{
"channels": {
"telegram": {
"reactionNotifications": "own",
"reactionLevel": "ack"
}
}
}命令与工具
Webhook 模式
{
"channels": {
"telegram": {
"webhookUrl": "https://your-domain.com/telegram/webhook",
"webhookSecret": "your-random-secret-string"
}
}
}Telegram 配置参考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 启用或禁用 Telegram 渠道 |
| botToken | string | "" | 来自 @BotFather 的 Telegram Bot API token。也可使用 TELEGRAM_BOT_TOKEN 环境变量 |
| dmPolicy | string | "pairing" | 控制谁可以私聊机器人。选项:pairing、allowlist、open、disabled |
| allowFrom | number[] | [] | 允许与机器人对话的 Telegram 数字用户 ID(当 dmPolicy 为 allowlist 时) |
| groupPolicy | string | "allowlist" | 群聊策略。选项:disabled、open、allowlist |
| groups | string[] | [] | 允许的群聊 ID 列表。为空且 groupPolicy 非 disabled 时允许所有群组 |
| requireMention | boolean | true | 机器人在群组中是否需要 @提及 才回复 |
| streamMode | string | "partial" | AI 回复的流式模式。选项:partial(逐步更新)、block(分块发送)、off(禁用) |
| chunkMode | string | "split" | 长回复的处理方式。选项:split(硬字符限制)、newline(按段落分割) |
| webhookUrl | string | "" | Webhook 模式的 HTTPS URL。设置后从轮询切换为 Webhook |
| webhookSecret | string | "" | Webhook 验证的密钥 token |
| reactionNotifications | string | "off" | 哪些回应触发通知。选项:off、own、all |
| reactionLevel | string | "ack" | 机器人的回应能力。选项:off、ack、minimal、extensive |
| capabilities.inlineButtons | string | "off" | 内联按钮模式。选项:off、dm、group、all、allowlist |
| configWrites | boolean | true | 超级群组升级时自动迁移聊天 ID。设为 false 可禁用 |
| mediaCap | number | 5 | 媒体文件上传和下载的最大大小(MB) |
| historyLimit | number | 50 | 每个用户/群组会话保留的最大历史消息数 |
| retryPolicy | object | { "maxRetries": 3, "backoff": "exponential" } | API 调用失败时的重试策略,支持指数退避 |
| proxyUrl | string | "" | Telegram API 调用的代理 URL。适用于网络受限环境 |
| forceIPv4 | boolean | false | 强制 api.telegram.org 使用 IPv4 解析。当 IPv6 出口导致静默失败时启用 |
启用或禁用 Telegram 渠道
来自 @BotFather 的 Telegram Bot API token。也可使用 TELEGRAM_BOT_TOKEN 环境变量
控制谁可以私聊机器人。选项:pairing、allowlist、open、disabled
允许与机器人对话的 Telegram 数字用户 ID(当 dmPolicy 为 allowlist 时)
群聊策略。选项:disabled、open、allowlist
允许的群聊 ID 列表。为空且 groupPolicy 非 disabled 时允许所有群组
机器人在群组中是否需要 @提及 才回复
AI 回复的流式模式。选项:partial(逐步更新)、block(分块发送)、off(禁用)
长回复的处理方式。选项:split(硬字符限制)、newline(按段落分割)
Webhook 模式的 HTTPS URL。设置后从轮询切换为 Webhook
Webhook 验证的密钥 token
哪些回应触发通知。选项:off、own、all
机器人的回应能力。选项:off、ack、minimal、extensive
内联按钮模式。选项:off、dm、group、all、allowlist
超级群组升级时自动迁移聊天 ID。设为 false 可禁用
媒体文件上传和下载的最大大小(MB)
每个用户/群组会话保留的最大历史消息数
API 调用失败时的重试策略,支持指数退避
Telegram API 调用的代理 URL。适用于网络受限环境
强制 api.telegram.org 使用 IPv4 解析。当 IPv6 出口导致静默失败时启用
Telegram 常见问题
Telegram 故障排查
Telegram 机器人默认启用隐私模式。启用时,机器人只能接收 @提及 它的消息或以斜杠命令开头的消息。
bot token 可能不正确,Gateway 可能未运行,或存在网络连接问题。
Webhook URL 不可公开访问,SSL 证书无效,或 Webhook 未正确注册。
Telegram 有 4,000 字符的消息限制。较长的 AI 回复会被自动分块。