中文

在 Docker 版 OpenClaw 中安装并使用 ClawHub

本文记录了在 Docker 环境下运行的 OpenClaw 中,正确安装并使用 ClawHub 的全过程,并解释了常见权限问题、配置误区,以及自定义 Skill 与 ClawHub Skill 的正确安装方式。

适用场景:

  • OpenClaw 通过 Docker / Docker Compose 运行
  • 容器内用户为 node(非 root)
  • 希望使用 ClawHub 管理 Skills

一、ClawHub 是什么?和 OpenClaw 的关系

在 OpenClaw 体系中,三者角色不同:

组件作用
OpenClaw(服务)运行 Gateway / Agent / Provider
ClawHub技能市场与技能安装工具
Skill实际注入模型能力的规则或工具

关键结论:

ClawHub 不是 OpenClaw 的一部分
不需要、也不应该“把 ClawHub 安装进 OpenClaw”
只需要用 ClawHub 把 Skill 安装到 OpenClaw 会扫描的目录


二、进入 OpenClaw 运行容器

首先确认 OpenClaw 正在运行:

docker ps

找到 gateway 容器名,例如:

openclaw-openclaw-gateway-1

进入容器:

docker exec -it openclaw-openclaw-gateway-1 /bin/bash

进入后提示符通常为:

node@<container-id>:/app$

三、为什么 npm i -g clawhub 会失败?

直接执行:

npm i -g clawhub

通常会报错:

EACCES: permission denied, mkdir '/usr/local/lib/node_modules'

原因很简单:

  • Docker 镜像中默认用户是 node
  • node 用户没有权限写 /usr/local/lib
  • 全局 npm 安装会失败

这不是配置错误,而是容器安全设计


四、推荐方案:用户级全局安装 ClawHub(方案 2)

这是最稳定、最推荐的方式。

1️⃣ 配置 npm 的用户级全局目录

在容器中执行:

mkdir -p /home/node/.npm-global
npm config set prefix /home/node/.npm-global

将该目录加入 PATH:

echo 'export PATH=/home/node/.npm-global/bin:$PATH' >> /home/node/.bashrc
source /home/node/.bashrc

2️⃣ 安装 ClawHub

npm i -g clawhub

验证安装成功:

clawhub --help

如果能看到帮助信息,说明安装完成。


五、配置 ClawHub 的工作目录(非常重要)

OpenClaw 默认扫描的技能目录是:

/home/node/.openclaw/skills

因此需要告诉 ClawHub:
把技能安装到这里

export CLAWHUB_WORKDIR=/home/node/.openclaw

(可以写进 .bashrc 以便长期使用)


六、使用 ClawHub 安装技能

1️⃣ 搜索技能

clawhub search pdf
clawhub search ocr
clawhub search classify

2️⃣ 安装技能

假设技能 slug 为 <skill-slug>

clawhub install <skill-slug>

安装完成后,技能会出现在:

/home/node/.openclaw/skills/<skill-slug>/SKILL.md

3️⃣ 重启 OpenClaw Gateway(推荐)

docker restart openclaw-openclaw-gateway-1

七、自定义 Skill 是否也用 ClawHub?

不需要。

自定义 Skill 的正确做法是:

/home/node/.openclaw/skills/
└── your-skill-name/
    └── SKILL.md

只要目录结构正确,OpenClaw 会自动识别。

ClawHub 只用于:

  • 下载社区技能
  • 更新已有技能
  • 管理 skill registry

八、如何确认 Skill 已生效?

这版 OpenClaw 不会在日志中逐条打印 Skill 加载信息

正确判断方式是:

  • 在 Web / Telegram / Chat UI 中使用 Skill
  • 观察模型是否严格遵循 SKILL.md 中的输出约束

例如:

  • 强制 JSON 输出
  • 固定字段结构
  • 不再自由发挥

只要行为发生变化,就说明 Skill 已被注入。


九、常见误区总结

错误做法结果
在容器里 npm i -g clawhubEACCES 权限错误
配置 skillsDirOpenClaw 报 Unknown key
Skill 放在 /app 或项目根目录不会被加载
用旧式 skill.json + index.js当前版本不识别

十、结语

在当前版本的 OpenClaw 中:

  • Skill 是规则,不是插件
  • ClawHub 是安装器,不是运行时
  • 正确的目录结构比任何 CLI 都重要

一旦理解这一点,Skill 管理就会变得非常干净、可控。

滚动至顶部