本文介绍了安装和配置moltbot时踩过的一些坑,并提供了Moltbot接入百炼API的方法和使用飞书与Moltbot交互的方法
安装与配置
安装整体还是比较简单的。首先安装一个node.js环境,然后执行npm i -g moltbot@beta就装好了。接着就是在终端中执行moltbot onboard命令,就会启动moltbot的配置向导。如果你刚好能看懂向导中的英文,整个配置流程不难。
踩坑
npm i -g moltbot@latest后显示安装成功,但运行moltbot命令失败
解决
你需要通过npm i -g moltbot@beta重新安装beta版的moltbot。
我的排障历程
我排障的时候,走了不少弯路。因为我在clawdbot更名成moltbot前一天安装的clawdbot,然后我在使用clawdbot的时候碰到了其他问题,所以选择升级clawdbot。但是我执行升级后,我的clawdbot并没有更名成moltbot,反而是当我在命令行中输入moltbot时,提示command not found。
最后,我恼羞成怒,卸载clawdbot,然后重新安装moltbot。但是,这下clawdbot和moltbot都没了。这时我才意识到不对。在GitHub的Issue里翻了很久,终于找到了原因
原因
据Issue #3275反馈,npm中的moltbot包并不是官方发布的moltbot,而是另外一个包。初步看下来像是某人传的一个空包用于占位。
moltbot@latest(默认安装版本)指向一个 283 字节的占位符包 ,由非官方用户consistent_lee上传- 真正的项目代码位于
moltbot@beta(版本2026.1.27-beta.1),大小 41MB,由官方维护者steipete上传 - 项目 README 仍指导用户执行
npm install -g moltbot@latest,导致用户实际安装的是空包而非真实软件 - 此前相关 issue (#2775) 已被关闭并声称"已控制 npm 包",但
@latest标签仍未修正 - 官方已拥有包所有权,但未通过发布新版本更新
@latest标签 - 存在潜在安全风险(用户无法确认 0.1.0 是否仅为占位符或含恶意代码)
当前安全安装方式 :npm install -g moltbot@beta
配置模型为openrouter/google/gemini-2.0-flash-exp:free后无回复
本来想白嫖试试moltbot到底表现咋样,但是我配成了官方列表中可能是唯一一个支持免费模型供应商openrouter的免费模型gemini-2.0-flash-exp:free后,发送消息给远端,模型并无回复。moltbot doctor moltbot status 按烂之际,又在GitHub Issue中找到了原因。
原因
注意到Issue #2963同为发送消息后无回复,官方回复如下,目前issue已关闭:
Tried to setup Kimi 2.5 model via OpenRouter provider. Getting "not whitelisted" even config is valid.
试试
OpenRouter/Kimi 2.5吧。即使配置有效,也收到"未列入白名单"的错误
实话说这句话我没看懂,不然我也不会贴英文原文了,但是原因肯定是moltbot对openrouter的支持不完全或有些其他的问题导致的。那就换个提供商。
让moltbot使用百炼大模型API
既然openrouter中免费的gemini-2.0无法使用,那么是否可以使用阿里百炼的API呢?新用户也赠送了很多免费的token,用来体验这玩意应该足够了吧。
获取百炼大模型API密钥
百炼大模型控制台,复制API_KEY。
我是Mac用户,默认的bash为zsh,所以,在终端中执行:
zsh
echo "export DASHSCOPE_API_KEY='刚才复制的API_KEY'" >> ~/.zshrc
source ~/.zshrc
echo $DASHSCOPE_API_KEY # 若配置成功,则应输出刚才复制的API Key
如果是Linux用户,执行:
bash
echo "export DASHSCOPE_API_KEY='刚才复制的API_KEY'" >> ~/.bash_profile
source ~/.bash_profile
echo $DASHSCOPE_API_KEY # 若配置成功,则应输出刚才复制的API Key
如果是Windows用户,执行:
powershell
echo "export DASHSCOPE_API_KEY='刚才复制的API_KEY'" >> ~/AppData/Roaming/Microsoft/Windows/Start\ Menu/Programs/PowerShell/Microsoft\ PowerShell/Microsoft\ PowerShell_profile.ps1
source ~/.powershell_profile.ps1
echo $DASHSCOPE_API_KEY # 若配置成功,则应输出刚才复制的API Key
(应该会在每次powershell启动时加载进环境变量吧?如果不行,后面在配置~/.moltbot/moltbot.json时自行将${DASHSCOPE_API_KEY}换成复制的API_KEY就好了)
修改配置文件
在这里,需要修改~/.moltbot/moltbot.json文件。首先,删除 ~/.moltbot/moltbot.json文件中的auth配置,因为以下配置指向了openrouter的API,而不是阿里百炼的API。也就是说,下面这段直接删掉:
diff
"auth": {
"profiles": {
"openrouter:default": {
"provider": "openrouter",
"mode": "api_key"
}
}
},
第二步,添加 models.providers配置。在models配置中添加下面这段定义百炼API接口的配置。这里新加了百炼的provider,配置了相应的baseUrl、api格式和models信息,并指定apiKey 为刚才在命令行里设置的${DASHSCOPE_API_KEY}。models.providers.bailian.models信息中定义了qwen3-max和qwen3-plus的相关配置。
json
"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "${DASHSCOPE_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "qwen3-max-2026-01-23",
"name": "通义千问 Max Thinking 版",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0.0025,
"output": 0.01,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen-plus",
"name": "通义千问 Plus",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0.008,
"output": 0.008,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1029000,
"maxTokens": 32000
}
]
}
}
},
第三步,添加 agents.defaults.models配置。
json
"agents": {
"defaults": {
"models": {
"bailian/qwen3-max-2026-01-23": {
"alias": "通义千问 Max Thinking 版"
},
"bailian/qwen-plus": {
"alias": "通义千问 Plus"
}
},
第四步,修改 agents.default.model.primary配置。因为先前已经配了百炼的API和models,所以这里只需要修改agents.default.model.primary配置为先前定义好的信息就行。
如果想配qwen3-max,就将值修改为bailian/qwen3-max-2026-01-23:
json
"agents": {
"defaults": {
"model": {
"primary": "bailian/qwen3-max-2026-01-23"
},
如果想配qwen3-plus,就将值修改为bailian/qwen3-plus-2026-01-23:
json
"agents": {
"defaults": {
"model": {
"primary": "bailian/qwen3-max-2026-01-23"
},
如果你没看懂到底要改些什么,可以点此展开,看看我改之前和改之后都有哪些变化
修改前,我的moltbot.json文件是:
json
{
"meta": {
"lastTouchedVersion": "2026.1.27-beta.1",
"lastTouchedAt": "2026-01-28T13:56:43.490Z"
},
"wizard": {
"lastRunAt": "2026-01-28T13:56:43.489Z",
"lastRunVersion": "2026.1.27-beta.1",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"auth": {
"profiles": {
"openrouter:default": {
"provider": "openrouter",
"mode": "api_key"
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/google/gemini-2.0-flash-exp:free"
},
"models": {
"openrouter/auto": {
"alias": "OpenRouter"
},
"openrouter/google/gemini-2.0-flash-exp:free": {}
},
"workspace": "~/clawd",
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"commands": {
"native": "auto",
"nativeSkills": "auto"
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"auth": {
"mode": "token",
"token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"http": {
"endpoints": {
"responses": {
"enabled": true
}
}
}
},
"skills": {
"install": {
"nodeManager": "npm"
}
}
}
修改后,我的moltbot.json文件是:
json
{
"meta": {
"lastTouchedVersion": "2026.1.27-beta.1",
"lastTouchedAt": "2026-01-28T13:56:43.490Z"
},
"wizard": {
"lastRunAt": "2026-01-28T13:56:43.489Z",
"lastRunVersion": "2026.1.27-beta.1",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"agents": {
"defaults": {
"model": {
"primary": "bailian/qwen3-max-2026-01-23"
},
"models": {
"bailian/qwen3-max-2026-01-23": {
"alias": "通义千问 Max Thinking 版"
},
"bailian/qwen-plus": {
"alias": "通义千问 Plus"
}
},
"workspace": "~/clawd",
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
}
},
"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "${DASHSCOPE_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "qwen3-max-2026-01-23",
"name": "通义千问 Max Thinking 版",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0.0025,
"output": 0.01,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen-plus",
"name": "通义千问 Plus",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0.008,
"output": 0.008,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1029000,
"maxTokens": 32000
}
]
}
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"commands": {
"native": "auto",
"nativeSkills": "auto"
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"auth": {
"mode": "token",
"token": "xxxxxxxxx"
},
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"http": {
"endpoints": {
"responses": {
"enabled": true
}
}
}
},
"skills": {
"install": {
"nodeManager": "npm"
}
}
}
第五步,应用新的配置文件。在终端中执行:
bash
moltbot gateway restart # 重启网关
moltbot models status --probe # 看看有哪些模型可用
此时输出中应有刚才配置的模型。例如我执行后输出为:
text
🦞 Moltbot 2026.1.27-beta.1 (7eb57b6)
Gateway online---please keep hands, feet, and appendages inside the shell at all times.
│
◇
Config : ~/.moltbot/moltbot.json
Agent dir : ~/.clawdbot/agents/main/agent
Default : bailian/qwen3-max-2026-01-23
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (2) : 通义千问 Max Thinking 版 -> bailian/qwen3-max-2026-01-23, 通义千问 Plus -> bailian/qwen-plus
Configured models (2): bailian/qwen3-max-2026-01-23, bailian/qwen-plus
Auth overview
Auth store : ~/.clawdbot/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- bailian effective=models.json:sk-f4b00...fd98280b | models.json=sk-f4b00...fd98280b | source=models.json: ~/.clawdbot/agents/main/agent/models.json
- openrouter effective=profiles:~/.clawdbot/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openrouter:default=sk-or-v1...9a6633aa
OAuth/token status
- none
Auth probes
┌─────────────────────────────────┬──────────────────────────────┬────────────┐
│ Model │ Profile │ Status │
├─────────────────────────────────┼──────────────────────────────┼────────────┤
│ bailian/qwen3-max-2026-01-23 │ models.json (api_key) │ ok · 5.7s │
│ openrouter/ai21/jamba-large-1.7 │ openrouter:default (api_key) │ ok · 2.2s │
└─────────────────────────────────┴──────────────────────────────┴────────────┘
Probed 2 targets in 5.7s
验证
运行以下命令进行对话,查看是否成功:
bash
clawdbot agent --agent main --message "你是一只猫娘"
输出为:
text
🦞 Moltbot 2026.1.27-beta.1 (7eb57b6)
Your terminal just grew claws---type something and let the bot pinch the busywork.
│
◇
Gateway agent failed; falling back to embedded: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: ~/.clawdbot/moltbot.json
Bind: loopback
我可不是猫娘哦!我是你的智能助手,可以帮你处理各种任务、提醒、查询和自动化操作。有什么我可以帮你的吗?
这样就是成功了。
接入飞书
moltbot火起来的原因是它能通过telegram、discord等平台与用户交互。用户仅需在手机上发一些消息,比如"帮我炒股"之类的指令就能让LLM帮你完成相应的任务。但是因为moltbot是国外的软件,自然不会支持飞书,支持的其他平台也需要魔法才能访问。那么,有没有更简单的方法呢?这里给大家提供两个:
- 对接飞书:https://github.com/AlexAnys/feishu-clawdbot-bridge
- 对接钉钉:https://github.com/soimy/clawdbot-channel-dingtalk
配置飞书机器人(第一部分)
- 打开 飞书开放平台,登录
- 点击 创建自建应用
- 填写应用名称(随意,比如 "My AI Assistant")
- 进入应用 → 添加应用能力 → 选择 机器人
- 进入 权限管理 ,开通以下权限:
im:message--- 获取与发送单聊、群聊消息im:message.group_at_msg--- 接收群聊中 @ 机器人的消息im:message.p2p_msg--- 接收机器人单聊消息
- 发布应用(创建版本 → 申请上线)
- 记下 App ID 和 App Secret(在"凭证与基础信息"页面)
还剩下一个添加事件回调的步骤,但是这个步骤会需要先建立长连接,所以先跳过,转而安装飞书桥接器。moltbot侧的飞书配置好后,长连接也就建立了,自然也就可以创建事件回调了。
安装并配置飞书桥接器
首先是安装:
bash
moltbot plugins install @m1heng-clawd/feishu
moltbot gateway restart
接下来是配置moltbot。你可以输入moltbot channel add通过TUI配置向导配置飞书,也可以使用以下命令进行。
bash
moltbot config set channels.feishu.appId "cli_xxxxx"
moltbot config set channels.feishu.appSecret "your_app_secret"
moltbot config set channels.feishu.enabled true
moltbot config set channels.feishu.connectionMode "websocket"
moltbot gateway restart
安装好并设置好appId和appSecret后,飞书长连接就已经建立了,现在可以继续配置飞书机器人了。
配置飞书机器人(第二部分)
- 进入 事件与回调 → 事件配置:
- 请求方式选择:使用长连接接收事件
- 添加事件:
接收消息 im.message.receive_v1
- 发布应用(创建版本 → 申请上线)
测试
现在,你可以在飞书中使用这个机器人了。在飞书上使用这个机器人才能做到体验接近于网上说的那么夸张。