Clawbot 轻松搭建AI助手微信多平台接入
本文提供了一套完整的Molbot(原Clawdbot)部署与接入教程,涵盖Telegram、飞书、微信(优先企业微信)等平台。核心思路是通过桥接服务将消息平台与Molbot网关连接,支持OpenAI兼容接口或Webhook方式交互。部署可选择直接安装或Docker容器方式,并详细说明了各平台的接入流程:Telegram原生支持最便捷;飞书推荐长连接方案避免公网回调;微信建议使用企业微信群机器人We

核心思路是:
-
Telegram:原生支持(最省事)
-
**飞书 / 微信:用“桥接服务(bridge)”**把消息平台 ↔ Moltbot Gateway 串起来
-
Moltbot 侧用它自带的 OpenAI 兼容 HTTP 或 Webhook hooks 来“喂消息、取回复”
-
平台侧用官方 SDK / 回调能力接收消息并发回
-
0. 你要准备什么
必备
-
一台能 7x24 跑的机器:本地常开 / NAS / 小主机 / VPS 都行
-
Node.js ≥ 22(直装方式)或 Docker(容器方式)
-
Moltbot 本体(CLI + Gateway)
渠道侧账号
-
Telegram:一个 Telegram 账号 + @BotFather 创建 bot token
-
飞书:企业/组织账号(能创建应用)
-
微信:强烈建议走企业微信(WeCom),个人微信“非官方方案”容易封号/不稳定(后面会给安全落地方案:群机器人推送 + 自建应用回调)
(1) 部署 Moltbot(两种方式任选)
方案 A:直装(最快,适合本地/自建服务器)
1. 安装
npm install -g moltbot@latest
官方推荐用向导:
moltbot onboard --install-daemon
它会把 Gateway 作为后台服务常驻(macOS launchd / Linux systemd user service 等)。
2. 启动 & 打开控制台
moltbot gateway --port 18789 --verbose
浏览器打开控制台(Control UI):http://127.0.0.1:18789/
方案 B:Docker(更易隔离,更利于安全)
官方给了一键脚本(推荐):
1. 拉源码并一键跑
git clone https://github.com/moltbot/moltbot.git cd moltbot ./docker-setup.sh
这个脚本会:build 镜像、跑 onboarding、起 compose、生成 gateway token 并写入 .env。跑完后同样打开:http://127.0.0.1:18789/ 并把 token 粘贴进 Control UI。
2. 手动 compose(你想更可控时)
docker build -t moltbot:local -f Dockerfile . docker compose run --rm moltbot-cli onboard docker compose up -d moltbot-gateway
(2) 让 Moltbot “可被桥接调用”(关键)
为了接入飞书/微信,你需要让 Moltbot Gateway 提供一个HTTP 接口,桥接服务才能把“外部消息”发进来并拿到回复。
2.1 开启 OpenAI 兼容接口(推荐)
Moltbot Gateway 可以提供 POST /v1/chat/completions,默认关闭,需要在配置里开启:
{
"gateway": {
"http": {
"endpoints": {
"chatCompletions": {
"enabled": true
}
}
},
"auth": {
"mode": "token",
"token": "CHANGE_ME_LONG_RANDOM"
}
}
}
调用时带:
-
Authorization: Bearer <token> -
选择 agent:把
model写成moltbot:<agentId>(如moltbot:main)
2.2 (可选)开启 Moltbot 的 hooks(用于触发型自动化)
如果你还想用飞书/企微 webhook 触发“执行某个任务”,可以开 hooks:
{
"hooks": {
"enabled": true,
"token": "HOOK_SECRET",
"path": "/hooks"
}
}
(3) 接入 Telegram(原生渠道,最省事)
3.1 创建 Bot
Telegram 搜索 @BotFather → /newbot → 拿到 token
3.2 配置 token(两种方式)
方式 A:环境变量
export TELEGRAM_BOT_TOKEN="123:abc"
方式 B:配置文件(更推荐)
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123:abc",
"dmPolicy": "pairing"
}
}
}
3.3 安全默认:DM 配对(强烈保留)
Telegram 默认 dmPolicy=pairing:陌生人先拿配对码,管理员审批后才放行。
(4) 接入飞书(两种落地路径)
飞书机器人分两类:
-
自定义机器人(Webhook):更像“消息推送器”(群里加一个机器人,用 webhook POST 推消息)
-
应用机器人(App Bot):能收消息、做交互,需要事件订阅(支持长连接或 webhook 回调)
你要“聊天式接入”,用 应用机器人。
4.1 飞书聊天式接入(推荐:长连接,不用公网回调)
飞书事件订阅支持:开发者服务器回调(Webhook) 和 长连接两种方式。长连接能省掉公网、证书、签名验签的很多坑。
步骤 1:创建飞书自建应用 + 开启机器人能力
(在飞书开放平台后台创建应用,启用 Bot 能力、读取消息权限等。具体权限项以后台提示为准。)
步骤 2:配置事件订阅为“长连接”
关键事件:接收消息(一般是 im.message.receive_v1)。
步骤 3:写一个“桥接服务”把飞书消息 ↔ Moltbot 串起来
用官方 Node SDK(npm 包:@larksuiteoapi/node-sdk)
示例:Node.js 桥接(可直接改造用)
说明:这段代码做三件事
长连接收飞书消息
调 Moltbot
/v1/chat/completions拿回复用飞书 API 回发消息
// bridge-feishu-moltbot.js
import * as lark from "@larksuiteoapi/node-sdk";
import fetch from "node-fetch";
const FEISHU_APP_ID = process.env.FEISHU_APP_ID;
const FEISHU_APP_SECRET = process.env.FEISHU_APP_SECRET;
const MOLT_GATEWAY = process.env.MOLT_GATEWAY ?? "http://127.0.0.1:18789";
const MOLT_TOKEN = process.env.MOLT_TOKEN; // gateway.auth.token
const MOLT_AGENT = process.env.MOLT_AGENT ?? "main"; // moltbot:<agentId>
const client = new lark.Client({
appId: FEISHU_APP_ID,
appSecret: FEISHU_APP_SECRET,
appType: lark.AppType.SelfBuild,
domain: lark.Domain.Feishu,
});
async function askMoltbot(text) {
const resp = await fetch(`${MOLT_GATEWAY}/v1/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${MOLT_TOKEN}`,
},
body: JSON.stringify({
model: `moltbot:${MOLT_AGENT}`,
messages: [{ role: "user", content: text }],
stream: false,
}),
});
if (!resp.ok) throw new Error(`Moltbot HTTP ${resp.status}`);
const data = await resp.json();
return data?.choices?.[0]?.message?.content ?? "(empty)";
}
// 事件处理(示意:以“收到消息事件”为入口)
// 你在飞书后台勾选的事件不同,payload 结构会有差异:建议先 console.log(event) 看真实字段
client.wsClient.start({
eventDispatcher: async (event) => {
// TODO: 过滤掉 bot 自己发的消息,避免自回声死循环
const text = event?.event?.message?.content?.text;
const chatId = event?.event?.message?.chat_id;
if (!text || !chatId) return;
const answer = await askMoltbot(text);
// 发送回飞书(这里用“发送消息到会话”的 API;SDK 具体方法名可能随版本变化)
await client.im.message.create({
params: { receive_id_type: "chat_id" },
data: {
receive_id: chatId,
msg_type: "text",
content: JSON.stringify({ text: answer }),
},
});
},
});
这类长连接接入属于飞书官方推荐能力:通过 SDK 建 WebSocket 全双工通道来收事件。
4.2 飞书“只推送”接入(最简单,适合告警/通知)
如果你只想把 Moltbot 产生的结果推到飞书群,用自定义机器人 Webhook即可(无需事件订阅)。
(5) 接入微信(建议企业微信 WeCom,给你两种落地)
5.1 最快:企业微信群机器人 Webhook(只推送)
企业微信群机器人可以在群里生成一个 webhook 地址,往这个地址 POST 就能发消息。获取 webhook 的步骤在腾讯云文档里有清晰图文。
发送示例(文本)
curl -X POST 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"msgtype":"text","text":{"content":"Hello from Moltbot"}}'
适合:告警、日报、任务完成通知。
不适合:你要在微信里“对话式聊天”。
5.2 聊天式:企业微信自建应用 + 回调(能收消息再回复)
企业微信“接收消息/回调配置”一般需要你在后台填 URL + Token + EncodingAESKey,并实现回调 URL 验证与消息解密。
关键点(别踩坑)
-
后台保存回调配置时,会先发 GET 验证请求(带
msg_signature/timestamp/nonce/echostr),你必须解密 echostr 并原样返回 -
实际收消息是 POST,需要解密 XML/JSON(取决于企业微信推送格式)
-
解密/验签建议直接用实现了 WXBizMsgCrypt 的库(Node 可用
wxcrypt,它就是 Node 版 WXBizMsgCrypt)
桥接逻辑(标准做法)
-
企业微信回调 → 你的 bridge 服务(验签/解密)
-
bridge 把用户文本发给 Moltbot
/v1/chat/completions -
bridge 把回复再加密 → 回包给企业微信(或调用“发送消息 API”主动推送)
这部分因为你企业微信后台配置、数据格式、加密模式(明文/兼容/安全)会影响实现细节,我建议你先按上面“飞书 bridge”的模式把骨架跑通,然后我可以基于你抓到的真实回调报文把 WeCom 的验签/解密/回包写成可直接部署的版本。
(6) 安全加固清单(照抄执行)
这是你把 bot 接到真实 IM 里时最容易翻车的地方。下面这份清单按 Moltbot 官方安全指南的优先级整理:
6.1 立刻做(10 分钟内)
-
跑安全审计(官方命令)
moltbot security audit moltbot security audit --deep它会检查 Gateway 暴露、浏览器控制、权限、日志脱敏等,并可
--fix自动加护栏。 -
启用 Gateway 认证(token 或 password),不要裸奔
官方强调:Gateway 默认 fail-closed,没配就拒绝连接;你仍然应该显式设置强 token。 -
DM 保持 pairing / allowlist(Telegram 默认就是 pairing)
6.2 网络面(非常关键)
-
Gateway 只绑定本机(127.0.0.1) 或 tailnet;不要直接暴露公网
-
你若必须走反向代理(nginx/Caddy),配置
gateway.trustedProxies,避免“伪装 localhost 绕过信任”的漏洞 -
使用 Tailscale Serve/Funnel 时,理解其身份头与信任链;不懂就先别上公网
6.3 工具权限(最容易被 prompt injection 利用)
-
默认用 Docker / Sandbox 跑高风险工具(shell、浏览器自动化等)
-
不要给全盘读写:workspace 只挂必要目录(Docker 模式可用
CLAWDBOT_EXTRA_MOUNTS精准挂载) -
如果你不需要远程执行,禁止/移除节点执行能力(
system.run本质是远程代码执行)
6.4 凭证与日志
-
配置/凭证文件权限收紧(审计
--fix会做一部分) -
日志脱敏别关(
logging.redactSensitive等项,审计会提示) -
一旦怀疑泄露:立刻旋转 gateway token + 平台 token + 模型 key,再复盘会话日志
(7) 按这个顺序做,就能最快跑通
-
✅ 用 Telegram 原生接入跑通(确认 Moltbot 能稳定回复)
-
✅ 开启
/v1/chat/completions,用 curl 本地打通(确认桥接可调) -
✅ 上飞书:先做长连接 bridge(不用公网)
-
✅ 上微信:先做企业微信群 webhook 推送(简单稳定)
-
🔒 全面安全加固:
moltbot security audit --deep+ 最小权限 + 不上公网
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)