mirror of
https://github.com/iflytek/skillhub.git
synced 2026-08-27 11:14:59 +00:00
9.8 KiB
9.8 KiB
OpenClaw 集成指南
本文档说明如何配置 OpenClaw CLI 连接到 SkillHub 私有注册中心,实现技能的发布、搜索和下载。
不仅适用于 Openclaw,通过指定安装目录,可适用于其他的 CLI Coding Agent (Claude Code、OpenCode、Qcoder等) 或者 Agent 助手(Nanobot、CoPaw等)。
概述
SkillHub 提供了与 ClawHub 兼容的 API 层,使得 OpenClaw CLI 可以无缝对接私有注册中心。通过简单的配置,您可以:
- 🔍 搜索组织内的私有技能
- 📥 下载和安装技能包
- 📤 发布新技能到私有注册中心
- ⭐ 收藏和评分技能
快速开始
1. 配置 Registry 地址
在 OpenClaw 配置文件中设置 SkillHub 注册中心地址:
# 通过环境变量配置(临时)
export CLAWHUB_REGISTRY=https://skillhub.your-company.com
2. 登录认证(可选)
对于全局命名空间(@global)的公开技能(PUBLIC),无需登录即可下载。对于以下情况需要认证:
- 团队命名空间的技能(无论可见性)
- NAMESPACE_ONLY 或 PRIVATE 技能
- 发布、收藏等写操作
# 使用 API Token 登录
npx clawhub login --token YOUR_API_TOKEN
# 如果使用 npm i -g clawhub 安装过 clawhub,文档中所有的 npx clawhub 命令都可以直接使用 clawhub 命令来执行
# 查看当前登录用户
npx clawhub whoami
# 退出当前用户登录
npx clawhub logout
# 查看帮助
npx clawhub --help
获取 API Token
- 登录 SkillHub Web UI
- 进入 个人设置 → API Tokens
- 点击 创建新 Token
- 设置 Token 名称和权限范围
- 复制生成的 Token
3. 搜索/浏览/查看技能
# 搜索,显示所有相关技能
npx clawhub search <skill-name>
# 搜索,结果显示前 5 个结果
npx clawhub search <skill-name> --limit 5
# 显示 skill 详情
npx clawhub inspect <skill-name>
# 浏览最新技能
npx clawhub explore
npx clawhub explore --limit 20 # 前20个
# 示例
npx clawhub search find-skills
npx clawhub search find-skills --limit 5
npx clawhub inspect find-skills
# 使用帮助
npx clawhub search --help
npx clawhub inspect --help
4. 安装/更新/卸载技能
# 安装
npx clawhub install <skill-name>
npx clawhub install <skill-name> --version <version number> # 指定版本
npx clawhub install <skill-name> --force # 覆盖已有
npx clawhub --dir <install-path> install <skill-name> # 指定目录
# 更新
npx clawhub update <skill-name>
npx clawhub update --all
# 卸载
npx clawhub uninstall <skill-name>
# 查看已安装 skills
npx clawhub list
# Claude Code 安装 Skill 示例
npx clawhub --dir ~/.claude/skills install find-skills
CLAWHUB_WORKDIR=~/.claude/skills npx clawhub install find-skills
# 使用帮助
npx clawhub install --help
npx clawhub update --help
npx clawhub uninstall --help
npx clawhub list --help
5. 发布技能
# 发布到 global 空间(需要相应权限)
npx clawhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.0.0
# 发布到如 my-space 这样的团队空间
npx clawhub publish ./my-skill --slug my-space--my-skill --name "My Skill" --version 1.0.0
npx clawhub sync --all # 上传当前文件夹中所有的 skill
# 使用帮助
npx clawhub publish --help
npx clawhub sync --help
说明:
my-space--my-skill是兼容层 canonical slug,SkillHub 会将其解析为 namespacemy-space和 skill slugmy-skill- 为避免 CLI 展示与服务端最终坐标不一致,建议让
SKILL.md中的name与 canonical slug 后半段保持一致
API 端点说明
SkillHub 兼容层提供以下端点:
| 端点 | 方法 | 说明 | 认证要求 |
|---|---|---|---|
/api/v1/whoami |
GET | 获取当前用户信息 | 必需 |
/api/v1/search |
GET | 搜索技能 | 可选 |
/api/v1/resolve |
GET | 解析技能版本 | 可选 |
/api/v1/download/{slug} |
GET | 下载技能(重定向) | 可选* |
/api/v1/download |
GET | 下载技能(查询参数) | 可选* |
/api/v1/skills/{slug} |
GET | 获取技能详情 | 可选 |
/api/v1/skills/{slug}/star |
POST | 收藏技能 | 必需 |
/api/v1/skills/{slug}/unstar |
DELETE | 取消收藏 | 必需 |
/api/v1/publish |
POST | 发布技能 | 必需 |
说明:
- 兼容层对外继续使用 “latest” 语义,但这里严格指向“最新已发布版本”
- 兼容层内部实现应从统一 lifecycle projection 的
publishedVersion映射,而不是自行推导“当前版本”
* 下载端点认证要求:
- 全局命名空间(@global)的 PUBLIC 技能:无需认证
- 团队命名空间的所有技能:需要认证
- NAMESPACE_ONLY 和 PRIVATE 技能:需要认证
技能可见性说明
SkillHub 支持三种技能可见性级别,下载权限规则如下:
PUBLIC(公开)
- ✅ 任何人都可以搜索和查看
- ✅ 全局命名空间(@global):无需登录即可下载
- 🔒 团队命名空间:需要登录认证才能下载
- 📍 适用于组织内通用的、可公开分享的技能
NAMESPACE_ONLY(命名空间内可见)
- ✅ 命名空间成员可以搜索和查看
- 🔒 需要登录且是命名空间成员才能下载
- 📍 适用于团队内部技能
PRIVATE(私有)
- ✅ 仅所有者可以查看
- 🔒 需要登录且是所有者才能下载
- 📍 适用于个人开发中的技能
重要说明:
- 全局命名空间(
@global)的 PUBLIC 技能支持匿名下载,便于组织内广泛分发 - 团队命名空间的所有技能(包括 PUBLIC)都需要认证,确保团队边界安全
Canonical Slug 映射规则
SkillHub 内部使用 @{namespace}/{skill} 格式,但兼容层会自动转换为 ClawHub 风格的 canonical slug:
| SkillHub 内部坐标 | Canonical Slug | 说明 |
|---|---|---|
@global/my-skill |
my-skill |
全局命名空间技能 |
@my-team/my-skill |
my-team--my-skill |
团队命名空间技能 |
OpenClaw CLI 使用 canonical slug 格式,SkillHub 会自动处理转换。
配置示例
ClawHub CLI 环境变量配置
ClawHub CLI 通过环境变量配置:
# Registry 配置
export CLAWHUB_REGISTRY=https://skillhub.your-company.com
# 如需认证,先登录一次
clawhub login --token sk_your_api_token_here
环境变量配置
# Registry 配置
export CLAWHUB_REGISTRY=https://skillhub.your-company.com
# 可选:登录后再执行需要认证的命令
clawhub login --token sk_your_api_token_here
常见问题
Q: 如何切换回公共 ClawHub?
# 取消设置自定义 Registry
unset CLAWHUB_REGISTRY
# ClawHub CLI 将使用默认的公共注册中心
Q: 下载技能时提示 403 Forbidden?
可能原因:
- 技能属于团队命名空间,需要登录
- 技能是 NAMESPACE_ONLY 或 PRIVATE,需要登录
- 您不是该命名空间的成员
- API Token 已过期
解决方法:
# 设置新的 Token 并重新登录
clawhub login --token YOUR_NEW_TOKEN
# 测试连接
curl https://skillhub.your-company.com/api/v1/whoami \
-H "Authorization: Bearer YOUR_NEW_TOKEN"
提示:全局命名空间(@global)的 PUBLIC 技能可以匿名下载,无需认证。
Q: 如何查看我有权访问的所有技能?
# 搜索所有技能(会根据权限过滤)
npx clawhub search ""
Q: 发布技能时提示权限不足?
- 发布到全局命名空间(
@global)需要SUPER_ADMIN权限 - 发布到团队命名空间需要是该命名空间的 OWNER 或 ADMIN
- 联系管理员分配相应权限
Q: 支持哪些 OpenClaw 版本?
SkillHub 兼容层设计兼容使用 ClawHub CLI 的工具。ClawHub CLI 通过 npm 分发:
# 安装 ClawHub CLI
npm install -g clawhub
# 或使用 npx 直接运行
npx clawhub install my-skill
如遇到兼容性问题,请提交 Issue。
API 响应格式
搜索响应示例
{
"results": [
{
"slug": "my-team--email-sender",
"name": "Email Sender",
"description": "Send emails via SMTP",
"author": {
"handle": "user123",
"displayName": "John Doe"
},
"version": "1.2.0",
"downloadCount": 150,
"starCount": 25,
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-03-10T14:30:00Z"
}
],
"total": 1,
"page": 1,
"limit": 20
}
版本解析响应示例
{
"slug": "my-skill",
"version": "1.2.0",
"downloadUrl": "/api/v1/skills/global/my-skill/versions/1.2.0/download"
}
发布响应示例
{
"id": "12345",
"version": {
"id": "67890"
}
}
安全建议
- 使用 HTTPS:生产环境务必使用 HTTPS 连接
- Token 管理:
- 定期轮换 API Token
- 不要在代码中硬编码 Token
- 使用环境变量或密钥管理工具
- 权限最小化:为 Token 分配最小必需权限
- 审计日志:定期检查 SkillHub 审计日志
故障排查
启用调试日志
# 查看详细请求日志
DEBUG=clawhub:* npx clawhub search my-skill
# 或使用 verbose 模式
npx clawhub --verbose install my-skill
测试连接
# 测试 Registry 连接
curl https://skillhub.your-company.com/api/v1/whoami \
-H "Authorization: Bearer YOUR_TOKEN"
# 测试搜索
curl "https://skillhub.your-company.com/api/v1/search?q=test"
进一步阅读
支持
如有问题或建议:
- 📖 查看完整文档:https://zread.ai/iflytek/skillhub
- 💬 GitHub Discussions:https://github.com/iflytek/skillhub/discussions
- 🐛 提交 Issue:https://github.com/iflytek/skillhub/issues