ClawHub
Skills发布
Agent市场
OpenClaw教程
版本管理
🎬 开篇:你的第一个Skill,发布了吗?
凌晨5点23分,我按下了"发布"按钮。
3秒钟后,我的第一个Agent Skills出现在ClawHub市场——那一刻的感觉,比第一次写"Hello World"还奇妙。
但你知道吗?发布前的路上,我踩的坑够写一本《Skills发布血泪史》。metadata格式不对?打回。缺少README?打回。没加权限声明?打回——而且每次都得等2小时审核。
今天就把它一次理清楚:从开发到上架ClawHub的全流程。
📖 ClawHub 发布流程全景
阶段1:准备你的Skill
发布前,确保你的Skill目录包含以下文件:
my-awesome-skill/
├── openclaw.json # Skill元数据(必填)
├── index.js # 主逻辑文件(必填)
├── package.json # 依赖声明(可选,但推荐)
├── README.md # 说明文档(强烈推荐)
├── icon.png # 图标(推荐 512x512)
├── screenshots/ # 截图(推荐,展示功能)
│ ├── demo-1.png
│ └── demo-2.png
└── tests/ # 测试文件(可选,加分项)
└── test.js
阶段2:配置 openclaw.json
这是你的Skill"身份证",审核员第一眼看的就是它:
{
"name": "my-awesome-skill",
"version": "1.0.0",
"displayName": "我的超棒Skill", // 展示名称,支持中文
"description": "用中文写清楚这个Skill做什么",
"longDescription": "更详细的说明,支持Markdown…",
"author": {
"name": "YourName",
"email": "your@email.com",
"url": "https://miaoquai.com"
},
"runtime": "node",
"main": "index.js",
"permissions": [
"web_search",
"web_fetch"
],
"categories": ["productivity", "data-fetching"],
"homepage": "https://github.com/yourname/awesome-skill",
"license": "MIT",
"keywords": ["ai agent", "productivity"],
"tags": ["工具", "数据抓取"],
"minOpenClawVersion": "2026.4.0"
}
⚠️ 审核高拒原因 Top 3:
1. 权限过大:声明了不需要的权限(如只做文本处理却申请了browser权限)
2. 描述模糊:description 太短或不清晰,审核员看不懂你的Skill干什么
3. 缺少反馈机制:没有留联系方式,出问题审核找不到人
1. 权限过大:声明了不需要的权限(如只做文本处理却申请了browser权限)
2. 描述模糊:description 太短或不清晰,审核员看不懂你的Skill干什么
3. 缺少反馈机制:没有留联系方式,出问题审核找不到人
阶段3:本地测试
# 1. 初始化OpenClaw环境 openclaw init # 2. 安装依赖 cd my-awesome-skill && npm install # 3. 本地运行测试 openclaw skills run my-awesome-skill --test # 4. 权限验证 openclaw skills check-permissions my-awesome-skill # 5. 打包预览 openclaw skills pack my-awesome-skill --dry-run
阶段4:打包提交
# 打包Skill openclaw skills pack my-awesome-skill -o ./dist/ # 输出: ./dist/my-awesome-skill-1.0.0.ocskill # 提交审核 openclaw skills submit \ --package ./dist/my-awesome-skill-1.0.0.ocskill \ --notes "首次提交,包含核心功能" # 查看审核状态 openclaw skills status --submission=abc123
💡 提示:
ocskill 包是OpenClaw Skill的标准分发格式,本质是zip压缩包。你可以用 unzip 打开看看里面是什么。
✅ 发布检查清单
提交前,逐项检查:
[ ] openclaw.json 格式正确(用 `jq .` 验证) [ ] version 符合 semver 规范(1.0.0, 1.0.1, 2.0.0) [ ] permissions 声明了所有需要的工具 [ ] permissions 没有声明不需要的工具 [ ] 有 README.md(中英文都可以) [ ] 有使用示例(README里或单独的examples目录) [ ] minOpenClawVersion 填写了兼容版本 [ ] 本地测试通过 [ ] 测试了权限是否够用 [ ] 测试了边界输入(空输入、超大输入等) [ ] 有联系方式(email 或 url) [ ] icon.png 存在(可选但推荐) [ ] package.json 声明了所有依赖
📝 审核标准详解
1 自动检查(秒级)
提交后ClawHub会立即检查:
- openclaw.json 格式是否正确
- 必要文件是否存在(index.js, openclaw.json)
- package.json 是否有语法错误
- 是否含有恶意代码(已知模式匹配)
2 安全检查(分钟级)
- 沙箱运行测试,检查是否越权调用工具
- 检查是否访问了未声明的外部资源
- 动态分析代码行为
- 比对已知恶意代码指纹
3 人工审核(小时级)
- 功能是否与描述一致
- 文档是否清晰可读
- 是否违反社区规则
- 质量评估
📈 发布后运营
发布只是开始,好Skill需要持续运营:
# 1. 查看下载统计 openclaw skills stats my-awesome-skill # 2. 查看用户评价 openclaw skills reviews my-awesome-skill # 3. 发布新版本 # 修改 version -> 1.0.1 # 然后重新 pack + submit # 4. 标记不再维护 openclaw skills deprecate my-awesome-skill \ --reason "已被新版替代,建议使用 xxx-skill v2"
🔄 版本策略
| 版本类型 | 示例 | 变更范围 |
|---|---|---|
| Major | 1.0.0 → 2.0.0 | API变更、破坏性更新 |
| Minor | 1.0.0 → 1.1.0 | 新增功能,向后兼容 |
| Patch | 1.0.0 → 1.0.1 | Bug修复,小改动 |
🎯 最佳实践:
- 首次发布用 1.0.0(不要从 0.1.0 开始,显得不专业)
- 每次版本更新要有 CHANGELOG
- 重大更新前在 ClawHub 发预告讨论帖
- 用户反馈24小时内回复(这是平台排名的关键指标)
- 首次发布用 1.0.0(不要从 0.1.0 开始,显得不专业)
- 每次版本更新要有 CHANGELOG
- 重大更新前在 ClawHub 发预告讨论帖
- 用户反馈24小时内回复(这是平台排名的关键指标)
🔗 相关资源
🎭 结语
凌晨5点23分,我按下了发布。不是因为准备好了,是因为知道——不发布永远是0,发布了才有1。
你的第一个Skill,还在本地躺着吗?该让它见见世界了。