本文向您介绍如何使用 clawhub CLI 管理您的 AI Skills:发布、安装、搜索、版本管理。
快速入门
TCR AI Skills 管理功能,让您可以在企业内部共享和复用 AI 能力单元(Skills)。支持记录和展示多种 Skill 类型(MCP Server、API Tool、Prompt Template、Agent),兼容 OpenClaw 生态。
说明:
本文档描述的功能由 TCR 服务端 + clawhub CLI 组合实现。TCR 提供 Skill 的存储、搜索、版本管理等服务端能力,clawhub 提供本地发布、安装等客户端能力。Skill 类型目前作为元数据记录和展示,平台暂未对不同类型提供差异化的运行时能力。
核心概念
概念 | 说明 |
clawhub | AI Skills 管理 CLI 工具,支持 Skill 的发布、安装、搜索。 |
SKILL.md | Skill 描述文件,定义 Skill 的名称、版本、类型、工具列表等元数据。 |
Skill 类型 | MCP Server、API Tool、Prompt Template、Agent(作为元数据记录)。 |
命名空间 | Skill 的逻辑分组,统一在内置的 skillhub 命名空间下。 |
5 分钟快速体验
# 1. 安装 clawhubnpm install -g clawhub# 2. 登录 TCR# tcr-prod.tencentcloudcr.com 需要替换成实际的访问域名。clawhub login --registry https://tcr-prod.tencentcloudcr.com --token $CLH_TOKEN# 3. 搜索 Skillsclawhub search "订单" --registry https://tcr-prod.tencentcloudcr.com# 4. 安装 Skillclawhub install order-query-mcp --registry https://tcr-prod.tencentcloudcr.com# 5. 或发布自己的 Skillclawhub publish ./my-skill --registry https://tcr-prod.tencentcloudcr.com --slug my-skill --version 1.0.0
安装 CLI 工具
使用 npm 安装(推荐)
npm install -g clawhub# 验证安装clawhub -V# 期望输出: ClawHub CLI v0.8.0
使用 yarn 安装
yarn global add clawhub# 验证安装clawhub -V
使用 pnpm 安装
pnpm add -g clawhub# 验证安装clawhub -V
登录 TCR 实例
获取访问凭证
1. 登录 容器镜像服务控制台,选择左侧导航栏中的访问凭证 > 用户级账号。
2. 获取或创建用户名和密码, 以 Base64(username:password) 编码并去掉最后的'=', 且前面拼接'clh_', 建议直接通过控制台获取登录指令。
设置环境变量(推荐)
# 设置 TCR 实例地址export CLAWHUB_REGISTRY="https://tcr-prod.tencentcloudcr.com"# 设置 clh_token(可直接从控制台AI Skills 页面获取),也可以自己构造:以 Base64(username:password) 编码,并去掉最后的'=', 前面拼接'clh_'前缀。username 和 password 是TCR实例用于docker login的凭证信息。# 构造 clh_token 等价的 shell 命令: echo "clh_$(printf '{username}:{password}' | base64 | tr -d '=')"export CLH_TOKEN="您的token内容"
登录命令
# 使用环境变量clawhub login --registry $CLAWHUB_REGISTRY --token $CLH_TOKEN# 或直接输入clawhub login --registry https://tcr-prod.tencentcloudcr.com --token "clh_xxx"# 期望输出# - Verifying token# ✔ OK. Logged in as @100012345678.
验证登录状态
clawhub whoami --registry $CLAWHUB_REGISTRY# 期望输出: ✔ 100012345678
登出
clawhub logout --registry $CLAWHUB_REGISTRY# 期望输出: Logged out.
发布 Skill 到 TCR
Step 1: 创建 Skill 目录结构
my-skill/├── SKILL.md # Skill 描述文件(必需)├── src/ # 源代码目录│ └── index.js # 主入口文件├── package.json # 依赖配置(Node.js 项目)└── README.md # 详细说明(可选)
Step 2: 编写 SKILL.md
---name: my-order-skilldescription: 查询订单状态、物流信息、退款进度version: 1.0.0skill_type: MCP Serverruntime: node18tags:- order- business- production-ready---# My Order Skill查询订单相关信息的 MCP Server。## Tools### get_order查询订单详情。**参数**:- `order_id` (string, required): 订单ID**返回**: 订单详情 JSON### get_logistics查询物流状态。**参数**:- `order_id` (string, required): 订单ID**返回**: 物流状态 JSON### get_return_status查询退换货信息。**参数**:- `order_id` (string, required): 订单ID- `type` (string, optional): 类型,可选值:return/exchange**返回**: 退换货状态 JSON
Step 3: 发布 Skill
# 进入 Skill 目录cd my-skill# 发布clawhub publish . \\--registry $CLAWHUB_REGISTRY \\--slug my-order-skill \\--version 1.0.0# 期望输出# - Preparing my-order-skill@1.0.0# ✔ OK. Published my-order-skill@1.0.0 (sha256:abc123...)
参数说明:
参数 | 说明 | 示例 |
. | Skill 目录路径 | . 或 ./my-skill |
--registry | TCR 实例地址 | https://tcr-prod.tencentcloudcr.com |
--slug | Skill 唯一标识(小写字母和连字符) | my-order-skill |
--version | 版本号(语义化版本) | 1.0.0 |
Step 4: 验证发布
# 查看发布的 Skillclawhub inspect my-order-skill --registry $CLAWHUB_REGISTRY# 在 explore 中查看clawhub explore --registry $CLAWHUB_REGISTRY --limit 5
发布新版本
# 更新 SKILL.md 中的 version 字段,然后发布clawhub publish . \\--registry $CLAWHUB_REGISTRY \\--slug my-order-skill \\--version 1.1.0
完整示例脚本
#!/bin/bash# publish-skill.sh - 发布 Skill 到 TCR 的完整脚本# 配置REGISTRY="https://tcr-prod.tencentcloudcr.com"SKILL_DIR="./my-skill"SKILL_SLUG="my-order-skill"VERSION="1.0.0"echo "📤 开始发布 Skill 到 TCR..."echo "Skill: $SKILL_SLUG@$VERSION"# 检查 SKILL.md 是否存在if [ ! -f "$SKILL_DIR/SKILL.md" ]; thenecho "❌ 错误: SKILL.md 文件不存在"exit 1fi# 发布clawhub publish $SKILL_DIR \\--registry $REGISTRY \\--slug $SKILL_SLUG \\--version $VERSIONif [ $? -eq 0 ]; thenecho "✅ 发布成功!"echo "安装命令: clawhub install $SKILL_SLUG --registry $REGISTRY"elseecho "❌ 发布失败"exit 1fi
从 TCR 安装 Skill
安装最新版本
clawhub install order-query-mcp --registry $CLAWHUB_REGISTRY# 期望输出# - Fetching order-query-mcp# ✔ OK. Installed order-query-mcp@2.1.0 to ./.clawhub/skills/order-query-mcp
安装指定版本
clawhub install order-query-mcp --version 1.0.0 --registry $CLAWHUB_REGISTRY
安装到指定目录
clawhub install order-query-mcp \\--registry $CLAWHUB_REGISTRY \\--output ./my-project/skills
查看已安装的 Skills
# 查看当前目录下安装的 Skillsls .clawhub/skills/# 查看 Skill 详情cat .clawhub/skills/order-query-mcp/SKILL.md
更新 Skill
clawhub update order-query-mcp --registry $CLAWHUB_REGISTRY
卸载 Skill
clawhub uninstall order-query-mcp
完整示例脚本
#!/bin/bash# install-skill.sh - 从 TCR 安装 Skill 的完整脚本# 配置REGISTRY="https://tcr-prod.tencentcloudcr.com"SKILL_NAME="order-query-mcp"OUTPUT_DIR="./.clawhub/skills"echo "📥 开始安装 Skill..."echo "Skill: $SKILL_NAME"# 安装clawhub install $SKILL_NAME \\--registry $REGISTRY \\--output $OUTPUT_DIRif [ $? -eq 0 ]; thenecho "✅ 安装成功!"echo "Skill 目录: $OUTPUT_DIR/$SKILL_NAME"ls -la "$OUTPUT_DIR/$SKILL_NAME"elseecho "❌ 安装失败"exit 1fi
搜索和发现 Skills
浏览最新 Skills
clawhub explore --registry $CLAWHUB_REGISTRY --limit 10# 输出示例# - Fetching latest skills# my-order-skill v1.1.0 1h ago 查询订单状态、物流信息、退款进度# wecom-notifier v1.3.0 2h ago 企业微信消息通知工具# mysql-query-tool v1.0.0 3h ago 安全的 MySQL 数据库查询工具
搜索 Skills
# 按关键词搜索clawhub search "订单" --registry $CLAWHUB_REGISTRY# 输出示例# - Searching# my-order-skill v1.1.0 my-order-skill (1.000)# order-tracker v1.0.0 order-tracker (0.850)# 搜索特定类型clawhub search "kubernetes" --registry $CLAWHUB_REGISTRY
查看 Skill 详情
clawhub inspect order-query-mcp --registry $CLAWHUB_REGISTRY# 输出示例# Name: order-query-mcp# Version: 2.1.0# Type: MCP Server# Description: 查询订单详情、物流状态和退换货信息# Tags: order, business, production-ready# Tools: get_order, get_logistics, get_return_status
查看 Skill 所有版本
clawhub versions order-query-mcp --registry $CLAWHUB_REGISTRY# 输出示例# v2.1.0 2026-03-15 Latest# v2.0.0 2026-03-10# v1.1.0 2026-02-20# v1.0.0 2026-02-01
SKILL.md 编写指南
基本结构
SKILL.md 使用 YAML frontmatter + Markdown 格式:
说明:
关于 Tools 字段:SKILL.md 中声明的 Tools 是 Skill 的元数据信息,用于描述该 Skill 提供哪些工具。这些信息会被 TCR 存储和展示,但 TCR 平台本身不会执行这些工具,工具的实际执行由 Skill 运行时环境(如 AI Agent)负责。
---# YAML Frontmatter(必需字段)name: skill-namedescription: Skill 的简短描述version: 1.0.0skill_type: MCP Serverruntime: node18tags:- tag1- tag2---# Skill 标题详细说明(Markdown 格式)## Tools工具列表和说明
必需字段
字段 | 说明 | 示例 |
name | Skill 名称 | order-query-mcp |
description | 简短描述 | 查询订单状态和物流信息 |
version | 语义化版本号 | 1.0.0 |
skill_type | Skill 类型 | MCP Server |
runtime | 运行时环境 | node18、python3.11 |
tags | 标签列表 | [order, business] |
Skill 类型
注意:
Skill 类型目前作为元数据记录和展示,平台暂未对不同类型提供差异化的运行时处理能力。
类型 | 说明 | 典型用途 |
MCP Server | Model Context Protocol 服务器 | AI Agent 工具集成 |
API Tool | HTTP API 封装 | 调用外部服务 |
Prompt Template | 提示词模板 | 标准化 AI 交互 |
Agent | 完整的 AI Agent | 复杂任务处理 |
运行时选项
Node.js:
node16、node18、node20Python:
python3.9、python3.10、python3.11Go:
go1.20、go1.21完整 SKILL.md 示例
---name: wecom-notifierdescription: 企业微信消息通知工具,支持文本、Markdown、图片和文件消息version: 1.3.0skill_type: MCP Serverruntime: node18tags:- notification- wecom- production-readyauthor: dev-teamlicense: MITrepository: https://github.com/example/wecom-notifier---# 企业微信通知 Skill向企业微信群聊或个人发送消息通知。## 前置条件1. 创建企业微信机器人2. 获取 Webhook URL3. 配置环境变量 `WECOM_WEBHOOK_URL`## Tools### send_text发送文本消息。**参数**:- `content` (string, required): 消息内容- `mentioned_list` (array, optional): @成员列表**示例**:```json{"content": "部署完成","mentioned_list": ["@all"]}
send_markdown
发送 Markdown 格式消息。
参数:
content (string, required): Markdown 内容示例:
{"content": "## 部署通知\\n- 环境: prod\\n- 状态: **成功**"}
send_file
发送文件。
参数:
media_id (string, required): 文件 media_id(需先上传)配置
环境变量配置:
变量 | 说明 | 必需 |
WECOM_WEBHOOK_URL | 机器人 Webhook URL | 是 |
WECOM_MENTIONED_MOBILE_LIST | 默认@的手机号列表 | 否 |
使用示例
// 在 AI Agent 中使用const result = await mcp.call('send_text', {content: '任务执行完成',mentioned_list: ['user1', 'user2']});
常用命令速查
操作 | 命令 |
安装 CLI | npm install -g clawhub |
登录 | clawhub login --registry $REGISTRY --token $TOKEN |
登出 | clawhub logout --registry $REGISTRY |
查看登录状态 | clawhub whoami --registry $REGISTRY |
浏览 Skills | clawhub explore --registry $REGISTRY --limit 10 |
搜索 | clawhub search "关键词" --registry $REGISTRY |
查看详情 | clawhub inspect SKILL_NAME --registry $REGISTRY |
查看版本 | clawhub versions SKILL_NAME --registry $REGISTRY |
发布 | clawhub publish . --registry $REGISTRY --slug NAME --version VER |
安装 | clawhub install SKILL_NAME --registry $REGISTRY |
安装指定版本 | clawhub install SKILL_NAME@VERSION --registry $REGISTRY |
更新 | clawhub update SKILL_NAME --registry $REGISTRY |
卸载 | clawhub uninstall SKILL_NAME |
常见问题
Q1: 登录失败,提示 "Invalid token"
可能原因:
1. Token 格式不正确(应以
clh_ 开头)。2. Token 已过期。
3. Registry 地址错误。
解决方案:
# 检查 token 格式echo $CLH_TOKEN | head -c 4# 应该输出: clh_# 检查 registry 地址echo $CLAWHUB_REGISTRY# 应该是 https:// 开头的完整 URL# 重新登录clawhub logout --registry $CLAWHUB_REGISTRYclawhub login --registry $CLAWHUB_REGISTRY --token $CLH_TOKEN
Q2: 发布失败,提示 "SKILL.md not found"
可能原因:当前目录没有 SKILL.md 文件。
解决方案:
# 检查文件是否存在ls -la SKILL.md# 如果不存在,创建一个cat > SKILL.md << 'EOF'---name: my-skilldescription: My skill descriptionversion: 1.0.0skill_type: MCP Serverruntime: node18tags:- example---# My SkillDescription here.EOF
Q3: 安装的 Skill 在哪里?
默认安装到当前目录的
.clawhub/skills/ 下:ls -la .clawhub/skills/# order-query-mcp/# wecom-notifier/
Q4: 如何在 AI Agent 中使用安装的 Skill?
根据 Skill 类型不同,使用方式也不同:
MCP Server:
{"mcpServers": {"order-query": {"command": "node","args": ["./.clawhub/skills/order-query-mcp/src/index.js"]}}}
Prompt Template:
# 直接引用 SKILL.md 中的 prompt 内容
Q5: 如何更新所有已安装的 Skills?
# 目前需要逐个更新clawhub update skill1 --registry $CLAWHUB_REGISTRYclawhub update skill2 --registry $CLAWHUB_REGISTRY
Q6: 发布的 Skill 如何删除?
目前不支持从 CLI 删除已发布的 Skill,请联系管理员或通过控制台操作。
能力边界说明
当前已实现能力
能力 | 状态 | 说明 |
Skill 发布 / 安装 | 已实现 | 通过 clawhub CLI + TCR 服务端组合实现。 |
Skill 搜索 / 发现 | 已实现 | 支持关键词搜索和浏览。 |
Skill 版本管理 | 已实现 | 支持多版本和版本列表查询。 |
Skill 详情查询 | 已实现 | 返回名称、描述、类型、标签等元数据。 |
clh_ token 认证 | 已实现 | Skills API 专用认证体系。 |
Skill 删除 | 已实现 | 支持整个 Skill 或单版本删除(服务端)。 |
元数据字段说明
字段 | 性质 | 说明 |
skill_type | 元数据 | 仅用于分类展示,平台暂未提供类型差异化处理。 |
tools | 元数据 | 仅表示 Skill 声明的工具列表,TCR 不执行这些工具。 |
permissions | 元数据 | 仅表示 Skill 声明所需权限,TCR 不强制校验或自动授权。 |
注意:
本文档仅描述当前已实现且经过验证的能力。CLI 体验依赖 clawhub 与 TCR 的集成链路,具体行为以实际 CLI 版本为准。
相关文档
MCP 协议文档