Gateway 已常驻、频道也接好了,却在对话里发现 Agent「不会用新工具」——多半不是模型问题,而是 Skills 根本没装进正确的目录。2026 年 OpenClaw 2026.5.x 把 Skills 加载、ClawHub 社区安装与私有 zip 上传拆成清晰路径:Plugins 管频道与 Gateway 扩展,Skills 管带 SKILL.md 的能力包,二者目录、配置键与排障手法完全不同。本文面向已在 远程 Mac mini M4 Pro 跑通首跑闭环的进阶用户,先拆六大痛点,再给 Skills / Plugins 决策矩阵与内置技能启用表,随后给出 ClawHub 安装、skills.install.allowUploadedArchives 私有包上传与十二步跟做清单,并整理 ~/.openclaw/skills 磁盘分层、六地节点选型与报错对照矩阵。命令与配置字段以 OpenClaw 官方文档为准,发版后请重新打开链接核对。价格见 定价页,下单见 订购页,远程会话见 帮助中心;可与 外部插件 npm 篇、多 Workspace 篇、首跑闭环篇 交叉阅读。
[ SECTION_01 ] // PAIN_MAP Skills 安装时最常见的翻车点有哪些
- 把 Skills 当 Plugins 装:在
~/.openclaw/npm或全局 npm 里找技能包,Gateway 日志却报 skill not found——通道插件与 Agent 技能是两套目录树。 - 装进了 Workspace 却期望全局生效:
openclaw skills install默认写入当前活跃 Workspace 的skills/,未加--global时其它 Agent 看不到。 - ClawHub slug 与目录名不一致:安装后文件夹名与
skills.entries配置键对不上,enabled: false或 allowlist 会把技能静默屏蔽。 - 私有 zip 未开 allowUploadedArchives:已通过
skills.upload.*staging 完成,skills.install仍拒绝 upload 模式,表现为「上传成功、安装被拒」。 - 符号链接越界被跳过:Workspace 下
skills/manager链到外部仓库时,未配置load.allowSymlinkTargets,日志出现Skipping escaped skill path。 - 磁盘全堆系统卷:ClawHub 缓存、
~/.openclaw/skills与 Gateway 日志同卷,256GB 远程 Mac 在批量安装后 APFS 水位告警,watch 刷新失败被误判为「技能损坏」。 - Agent allowlist 误伤:
agents.list[].skills写死白名单后,新装的社区技能不会自动出现,团队以为 ClawHub 坏了。
[ SECTION_02 ] // ROUTE_MATRIX Skills 与 Plugins 边界:内置技能与安装路径怎么选
立项前先冻结「这是频道扩展还是 Agent 能力包」。下列矩阵把 2026.5.x 常见路径放在同一张表里,避免返工。
| 维度 | Skills(技能包) | Plugins(插件 / 通道) |
|---|---|---|
| 核心载体 | 含 SKILL.md 的文件夹 |
npm 包或 ClawHub 通道扩展 |
| 典型用途 | 工具调用、工作流、领域知识注入 Agent | Telegram、Discord、微信 ClawBot 等 IM 入口 |
| 默认安装根 | Workspace skills/ 或 ~/.openclaw/skills |
~/.openclaw/npm/node_modules |
| CLI 入口 | openclaw skills install / clawhub install |
openclaw plugin install / npm 到插件根 |
| 配置域 | skills.*、agents.*.skills |
plugins.*、通道 manifest |
| 私有交付 | zip + skills.upload.*(需显式开启) |
私有 npm registry 或手动 stage 目录 |
2026.5.x Skills 模型变化(前置检查):加载 precedence 固定为 Workspace /skills → 项目 /.agents/skills → ~/.agents/skills → 托管 ~/.openclaw/skills → 内置 bundled → skills.load.extraDirs。同名技能先扫描到的优先,因此生产环境应约定「全局技能放 ~/.openclaw/skills、项目定制放 Workspace」,避免覆盖顺序失控。Watcher 默认开启(load.watch: true,debounce 250ms),改完 SKILL.md 通常下一 Agent turn 即生效,无需重启 Gateway;若你在远程 Mac 上关闭了 watch,需手动触发会话刷新。
| 技能族 | 典型场景 | 启用建议 | 配置要点 |
|---|---|---|---|
| gemini / image-lab | 图像生成与编辑工作流 | 需要 Gemini 或 fal 时启用 | skills.entries.*.apiKey 或 GEMINI_API_KEY |
| peekaboo | 屏幕/UI 自动化探测 | macOS 远程调试场景可选 | allowBundled 白名单或 enabled: true |
| github | 仓库 Issue / PR 操作 | 研发 Agent 默认开 | Token 走 skills.entries.github.env |
| weather | 轻量信息查询演示 | PoC 可开,生产按 allowlist 收窄 | agents.defaults.skills 控制可见性 |
| sag 等实验技能 | 非默认工作流 | 默认 enabled: false 更安全 |
用 allowBundled 限制 bundled 面 |
Skills 解决的是「Agent 会什么」;Plugins 解决的是「用户从哪发消息」。混目录排查,平均多花四十分钟 grep 日志。
[ SECTION_03 ] // INSTALL_RUNBOOK ClawHub 社区技能、私有 zip 上传与十二步跟做闭环
下列步骤综合 OpenClaw 官方 Skills 文档、Gateway 协议与 ClawHub 公开 registry 说明整理;若上游更新 CLI 子命令,请以链接为准。
https://docs.openclaw.ai/tools/skills-config
https://github.com/openclaw/openclaw/blob/main/docs/tools/skills.md
https://github.com/openclaw/openclaw/blob/main/docs/gateway/protocol.md
- 确认 Gateway 与版本基线:在远程 Mac 上执行
openclaw --version,建议对齐 2026.5.2+;用openclaw doctor排除 Node 与端口 18789 问题,参见 首跑篇。 - 备份 openclaw.json:变更
skills.*前先复制~/.openclaw/openclaw.json与时间戳快照,便于 allowlist 误配时秒级回滚。 - 选定安装作用域:单项目定制用 Workspace
skills/;多 Agent 共享用openclaw skills install --global写入~/.openclaw/skills。 - ClawHub 搜索与钉版本:在 registry 或 CLI 确认 slug 与
--version;生产建议显式钉版本而非永远latest。 - 执行 ClawHub 安装:见下方终端块;安装后
ls目标目录确认存在SKILL.md。 - 配置 entries 与密钥:在
skills.entries.<name>写入enabled、env、apiKey;sandbox 会话需另行配置 Docker env,见官方 Skills config 说明。 - 核对 Agent allowlist:若设置了
agents.list[].skills,把新 slug 加入该 Agent 白名单,或暂时移除白名单做冒烟。 - 私有 zip 开启开关(仅内网交付时需要):在
openclaw.json设skills.install.allowUploadedArchives: true;正常 ClawHub 安装不需要此开关。 - staging 私有包:受信
operator.admin客户端依次调用skills.upload.begin、skills.upload.chunk、skills.upload.commit;zip 根目录须含SKILL.md,内部文件夹名不决定安装目标。 - upload 模式安装:
skills.install({ source: "upload", uploadId, slug, force? }),slug 须与 begin 时一致;commit 只 finalize 上传,不自动安装。 - 会话冒烟:在新会话发送会触发该技能的指令,观察 Gateway 日志是否加载 snapshot;失败时先查 precedence 是否被 Workspace 同名目录覆盖。
- 写入运维台账:记录 slug、版本、安装根(Workspace / global)、
allowUploadedArchives状态、磁盘占用基线与回滚命令(删除目录 + 恢复 json 快照)。
$ openclaw skills install weather --version 1.2.0
$ openclaw skills install github --global
$ clawhub install docs-search --workdir ~/.openclaw/workspace/acme
$ openclaw skills list --json | jq '.[].name'
{
"skills": {
"install": {
"allowUploadedArchives": true,
"nodeManager": "npm",
"preferBrew": true
},
"load": {
"watch": true,
"watchDebounceMs": 250,
"extraDirs": ["~/Projects/oss/skill-pack/skills"]
},
"entries": {
"weather": { "enabled": true },
"internal-ops": {
"enabled": true,
"env": { "OPS_TOKEN": "from-vault" }
}
}
},
"agents": {
"defaults": { "skills": ["github", "weather"] }
}
}
[ SECTION_04 ] // LIMITS_AND_OPS 远程 Mac 上 ~/.openclaw/skills 磁盘分层与 watch 运维注意
Skills 安装比 Plugins 更「静默」:目录不大,但 ClawHub 缓存、Git 技能 clone 与 skills.load.extraDirs symlink 布局会在 256GB 机型上与其他 OpenClaw 子树争用系统卷。推荐在远程 Mac M4 / M4 Pro 上采用三层分盘:
- 系统卷(不可动):仅保留
openclaw.json、LaunchAgent plist 与轻量状态;避免把大量社区技能直接堆在默认 home。 - 数据卷 A — 托管技能:
~/.openclaw/skills链到独立 APFS 卷或/Volumes/openclaw-data/skills,供--global安装与 ClawHub 缓存。 - 数据卷 B — Workspace 技能:各项目
<workspace>/skills与skills.load.extraDirs指向客户仓库,用allowSymlinkTargets精确放行,禁止宽到~/Projects整树。 - 日志与 watch:Gateway 日志单独轮转;watch 高峰时 debounce 250ms 内多次保存会触发重复 snapshot,磁盘 IO 斜率异常时先查 watch 而非 skill 内容。
- M4 vs M4 Pro:Skills 本身 CPU 占用低于并发频道插件;当单节点 >15 个 Git 技能且同时开 peekaboo 类 UI 技能时,建议升 M4 Pro 并扩至 512GB,参见 磁盘与守护进程篇。
- 多 Workspace 隔离:与 多项目篇 一致——共享
~/.openclaw/skills时,Workspace 级技能仍应用--workspace显式安装,避免 A 项目覆盖 B 项目同名 slug。
小团队真实案例:三人工作室在新加坡节点跑 OpenClaw,先用 ClawHub 装了 8 个公开技能在 Workspace,又把 2 个内部 zip 走 upload 路径;未分盘时系统卷 256GB 在两周内剩 11GB,watch 刷新超时。迁出 ~/.openclaw/skills 到独立 128GB 卷、关闭非必要 bundled 后,Gateway 探针恢复稳定,内部技能升级窗口从「不敢动」变成「按 slug 回滚」。
[ SECTION_05 ] // HARD_FACTS 可引用参数与 Skills 安装报错对照
- 加载 precedence:Workspace
/skills→/.agents/skills→~/.agents/skills→~/.openclaw/skills→ bundled →extraDirs(来源:Skills config 官方文档) - allowUploadedArchives 默认:
false;仅影响 upload 模式私有 zip,不影响 ClawHub 正常安装(来源:同上及 Gateway protocol) - watch debounce:默认 250ms;生产大批量同步技能包时可临时调大,降低 snapshot 风暴(来源:Skills config)
- install.nodeManager:默认
npm,可选 pnpm / yarn / bun;Gateway 运行时仍应 Node,Bun 不推荐用于 WhatsApp/Telegram 通道(来源:Skills 文档) - Gateway 端口惯例:调试与探针仍常围绕 18789;Skills 变更不重启 Gateway,但 upload 安装需 admin 客户端连上同一 Gateway(来源:openclaw README)
| 表面症状 | 优先怀疑 | 最小验证动作 |
|---|---|---|
| ClawHub 装完 Agent 仍不会 | 装错 Workspace / 未 --global | openclaw skills list;核对活跃 Workspace 路径 |
| upload 安装被拒 | allowUploadedArchives 为 false |
检查 json;确认 operator.admin 权限 |
| 日志 Skipping escaped skill path | symlink 越界 | 配置 load.allowSymlinkTargets 或改为 extraDirs |
| bundled 技能消失 | allowBundled 白名单过窄 |
放宽 allowlist 或 entries.*.enabled |
| sandbox 里 apiKey not configured | host env 未注入容器 | 配置 sandbox.docker.env 或自定义镜像 |
| 改 SKILL.md 不生效 | watch 关闭或同名被高优先级覆盖 | 查 precedence;开新会话;load.watch |
[ SECTION_06 ] // PLATFORM_CLOSE 六地节点选型与为什么 Skills 生产更适合 7×24 远程 Mac
Skills 安装本身可在笔记本完成,但持续加载、watch 与 ClawHub 同步依赖 Gateway 宿主 7×24 在线。个人 Mac 合盖后,远程同事刚装好的技能在次日会话里「时有时无」,根因是宿主睡眠而非 skill 内容。虚拟化 VPS 虽常在线,对 macOS 原生 brew 安装器、peekaboo 类 UI 技能与 OpenClaw Node 工具链的贴合度往往不如裸金属 Mac mini。
六地节点选型(Skills 视角):① 新加坡 / 香港——大陆团队 SSH 与 ClawHub 拉取 RTT 较低,适合作为默认技能 staging 节点;② 东京 / 首尔——日韩客户数据 residency 要求时,把 ~/.openclaw/skills 与 Workspace 同区存放;③ 美东 / 美西——对接 GitHub、OpenAI 等美区 API 回程更稳,适合研发 Agent 密集更新 Git 技能;④ 跨区迁移时须打包 skills/ 子树与 json 快照,勿只 rsync 配置。更多区域对照见 六地租期矩阵篇。
若你需要在六地节点中选延迟与租期组合,或从 M4 升级到 M4 Pro 以承载更多全局技能与频道插件并存,可在 NOVAKVM 定价页 对照梯度,在 订购页 拉起试验机跑满两个迭代周期。对要把 ClawHub 社区技能、私有 zip 与 iOS CI 放在同一运维边界的工作室而言,NOVAKVM 的 Mac Mini 云端裸金属租赁通常比凑合家用电脑或混用虚拟化节点更适合承接生产形 OpenClaw Skills。更多远程连接与备份策略见 帮助中心;Gateway 健康与插件通道进阶见 2026.5.x 生产落地篇。