先说个最容易踩坑的地方——在Telegram上创建OpenClaw机器人,如果BotFather这一步搞错了,后面所有配置都白搭。尤其是用户名格式,Telegram API强制要求以 _bot 结尾且只能用小写字母、数字和下划线,这不是OpenClaw自己定的规矩,而是Telegram底层的硬性约定。一旦写错,Token校验直接不通过,gateway启动也收不到消息。

好在整套流程并不复杂,只不过两个字段的填写规则相差很大。下面拆开来讲清楚。
机器人名称(Name)怎么填
第一步:在BotFather输入 /newbot 后,它会问“What is your bot’s name?”。
这一步填的是显示名,纯粹用于界面展示,系统压根不拿它做识别。
你可以放肆一点:中文、空格、emoji、英文字母大小写、数字全都能往里塞。比如“OpenClaw 办公助手 ?”、“小虾米AI助理”、“ClawDBot-测试版”。BotFather对格式零检查,但建议控制在64字符以内,不然Telegram客户端会把尾巴截断。
需要留意的是:名称不区分大小写,对API调用没有任何影响,就是个视觉标识。
机器人用户名(Username)命名强制要求
第二步:BotFather紧接着问“What is your bot’s username?”。
这里就严格了——必须以 _bot 结尾,而且全程只能用小写字母、数字和下划线。空格、中文、连字符、点号、大写字母,统统不行。
正确示范:openclaw_assistant_bot、clawdbot2026_bot、dtclaw_qqsync_bot。
错误示范:OpenClawBot(大写字母)、claw-bot(连字符)、clawbot.(点号)、clawbot(缺后缀)——BotFather会直接甩一句“Sorry, this username is invalid.”,一点商量余地都没有。
更扎心的是:用户名一旦设置就改不了,而且全局唯一。如果被别人抢先注册了,你只能换一个重试。
为什么必须加 _bot 后缀
这其实是Telegram平台的一个硬性约定——所有机器人的用户名必须以 _bot 或 __bot 结尾(后者极少用),这是其API路由识别机制的设计。OpenClaw在解析Token时,会反向校验这个用户名是否合规。如果格式不对,openclaw config set channels.telegram.botToken 这条命令就会默默失败,不会报错、不给提示,但gateway启动后就是收不到消息。
经验表明,很多人卡在这一步是因为没理解这是Telegram底层协议要求,不是OpenClaw自定规则。试图绕过限制——比如伪造Token或手动构造URL——结果只会换来401 Unauthorized错误,而且没有任何调试日志可查。所以,老老实实按规范来,是最省事的路。
