Moltbot的安装踩坑与初体验

本文介绍了安装和配置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,配置了相应的baseUrlapi格式和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是国外的软件,自然不会支持飞书,支持的其他平台也需要魔法才能访问。那么,有没有更简单的方法呢?这里给大家提供两个:

配置飞书机器人(第一部分)

  1. 打开 飞书开放平台,登录
  2. 点击 创建自建应用
  3. 填写应用名称(随意,比如 "My AI Assistant")
  4. 进入应用 → 添加应用能力 → 选择 机器人
  5. 进入 权限管理 ,开通以下权限:
    • im:message --- 获取与发送单聊、群聊消息
    • im:message.group_at_msg --- 接收群聊中 @ 机器人的消息
    • im:message.p2p_msg --- 接收机器人单聊消息
  6. 发布应用(创建版本 → 申请上线)
  7. 记下 App IDApp 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后,飞书长连接就已经建立了,现在可以继续配置飞书机器人了。

配置飞书机器人(第二部分)

  1. 进入 事件与回调事件配置
  • 请求方式选择:使用长连接接收事件
  • 添加事件:接收消息 im.message.receive_v1
  1. 发布应用(创建版本 → 申请上线)

测试

现在,你可以在飞书中使用这个机器人了。在飞书上使用这个机器人才能做到体验接近于网上说的那么夸张。

参考内容

相关推荐
nuowenyadelunwen18 小时前
Stanford CS336 Assignment 1: BPE Tokenizer
llm·bpe tokenizer·stanford cs336
农场主John1 天前
Accelerate_deepspeed使用
pytorch·llm·deepspeed
组合缺一1 天前
论 AI Skills 分布式发展的必然性:从单体智能到“云端大脑”的跃迁
java·人工智能·分布式·llm·mcp·skills
小哈里1 天前
【计算】Ray框架介绍,AI基础设施之“通用”分布式计算(跨场景,门槛低,大规模生产,单机->集群->推理一站式)
人工智能·大模型·llm·分布式计算·ray
山顶夕景2 天前
【VLM】Visual Merit or Linguistic Crutch? 看DeepSeek-OCR
大模型·llm·ocr·多模态
玄同7652 天前
LangChain 核心组件全解析:构建大模型应用的 “乐高积木”
人工智能·python·语言模型·langchain·llm·nlp·知识图谱
亚里随笔2 天前
相对优势估计存在偏差——揭示群体相对强化学习中的系统性偏差问题
人工智能·深度学习·机器学习·llm·agentic·rlvr
带刺的坐椅2 天前
论 AI Skills 分布式发展的必然性:从单体智能到“云端大脑”的跃迁
java·ai·llm·mcp·tool-call·skills
中杯可乐多加冰2 天前
RAG 深度实践系列(三):RAG 技术演变与核心架构的深度剖析
人工智能·深度学习·大模型·llm·知识库·rag·graphrag