1. 安装 Moltbot
如果你看过文档,你就会发现一个奇怪的地方,同样是 WSL 的教程,文档中有一个地方告诉你使用 curl -fsSL https://molt.bot/install.sh | bash 的方式安装,又有一个地方告诉你使用克隆仓库再构建的方式安装。经过我的测试,建议直接使用第二种方式进行安装,因为第一种方式运行后,Web UI 会莫名其妙的报 no reason 的错误。
git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install
pnpm ui:build # auto-installs UI deps on first run
pnpm build
moltbot onboard
当你运行完 pnpm build 并准备进行下一步的时候,你会碰到一个非常抽象的问题,那就是 moltbot openclaw 命令居然不存在?
这里我猜测是因为,moltbot openclaw 对文档进行一键替换,直接把 clawdbot 全局替换成了 moltbot openclaw,但是其实并没有修改命令,因此安装完之后,命令仍然是 clawdbot。
因此有两种选择,第一种是直接后续都使用 clawdbot,第二种是在仓库目录里运行 pnpm link --global,这样就可以使用 moltbot openclaw 命令了。
接下来的 onboard 可以根据自己需求先进行设置一下,后面可以再改。
2. 配置 GLM-4.7 模型
参考下面的代码按需修改 ~/.moltbot/moltbot.json
我用的是 GLM Coding Plan ,所以 baseurl 是按照 Coding Plan 配置的,要注意自身情况结合修改。
{
"models": {
"providers": {
"GLM": {
"baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4",
"apiKey": "<your-api-key>",
"api": "openai-completions",
"models": [
{
"id": "GLM-4.7",
"name": "GLM-4.7"
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "GLM/GLM-4.7"
},
"models": {
"GLM/GLM-4.7": {
"alias": "GLM"
}
}
}
}
}
在 WebUI 界面试一下 chat 正不正常,正常的话就可以下一步了。
3. 配置流量转发让 Telegram Bot 正常运作
3.1 测试代理是否能连通
如果主机在国内的话,并且 WSL 是 NAT 模式的话,应用就无法和 Telegram 建立连接,并且通过 export https_proxy的方式也没办法让这个模块通过代理和 Telegram 进行通信,因此我使用 dae 作为流量转发方案。
在配置 dae 之前,你需要知道代理地址是什么,如果你使用的是 clash verge 的话,你可以在 设置-Clash设置-局域网连接 查看 vEthernet (WSL (Hyper-V firewall)) 的 IP地址,然后在 wsl export https_proxy=socks5://<url:port> 再 curl 一下 google.com,如果发现没有成功过代理的话,还要设置一下 Windows 防火墙,放行 wsl 到 Windows 的流量。
具体步骤如下,可以按需修改:
- 在 Windows 打开 高级安全 Windows Defender 安全防火墙,
- 点击入站规则
- 上方菜单栏的操作
- 新建规则
- 自定义-所有程序
- 协议类型:任何
- 作用域:远程IP地址-下列 IP 地址-添加wsl的地址
- 全都下一步
这里再测试一下,应该就正常了。
3.2 安装并配置 dae
dae 强依赖 eBPF 和 BTF ,wsl 可能没有挂载 bpf,这样就会导致 dae 运行失败,因此先用下面命令确保 bpf 是挂载的。
# 检查是否已挂载
mount | grep bpf
# 如果没有输出,执行挂载:
sudo mount -t bpf bpffs /sys/fs/bpf
接下来就可以开始安装 dae 了,在 dae 的 Release 选择适合自己系统的安装包进行安装。
这个时候可能会发现启动 dae 服务失败了,这是因为 dae 没有创建默认的配置,所以会导致启动服务失败。
参考下面的配置结合自身情况修改 /etc/dae/config.json,必须要用实际值替换掉所有用<>包裹的值
global {
wan_interface: eth0
log_level: info
allow_insecure: false
auto_config_kernel_parameter: true
}
node {
my_clash: 'socks5://<url>:<port>'
}
group {
proxy {
filter: name(my_clash)
policy: min_moving_avg
}
}
routing {
dport(<port>) -> direct
ip(geoip:private) -> direct
fallback: proxy
}
在重启服务前,要调整一下配置文件的权限,这里推荐用0600权限: sudo chmod 600 /etc/dae/config.json,配置完之后再重启 dae 服务: sudo systemctl restart dae,应该就一切就绪了。
另外,附上我用 qwen-mt-plus 翻译的 clawd 文档: GitHub - Xy2002/openclaw-docs-zh: openclaw 的非官方中文文档,由 Qwen-mt-plus 翻译