2 min read

解决 Moltbot(Clawdbot) 在国内 Telegram 网络连接问题

最近在用 Clawdbot 的时候遇到了一个挺让人头疼的问题,跟大家分享一下怎么解决的。

事情是这样的,我重启了 gateway 之后,日志里一直报这么个错误:

[telegram] telegram setMyCommands failed: HttpError: Network request for 'setMyCommands' failed!

一开始我还以为是我搞坏了什么配置,翻来覆去检查了好几遍,后面才反应过来——这不就是网络问题嘛!

大家都知道,Telegram 在国内是被墙的,直接访问肯定是不行的。Clawdbot 默认配置里也没有设置代理,所以它尝试去调用 Telegram API 的时候自然就挂了。

解决办法其实很简单,就是给 Telegram 通道配置一个代理。我这边用的是本地的代理,端口是 8001,具体配置步骤如下:

首先打开配置文件:

vi ~/.clawdbot/clawdbot.

然后在 channels.telegram 部分加上 proxy 配置:

"channels": {
  "telegram": {
    "enabled": true,
    "dmPolicy": "pairing",
    "botToken": "你的token",
    "groupPolicy": "allowlist",
    "streamMode": "partial",
    "proxy": "http://127.0.0.1:8001"
  }
}

注意这里的 proxy 地址要根据你自己的实际情况来改,如果你用的是别的代理软件,端口可能不是 8001,换成你实际的代理地址就行。

配置完成后重启一下 gateway,问题就解决了!再也没有看到那个烦人的报错信息。

其实这个问题挺常见的,只是文档里没特别说明,所以第一次遇到的时候可能会摸不着头脑。希望这篇小分享能帮到遇到同样问题的小伙伴。

对了,如果你的代理不是 http 协议,比如是 socks5,格式也可以调整,Clawdbot 是支持的,具体要看你代理软件的配置。

就这样,简单记录一下这次踩坑的经历!