本文介绍了安装和配置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,所以,在终端中执行:- echo "export DASHSCOPE_API_KEY='刚才复制的API_KEY'" >> ~/.zshrc
- source ~/.zshrc
- echo $DASHSCOPE_API_KEY # 若配置成功,则应输出刚才复制的API Key
复制代码 如果是Linux用户,执行:- echo "export DASHSCOPE_API_KEY='刚才复制的API_KEY'" >> ~/.bash_profile
- source ~/.bash_profile
- echo $DASHSCOPE_API_KEY # 若配置成功,则应输出刚才复制的API Key
复制代码 如果是Windows用户,执行:- 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。也就是说,下面这段直接删掉:- "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的相关配置。- "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配置。- "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:- "agents": {
- "defaults": {
- "model": {
- "primary": "bailian/qwen3-max-2026-01-23"
- },
复制代码 如果想配qwen3-plus,就将值修改为bailian/qwen3-plus-2026-01-23:- "agents": {
- "defaults": {
- "model": {
- "primary": "bailian/qwen3-max-2026-01-23"
- },
复制代码 如果你没看懂到底要改些什么,可以点此展开,看看我改之前和改之后都有哪些变化修改前,我的moltbot.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文件是:- { "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" } }}
复制代码 第五步,应用新的配置文件。在终端中执行:- moltbot gateway restart # 重启网关
- moltbot models status --probe # 看看有哪些模型可用
复制代码 此时输出中应有刚才配置的模型。例如我执行后输出为:
[code]
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |