前言
在前文我们已经完成了 OpenClaw 在 PVE 环境下的私有化部署,完成了大模型选型、聊天通道配置以及各大平台 API Key 的申请与对接,实现了基础环境设置。
但这仅仅是 OpenClaw 能力的起点。想要让它真正具备自动化执行、工具调用、稳定对外服务的能力,就必须进入进阶配置环节。
本篇将带你深入核心实战:Skills 技能配置、Gateway 网关设置、服务持久化与后台自启,从功能扩展到生产级部署,一步步把 OpenClaw 打造成稳定、强大、可长期运行的私有化 AI 服务。
进阶配置流程
第一步:Skills配置
现在终端我们来到了skills配置

skills状态面部解析:
✅ 7 个技能可直接用,满足基础需求;
⚠️ 41 个技能缺依赖,是后续配置的重点;
❌ 7 个技能系统不兼容,无需浪费时间尝试;
🆓 无白名单限制,所有可用技能都能自由启用。
直接选Yes开始配置

目前显示 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

推荐选择:选 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 未做全面适配 |

下一步报错了(踩坑1)

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)

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)"

到这里直接回车继续

这里表示安装成功
第三步:配置 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 能正常使用了。

第四步:切回 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

输出逐行解读(划重点)
| 内容 | 含义 & 影响 |
|---|---|
| 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"

可以看到输出了 13 个已就绪(ready)的技能,其中包含之前安装的 gemini/github/nano-pdf/openai-whisper/summarize 全部核心技能 —— 这意味着所有目标技能都已成功安装并就绪,终于完成了全部配置!
第二步:后续配置
接着我们再回到第一个终端继续下一步

一路回车选择默认,Enable hooks?选择Skip for now(推荐)
接下来,会自动安装Systemd和Gateway

可以看到已经安装成功,我们可以再开新的终端验证一下
验证 Gateway 服务是否正常
# 在新的终端查看服务状态
systemctl --user status openclaw-gateway
# 测试网页 UI 是否可访问(本地)
curl http://127.0.0.1:18789/
# 若返回 JSON 或页面内容,说明服务正常


现在我们回到原终端继续下一步
现在看到的 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)

⚠️ 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 字)
}
}

保存退出(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了
重新进入 TUI 初始化
openclaw tui

终于搞好了。记住每次通过Custom Provider添加新的模型,默认都是4096,都会报错,必须手工修改。我在这里卡住了,搞了大半天(巨坑)。
第三步:配置飞书
在前文OpenClaw 从零上手:大模型选择 + 聊天通道配置+ API Key申请全攻略中我实际上了配置了一些前期的基础
但是现在测试发现完全无反应,我在之前创建的群里面@OpenClaw AI助手发消息后,openclaw logs --follow 完全没新日志,这是最明确的信号—— 飞书开放平台根本没把消息推给 OpenClaw,问题 100% 出在飞书开放平台的配置上。
核心结论:飞书平台「消息推送链路断了」
日志无输出 = 飞书的消息事件根本没到达服务器 → 机器人连 “收到消息” 都不知道,自然无法响应。
飞书开放平台「必做 5 步」(少一步都不行)
按这个顺序操作,每一步都要确认完成,这是唯一能解决 “日志无输出” 的方法:
步骤 1:应用必须「发布并审批」(前文已完成)
- 登录飞书开放平台:https://open.feishu.cn/app
- 找到你的应用 → 左侧「应用发布」
- 选择「测试版发布」→ 填写发布说明(随便填)→ 提交
- 让企业管理员在飞书里审批(管理员会收到审批通知)
- 审批通过后,应用状态会变成「已发布(测试版)」(关键!)
步骤 2:事件订阅必须是「长连接」+ 加对事件
-
左侧「事件与回调」→ 「事件配置」→「订阅方式」:必须选「长连接」(不是 Webhook,OpenClaw 只支持长连接)

-
「添加事件」→ 搜索并勾选
im.message.receive_v1(接收消息)(这是核心事件,没有就收不到任何消息) -
在所需权限要点开,把「读取用户发给机器人的单聊消息」「接收群聊中@机器人消息事件」这两个都开通,要不然群里面@机器人会没有反应(大坑)


-
点击「保存」→ 会提示 “需要重新发布应用”,先记着,最后统一发布
步骤 3:必须开通并审批「消息相关权限」
-
左侧「权限管理」→ 「添加权限」,经过测试,最少需要以下4个权限,要不然会有报错:
权限名称 权限标识 权限类型 开通状态 备注 获取通讯录基本信息 contact:contact.base:readonly 应用身份 已开通 与应用的可用范围一致 获取与发送单聊、群组消息 im:message 应用身份 已开通 覆盖消息全量操作权限 读取用户发给机器人的单聊消息 im:message.p2p_msg:readonly 应用身份 已开通 仅读取单聊消息(只读) 以应用的身份发消息 im:message:send_as_bot 应用身份 已开通 机器人核心发消息权限 接收群聊中@机器人消息事件 im:message.group_at_msg:readonly 应用身份 已开通 仅读取群内@单聊消息(只读) 

-
点击「提交审批」→ 均为免审权限(系统自动审批后权限生效)
步骤 4:重新发布应用(所有配置改完必须做)
-
回到「应用发布」→ 「重新发布测试版」
-
提交后因为是免审权限,自动审批通过
-
发布完成后,等待 2-5 分钟(飞书配置生效有延迟)

步骤 5:把机器人显示在聊天列表
-
「开发者小助手」会有提示「应用审批通过,已发布成功」,打开「开发者小助手」→「打开应用」


-
这时聊天界面会出现「OpenClaw AI助手」
-
打开「OpenClaw AI助手」,点击右上角「…」进入设置,复制最下面的会话ID

步骤6:修改openclaw配置
-
终端修改openclaw.json,用nano编辑器编辑
nano ~/.openclaw/openclaw.json -
把复制的会话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" ] } },
-
修改后按 Ctrl + O保存,再按 Ctrl + X退出。
步骤7:配对及验证操作
-
服务器端重新启动日志跟踪:
openclaw logs --follow -
飞书端:在群里 @机器人发消息(比如
@OpenClaw AI助手 你好),或私聊发消息 -
看日志:此时应该能看到新的日志输出(哪怕是报错,也说明消息推过来了)
-
飞书应该会出现要求配对的回复

-
在终端运行
openclaw pairing approve feishu 4PZ4GF7L
-
出现Approved表示配对成功
-
回到飞书,直接给OpenClaw AI助手发消息,等一会就有回复了

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

至次,大功告成!
第四步:更换大模型
在前文[OpenClaw 从零上手:大模型选择 + 聊天通道配置+ API Key申请全攻略]中,我们申请了NVIDIA的免费API Key,当时列出了能免费使用的大模型,我最开始选择的是moonshotai/kimi-k2.5,实际使用后发现反应很慢,后来我切换成了qwen/qwen3.5-397b-a17b,实测能够接受,毕竟还是免费白嫖。
我们来看看如何添加和切换大模型。
-
直接通过openclaw config进行操作
#终端输入 openclaw config一路回车来到模型选择界面设置

-
通过修改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 }, -
终极方法,既往上面的OpenClaw已经搞好了,完全可以让它自己完成,直接在飞书给它指令


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

总结
至此,我们已经完成了 OpenClaw 从 PVE 私有化部署、基础对话,到 Skills 技能扩展、飞书单聊与群聊配置、Gateway 网关调优、大模型自由切换,再到服务持久化与后台自启的全流程进阶实战。
坦白说,这个过程并不像网上许多教程描述的那样 “一键启动、小白秒会”。从权限报错、事件订阅缺失、群聊 @无响应,到技能匹配、模型兼容、免费大模型的速率与长度限制、收费模型的 token 消耗控制,再到配置文件之间的衔接、依赖版本、网络与内网环境的约束,每一步都可能遇到意想不到的问题。很多看似简单的功能,背后都藏着权限、接口、网关、日志、安全策略之间的精密配合。
但也正是在不断排错、调试、理解原理的过程中,我们才能真正掌握 OpenClaw 的运行逻辑,明白 AI 助手是如何接收消息、调用技能、执行工具、访问外部服务的。这些踩过的坑、解决过的错误,反而成为最扎实的经验,让我们从 “会用” 变成 “懂原理、能排错、可优化”。
最终,我们把一个仅能简单对话的模型,一步步打磨成具备自动化执行、工具调用、多通道接入、内网安全稳定、7×24 小时在线的私有化智能助理。这条路不算轻松,但每一步摸索,都是真正的成长。
如果有问题可以在评论区留言。