OpenClaw 进阶:Skills 配置 + Gateway 设置 + 对接飞书全攻略

阅读时长:36分钟

前言

在前文我们已经完成了 OpenClaw 在 PVE 环境下的私有化部署,完成了大模型选型、聊天通道配置以及各大平台 API Key 的申请与对接,实现了基础环境设置。

但这仅仅是 OpenClaw 能力的起点。想要让它真正具备自动化执行、工具调用、稳定对外服务的能力,就必须进入进阶配置环节。

本篇将带你深入核心实战:Skills 技能配置、Gateway 网关设置、服务持久化与后台自启,从功能扩展到生产级部署,一步步把 OpenClaw 打造成稳定、强大、可长期运行的私有化 AI 服务。

进阶配置流程

第一步:Skills配置

现在终端我们来到了skills配置

1756982_9EUUWR75fG.png

skills状态面部解析:

✅ 7 个技能可直接用,满足基础需求;

⚠️ 41 个技能缺依赖,是后续配置的重点;

❌ 7 个技能系统不兼容,无需浪费时间尝试;

🆓 无白名单限制,所有可用技能都能自由启用。

直接选Yes开始配置

1147380_T3x9DmekMw.png

目前显示 OpenClaw 缺失依赖的技能安装选择界面,核心原则是按需选择,不盲目全装

推荐勾选的技能(直接勾这些)

技能名 图标 / 标识 用途(为什么选)
gemini ♊️ 对接 Gemini 大模型,补充你已有的通义千问 / GLM,扩展多模型调用能力
github 🐙 对接 GitHub(查仓库、提 PR、看 Issue),适合技术场景使用 OpenClaw
openai-whisper 🎙️ 语音转文字(Whisper 核心能力),解锁 OpenClaw 语音交互、音频处理功能
summarize 🧾 文本摘要(核心 AI 能力),基于大模型快速总结长文本、文档,适配你的大模型使用场景
nano-pdf 📄 PDF 解析 / 处理(高频需求),让 OpenClaw 能读取、分析 PDF 文件
clawhub 🧩 OpenClaw 官方插件库,是很多技能的基础依赖,装了能避免后续兼容问题

现在的选择完全可以后续修改

后续修改的具体方法

1. 新增 / 补装技能依赖(想加某个跳过的技能)

登录 PVE 中部署 OpenClaw 的容器 / 虚拟机,终端执行:

# 重新进入技能依赖安装界面(和现在的界面完全一样)
claw skills install
# 或单独安装某个特定技能(更精准)
claw skills install github  # 举例:只装github技能
claw skills install openai-whisper  # 举例:只装语音转文字技能

执行后会重新弹出技能选择列表,勾选需要新增的技能,回车即可自动安装依赖。

2. 卸载不需要的技能(装错 / 用不上想删掉)

# 卸载单个技能(含依赖清理)
claw skills uninstall camsnap  # 举例:卸载用不上的摄像头截图技能
# 查看已安装的所有技能(确认卸载/安装状态)
claw skills list

3. 重置所有技能配置(极端情况,比如装太多想重来)

claw skills reset

接下来会提示是否安装Homebrew

1414518_AxZtFzgjAi.png

推荐选择:选 Yes(显示安装命令)

Homebrew 是 macOS/Linux 系统的包管理器(类似 Ubuntu 的 apt、CentOS 的 yum),作用是一键安装软件 / 依赖,不用自己找安装包、解压缩、配置环境变量 —— 比如要装 openai-whisper 的语音依赖,用 Homebrew 只需 brew install ffmpeg,手动装则要下载源码、编译、解决各种依赖冲突,新手很容易卡壳。

接下来要选择Node.js 包管理器

直接选默认的 npm 即可,不用切换到 pnpm 或 bun

选项含义通俗解读

选项 全称 核心特点 适配性(OpenClaw 场景)
npm Node Package Manager Node.js 官方默认包管理器,生态最完善、兼容性最好 ✅ 首选,OpenClaw 所有技能都适配
pnpm Performant npm 安装速度快、磁盘占用少 ⚠️ 部分小众技能可能兼容不佳,新手易踩坑
bun Bun Runtime 新一代工具(包管理 + 运行时),速度最快 ❌ 兼容性最差,OpenClaw 未做全面适配

1421849_5syTmav28c.png

下一步报错了(踩坑1)

1429434_QQ7eji0gnG.png

1.核心问题解读

失败提示 原因 通俗理解
gemini/github/whisper/summarize 安装失败 brew not installed 这些技能依赖的工具(gemini-cli/gh/whisper/summarize)需要 Homebrew 安装
nano-pdf 安装失败 uv not installed nano-pdf 依赖 uv(Python 包管理器),你没装这个工具
Set GOOGLE_PLACES_API_KEY for goplaces? 无关项(你没选 goplaces 技能) 询问是否配置谷歌地图 API Key,和当前失败的技能无关

简单说:我选的核心技能需要特定工具才能装,但这些工具没装,所以全部安装失败;最后那个 goplaces 的提示是 “顺带弹的”,不用管。

2.分步解决(PVE 环境适配)

第一步:先处理最后一个提示(goplaces API Key)

保留默认选择 ● No,回车跳过 —— 你没选 goplaces 技能,配置这个 API Key 完全没必要,跳过即可。

第二步:补装依赖工具(解决安装失败的核心)

针对 PVE(Debian/Ubuntu 系),可以选择不用 Homebrew 的替代方案(避免装额外包管理器,减少系统复杂度):

# 1. 更新系统包(必做)
sudo apt update && sudo apt upgrade -y

# 2. 安装 uv(解决 nano-pdf 依赖)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装后配置环境变量(让系统识别uv命令)
source $HOME/.cargo/env  # 或 source $HOME/.bashrc

# 3. 安装 github 工具(gh)(解决 github 技能依赖)
sudo apt install gh -y

# 4. 安装 openai-whisper 依赖(ffmpeg)+ whisper 本身(解决 whisper 技能依赖)
sudo apt install ffmpeg -y
pip install openai-whisper

# 5. 安装 gemini-cli(解决 gemini 技能依赖)
pip install gemini-cli

# 6. 安装 summarize 工具(解决 summarize 技能依赖)
pip install summarize

第三步:重新安装失败的技能

依赖装完后,执行以下命令单独重装每个技能:

# 逐个重装(按顺序执行)
claw skills install gemini
claw skills install github
claw skills install nano-pdf
claw skills install openai-whisper
claw skills install summarize
# 验证安装状态
claw skills list  # 能看到这些技能显示 "Installed" 就代表成功

3.备选方案(也可以选择直接装 Homebrew)

如果觉得手动装太麻烦,也可以先装 Homebrew,再重装技能(更省心):

# 1. 安装 Homebrew(Linux 版)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. 配置 Homebrew 环境变量(按终端提示执行,比如)
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> $HOME/.bashrc
source $HOME/.bashrc
# 3. 重装所有失败的技能
claw skills install gemini github nano-pdf openai-whisper summarize

我选3再开一个终端安装Homebrew

再次报错(踩坑2)

1442373_wCoQnMMekI.png

Don't run this as root!:致命错误 —— Homebrew 设计上不允许用 root(超级管理员)用户安装,会导致权限混乱、后续依赖安装出错。

解决步骤(PVE 环境下正确安装 Homebrew)

第一步:先创建普通用户(必须,不能用 root)

# 1. 创建名为 brewuser 的普通用户(密码设为你容易记的,比如 123456)
useradd -m brewuser
passwd brewuser

# 2. 给 brewuser 赋予 sudo 权限(后续装依赖需要)
usermod -aG sudo brewuser

# 3. 切换到 brewuser 用户(核心:用普通用户装 Homebrew)
su - brewuser

第二步:重新安装 Homebrew(现在用普通用户执行)

# 执行安装命令(和之前一样,但现在是 brewuser 用户)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

1457067_EVcWs72w0w.png

到这里直接回车继续

1501028_v5YCo0dScj.png

这里表示安装成功

第三步:配置 Homebrew 环境变量(安装完成后)

1. 先把 Homebrew 加入环境变量

# 执行这3行命令(直接复制粘贴)
echo >> /home/brewuser/.profile
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/brewuser/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

2. 安装 build-essential 依赖(需要输入 brewuser 密码)

sudo apt-get install build-essential
# 输入 brewuser 的密码(和刚才验证 sudo 时的密码一样),回车即可

3. 验证 Homebrew 是否可用

brew -v

如果输出类似 Homebrew 5.0.15 这样的版本号,说明环境变量配置成功,Homebrew 能正常使用了。

1505150_CZGEiUnIx5.png

第四步:切回 root 用户重装 OpenClaw 技能

# 1. 退出 brewuser,回到 root 用户
exit

# 2. 把 brew 环境变量写入 root 的配置文件(永久生效,重启也不会丢)
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /root/.bashrc

# 3. 立即加载配置(让 brew 命令马上可用)
source /root/.bashrc

# 4. 验证 brew 是否恢复(输出版本号即成功)
brew -v

✅ 预期输出:

Homebrew >=4.3.0 (shallow or no git repository)

第五步:安装 OpenClaw 核心技能(现在能正常调用 brew 了)

# 1. 先确保 node/npm 已安装(npx 依赖)
apt install nodejs npm -y

# 2. 逐个安装核心技能(复制一行执行一行)
npx clawhub install gemini
npx clawhub install github
npx clawhub install nano-pdf
npx clawhub install openai-whisper
npx clawhub install summarize

# 3. 验证技能安装结果
npx clawhub list

1707773_KW7MiJRfzQ.png

输出逐行解读(划重点)

内容 含义 & 影响
nodejs/npm 依赖冲突 系统里 nodejs 版本和 npm 有依赖冲突,但 npx 已能正常使用(clawhub 运行依赖的是 npx,不是系统 npm),无实际影响
✔ OK. Installed gemini/github/nano-pdf/openai-whisper 这 4 个核心技能已100% 安装成功,文件已放到 /root/.openclaw/workspace/skills/
✖ Rate limit exceeded(summarize 安装失败) 仅 summarize 因 GitHub API 限流失败(临时问题),其他技能不受影响
技能列表显示 gemini/github 等版本 已安装的技能能正常被 OpenClaw 识别和使用

收尾方案(解决剩余问题)

1. 解决 summarize 限流问题

GitHub 限流是临时的(一般 1 小时后自动恢复)

# 1小时后重试安装 summarize
npx clawhub install summarize

2.验证 OpenClaw 技能是否可用

# 查看 OpenClaw 加载的技能
openclaw skills
# 默认会列出所有技能(包括未安装、缺失依赖的),可以用 Linux 的文本过滤命令(grep/awk)筛选出「已就绪 / 已安装」的技能,只显示有用的内容
openclaw skills | grep -E "ready"

1721099_wVukdr9Y1c.png

可以看到输出了 13 个已就绪(ready)的技能,其中包含之前安装的 gemini/github/nano-pdf/openai-whisper/summarize 全部核心技能 —— 这意味着所有目标技能都已成功安装并就绪,终于完成了全部配置!

第二步:后续配置

接着我们再回到第一个终端继续下一步

1728347_cK65IQeNSW.png

一路回车选择默认,Enable hooks?选择Skip for now(推荐)

接下来,会自动安装Systemd和Gateway

1732401_1BCQv9Hwzn.png

可以看到已经安装成功,我们可以再开新的终端验证一下

验证 Gateway 服务是否正常

# 在新的终端查看服务状态
systemctl --user status openclaw-gateway

# 测试网页 UI 是否可访问(本地)
curl http://127.0.0.1:18789/
# 若返回 JSON 或页面内容,说明服务正常

1746214_dAT1fHYYMt.png

1749996_TouTXtB8Wg.png

现在我们回到原终端继续下一步

现在看到的 How do you want to hatch your bot? 是初始化机器人的关键步骤,三种选项的适配场景如下:

选项 特点 推荐场景
Hatch in TUI (recommended) 命令行交互式配置(终端界面),引导你设置机器人的基础信息、能力、交互规则等,步骤清晰,新手友好 推荐新手选择,能快速完成基础配置
Open the Web UI 打开网页版控制面板(http://127.0.0.1:18789/),通过可视化界面配置机器人 习惯图形界面操作、需要精细化配置的场景
Do this later 跳过初始化,后续手动配置 暂时不想配置,先熟悉环境 / 排查问题的场景

推荐操作(优先选 TUI)

如果是第一次安装,优先选择默认的 Hatch in TUI:

  • 直接按回车键确认选择(已默认选中),进入 TUI 交互式配置界面;
  • TUI 会引导你设置:机器人名称、交互指令、关联的插件(如飞书 / 微信)、心跳间隔等核心参数;
  • 配置完成后,机器人会自动启动,可通过 openclaw dashboard 打开网页面板查看状态。

再次报错(踩坑3)

1800665_9XpLBA2qjy.png

⚠️ Agent failed before reply: Model context window too small (4096 tokens). Minimum is 16000. 这是核心报错,也是导致 bot 没法正常回消息的原因。

翻译:代理在回复前就失败了:模型的上下文窗口太小了(只有 4096 个 token),但 OpenClaw 要求至少 16000 个 token 才能正常跑。

为什么会这样?

  • 我现在用的模型(看起来是 moonshotai/kimi-k2.5,也就是NVIDIA主推版本)
  • moonshotai/kimi-k2.5
    • Context: 256K tokens
    • 很强:多模态(图+视频+文本),agentic 能力好,推理强
    • 为什么报错,可能是我当时通过自定义 provider连上去,默认上下文长度只有 4096(没有修改)

如何修改

手动编辑 ~/.openclaw/openclaw.json,开新的终端

# 编辑 OpenClaw 配置文件
nano ~/.openclaw/openclaw.json

找到 models.providers.nvidia-api-catalog.models 段落,修改 contextWindow 为 16000(或更高):

"models": {
  "nvidia/kimi-k2.5": {
    "provider": "nvidia",
    "model": "moonshotai/kimi-k2.5",
    "contextWindow": 262144,   // 模型能“记住”最多 256K token(≈ 192,000 字左右)
    "maxTokens": 8192          // 一次回复最多生成 8192 token(≈ 6000 字)
  }
}

1758533_o8foJgcKbY.png

保存退出(Ctrl+O → 回车 → Ctrl+X)

重启 Gateway 服务

# 1. 清所有缓存(非常重要,避免旧状态干扰)
rm -rf ~/.openclaw/cache/*

# 2. 删除当前 main session 的所有残留文件(tokens 会从 0 开始)
rm -rf ~/.openclaw/workspace/agent.main/sessions/main*

# 3. 重启 gateway(让新状态生效)
openclaw gateway restart

# 4. 验证 gateway 是否正常启动(可选)
openclaw status --deep

可以看到Gateway、Feisu都ok了2324446_Z0U6I5ML6u.png

重新进入 TUI 初始化

openclaw tui

2355996_gcJ8VpZ8Yg.png

终于搞好了。记住每次通过Custom Provider添加新的模型,默认都是4096,都会报错,必须手工修改。我在这里卡住了,搞了大半天(巨坑)。

第三步:配置飞书

在前文OpenClaw 从零上手:大模型选择 + 聊天通道配置+ API Key申请全攻略中我实际上了配置了一些前期的基础

但是现在测试发现完全无反应,我在之前创建的群里面@OpenClaw AI助手发消息后,openclaw logs --follow 完全没新日志,这是最明确的信号—— 飞书开放平台根本没把消息推给 OpenClaw,问题 100% 出在飞书开放平台的配置上。

核心结论:飞书平台「消息推送链路断了」

日志无输出 = 飞书的消息事件根本没到达服务器 → 机器人连 “收到消息” 都不知道,自然无法响应。

飞书开放平台「必做 5 步」(少一步都不行)

按这个顺序操作,每一步都要确认完成,这是唯一能解决 “日志无输出” 的方法:

步骤 1:应用必须「发布并审批」(前文已完成)

  1. 登录飞书开放平台:https://open.feishu.cn/app
  2. 找到你的应用 → 左侧「应用发布」
  3. 选择「测试版发布」→ 填写发布说明(随便填)→ 提交
  4. 让企业管理员在飞书里审批(管理员会收到审批通知)
  5. 审批通过后,应用状态会变成「已发布(测试版)」(关键!)

步骤 2:事件订阅必须是「长连接」+ 加对事件

  1. 左侧「事件与回调」→ 「事件配置」→「订阅方式」:必须选「长连接」(不是 Webhook,OpenClaw 只支持长连接)

    0011767_EFCNbaFRYT.png 1047478_8i3G4E8TBO.png

  2. 「添加事件」→ 搜索并勾选 im.message.receive_v1(接收消息)(这是核心事件,没有就收不到任何消息)

  3. 在所需权限要点开,把「读取用户发给机器人的单聊消息」「接收群聊中@机器人消息事件」这两个都开通,要不然群里面@机器人会没有反应(大坑)

    1047946_ixoUYVg5Pv.png

    1053148_VBKllx3Hco.png

  4. 点击「保存」→ 会提示 “需要重新发布应用”,先记着,最后统一发布

步骤 3:必须开通并审批「消息相关权限」

  1. 左侧「权限管理」→ 「添加权限」,经过测试,最少需要以下4个权限,要不然会有报错:

    权限名称 权限标识 权限类型 开通状态 备注
    获取通讯录基本信息 contact:contact.base:readonly 应用身份 已开通 与应用的可用范围一致
    获取与发送单聊、群组消息 im:message 应用身份 已开通 覆盖消息全量操作权限
    读取用户发给机器人的单聊消息 im:message.p2p_msg:readonly 应用身份 已开通 仅读取单聊消息(只读)
    以应用的身份发消息 im:message:send_as_bot 应用身份 已开通 机器人核心发消息权限
    接收群聊中@机器人消息事件 im:message.group_at_msg:readonly 应用身份 已开通 仅读取群内@单聊消息(只读)

    0016771_FOeGH5iQkB.png

    1057501_BIx0OXZBii.png

  2. 点击「提交审批」→ 均为免审权限(系统自动审批后权限生效)

步骤 4:重新发布应用(所有配置改完必须做)

  1. 回到「应用发布」→ 「重新发布测试版」

  2. 提交后因为是免审权限,自动审批通过

  3. 发布完成后,等待 2-5 分钟(飞书配置生效有延迟)

    0023713_RFPimwfvXf.png

步骤 5:把机器人显示在聊天列表

  1. 「开发者小助手」会有提示「应用审批通过,已发布成功」,打开「开发者小助手」→「打开应用」

    Screenshot_2026-02-26-10-36-22-68_31f8a70043d07079629586283eb56679.jpg

    Screenshot_2026-02-26-10-36-27-31_31f8a70043d07079629586283eb56679.jpg

  2. 这时聊天界面会出现「OpenClaw AI助手」

  3. 打开「OpenClaw AI助手」,点击右上角「…」进入设置,复制最下面的会话ID

    Screenshot_2026-02-26-10-42-57-56_31f8a70043d07079629586283eb56679.jpg

步骤6:修改openclaw配置

  1. 终端修改openclaw.json,用nano编辑器编辑

    nano ~/.openclaw/openclaw.json
    
  2. 把复制的会话ID添加到「channels」部分

    找到这部分,把ID填入到「groupAllowFrom」这里,我这里有两个,一个是之前的群会话ID,一个是和OpenClaw AI助手对话的会话ID

      "channels": {
        "feishu": {
          "enabled": true,
          "appId": "cli_xxx",
          "appSecret": "xxx",
          "domain": "feishu",
          "groupPolicy": "allowlist",
          "groupAllowFrom": [
            "oc_xxx",
            "oc_xxx"
          ]
        }
      },
    

    1101152_pC0L2TynAc.png

  3. 修改后按 Ctrl + O保存,再按 Ctrl + X退出。

步骤7:配对及验证操作

  1. 服务器端重新启动日志跟踪:

    openclaw logs --follow
    
  2. 飞书端:在群里 @机器人发消息(比如 @OpenClaw AI助手 你好),或私聊发消息

  3. 看日志:此时应该能看到新的日志输出(哪怕是报错,也说明消息推过来了)

  4. 飞书应该会出现要求配对的回复

    Screenshot_2026-02-26-09-09-52-86_31f8a70043d07079629586283eb56679.jpg

  5. 在终端运行

    openclaw pairing approve feishu 4PZ4GF7L
    

    0911450_OYw2v0WAIK.png

  6. 出现Approved表示配对成功

  7. 回到飞书,直接给OpenClaw AI助手发消息,等一会就有回复了

    Screenshot_2026-02-26-09-15-37-31_31f8a70043d07079629586283eb56679.jpg

  8. 同样,在群里@OpenClaw AI助手 也有回复

    Screenshot_2026-02-26-10-49-33-45_31f8a70043d07079629586283eb56679.jpg

    至次,大功告成!

第四步:更换大模型

在前文[OpenClaw 从零上手:大模型选择 + 聊天通道配置+ API Key申请全攻略]中,我们申请了NVIDIA的免费API Key,当时列出了能免费使用的大模型,我最开始选择的是moonshotai/kimi-k2.5,实际使用后发现反应很慢,后来我切换成了qwen/qwen3.5-397b-a17b,实测能够接受,毕竟还是免费白嫖。

我们来看看如何添加和切换大模型。

  1. 直接通过openclaw config进行操作

    #终端输入
    
    openclaw config
    

    一路回车来到模型选择界面设置

    1454247_W60cO1EWj9.png

  2. 通过修改openclaw.json,用nano编辑器编辑,找到models部分,按如下格式直接添加,可以让AI帮助修改

         "models": [
           {
             "id": "moonshotai/kimi-k2.5",
             "name": "moonshotai/kimi-k2.5 (Custom Provider)",
             "reasoning": false,
             "input": [
               "text"
             ],
             "cost": {
               "input": 0,
               "output": 0,
               "cacheRead": 0,
               "cacheWrite": 0
             },
             "contextWindow": 262144,
             "maxTokens": 8192
           },
           {
             "id": "qwen/qwen3.5-397b-a17b",
             "name": "qwen/qwen3.5-397b-a17b (Custom Provider)",
             "reasoning": false,
             "input": [
               "text"
             ],
             "cost": {
               "input": 0,
               "output": 0,
               "cacheRead": 0,
               "cacheWrite": 0
             },
             "contextWindow": 262144,
             "maxTokens": 8192
           },
    
  3. 终极方法,既往上面的OpenClaw已经搞好了,完全可以让它自己完成,直接在飞书给它指令

    Screenshot_2026-02-26-15-18-17-33_31f8a70043d07079629586283eb56679.jpg

    Screenshot_2026-02-26-15-18-23-81_31f8a70043d07079629586283eb56679.jpg

    完成后可以在终端通过openclaw models list验证

    1449552_WSFVXqhX8j.png

总结

至此,我们已经完成了 OpenClaw 从 PVE 私有化部署、基础对话,到 Skills 技能扩展、飞书单聊与群聊配置、Gateway 网关调优、大模型自由切换,再到服务持久化与后台自启的全流程进阶实战。

坦白说,这个过程并不像网上许多教程描述的那样 “一键启动、小白秒会”。从权限报错、事件订阅缺失、群聊 @无响应,到技能匹配、模型兼容、免费大模型的速率与长度限制、收费模型的 token 消耗控制,再到配置文件之间的衔接、依赖版本、网络与内网环境的约束,每一步都可能遇到意想不到的问题。很多看似简单的功能,背后都藏着权限、接口、网关、日志、安全策略之间的精密配合。

但也正是在不断排错、调试、理解原理的过程中,我们才能真正掌握 OpenClaw 的运行逻辑,明白 AI 助手是如何接收消息、调用技能、执行工具、访问外部服务的。这些踩过的坑、解决过的错误,反而成为最扎实的经验,让我们从 “会用” 变成 “懂原理、能排错、可优化”。

最终,我们把一个仅能简单对话的模型,一步步打磨成具备自动化执行、工具调用、多通道接入、内网安全稳定、7×24 小时在线的私有化智能助理。这条路不算轻松,但每一步摸索,都是真正的成长。

如果有问题可以在评论区留言。

© 2026 softon.top

本站已稳定运行 307 天 9 小时 · 147 篇文章

使用 Hugo 构建 主题 Stack 由 Jimmy 设计 由 softon 魔改

最近构建时间:2026-11-04 17:21:05 CST