首页 教程 分类 Skills下载 关于
ZH EN JA KO
频道对接

OpenClaw Telegram群组与频道高级配置

· 9 分钟

Telegram是OpenClaw原生支持的频道之一,底层使用grammY框架。Telegram的群组和频道功能非常强大,拥有原生的Bot API、精细的权限控制和丰富的消息格式。本文将深入介绍OpenClaw在Telegram群组场景下的高级配置选项。

Telegram群组类型

Telegram有几种不同的群组类型,了解它们的区别有助于合理配置Bot:

普通群组:最多200人的小型群组。Bot在其中可以接收所有消息(如果关闭了Privacy Mode)或只接收命令和@提及的消息。

超级群组(Supergroup):最多200,000人的大型群组,支持更多管理功能。这是大多数社区使用的群组类型。

频道(Channel):单向广播频道,Bot可以作为管理员发布消息,但通常不会用于交互式AI对话。

Privacy Mode与消息接收

Telegram Bot默认开启Privacy Mode,这意味着在群组中Bot只能收到以下消息:以 / 开头的命令、直接@提及Bot的消息、Bot发送的消息的回复,以及服务消息(如成员加入/退出)。

如果你希望Bot能接收群组中的所有消息,需要在BotFather中关闭Privacy Mode。发送 /setprivacy 命令并选择你的Bot,然后设为Disabled。注意修改后需要将Bot移出群组再重新添加才能生效。

openclaw.json 中配置群组行为:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "your-bot-token",
      "groups": {
        "privacyMode": false,
        "triggerMode": "command_and_mention",
        "commands": ["/ask", "/chat", "/help"]
      }
    }
  }
}

命令系统

Telegram的命令系统是与Bot交互的标准方式。OpenClaw允许你定义多个命令,每个命令可以绑定不同的行为:

{
  "channels": {
    "telegram": {
      "groups": {
        "commands": {
          "/ask": {
            "description": "向AI提问",
            "behavior": "single_response"
          },
          "/chat": {
            "description": "开始多轮对话",
            "behavior": "conversation"
          },
          "/reset": {
            "description": "重置对话上下文",
            "behavior": "reset_context"
          }
        }
      }
    }
  }
}

single_response 模式下Bot只回复一次,conversation 模式下Bot会持续跟踪该用户的后续消息(直到超时或手动重置)。建议在BotFather中使用 /setcommands 注册这些命令,这样用户在输入 / 时可以看到命令列表和描述。

群组权限控制

OpenClaw提供多层次的Telegram群组权限控制:

{
  "channels": {
    "telegram": {
      "groups": {
        "allowedGroups": [-1001234567890, -1009876543210],
        "userAllowlist": [123456789, 987654321],
        "adminOnly": false,
        "requirePairing": false
      }
    }
  }
}

群组白名单(allowedGroups):使用Telegram群组的chat_id来限制Bot只在特定群组中工作。Chat ID是负数,可以通过让Bot接收一条群消息来获取。

用户白名单(userAllowlist):限制特定用户ID才能在群组中触发AI。其他用户的消息会被忽略。

仅管理员(adminOnly):设为true时,只有群组管理员可以使用AI功能。

私信配对(requirePairing):要求用户先通过私聊与Bot完成配对验证。

这些选项可以组合使用。例如,你可以设置只有特定群组中已配对的用户才能使用Bot。

内联模式

Telegram Bot支持内联模式(Inline Mode),用户可以在任何聊天中通过 @botname 问题 的方式调用AI,无需将Bot添加到群组中。在BotFather中启用内联模式后,在OpenClaw中配置:

{
  "channels": {
    "telegram": {
      "inlineMode": {
        "enabled": true,
        "cacheTime": 30
      }
    }
  }
}

内联模式的回复会以内联查询结果的形式呈现,用户选择后会将结果发送到当前对话中。

多机器人管理

在大型社区中,你可能需要部署多个AI Bot,每个承担不同的角色。OpenClaw支持在同一实例中运行多个Telegram Bot:

{
  "channels": {
    "telegram": [
      {
        "name": "general-assistant",
        "token": "bot-token-1",
        "model": "gpt-4"
      },
      {
        "name": "code-helper",
        "token": "bot-token-2",
        "model": "claude-sonnet"
      }
    ]
  }
}

每个Bot使用不同的token和模型配置,可以在同一个群组中共存。用户通过@不同的Bot来调用不同的AI助手。

消息格式与Markdown

Telegram支持MarkdownV2和HTML两种消息格式。OpenClaw默认使用MarkdownV2来格式化AI回复,支持粗体、斜体、代码块、链接等。如果AI回复中包含复杂的格式,OpenClaw会自动处理转义字符以确保Telegram正确渲染。

你可以通过配置切换为HTML格式或纯文本:

{
  "channels": {
    "telegram": {
      "parseMode": "MarkdownV2"
    }
  }
}

速率限制与队列

Telegram Bot API有速率限制:每秒最多30条消息,同一群组每分钟最多20条消息。OpenClaw内置了消息队列机制来处理这些限制。在高流量群组中,回复可能会有短暂延迟,这是正常的。

故障排查

如果Bot在群组中无法响应,按以下步骤排查:确认Bot已被添加到群组中;检查Privacy Mode设置是否与触发模式匹配;验证群组ID是否在白名单中(如果配置了白名单);查看OpenClaw日志中是否有错误信息。使用 openclaw channels status 命令可以快速查看所有频道的连接状态。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入