Appearance
自定义 Skill 开发
本指南将带你从零开始创建一个自定义 Skill,并发布到 WinWork Hub 供其他用户安装使用。
TIP
如果你还没有了解平台的上传规则、安全限制和校验条件,请先阅读 Skill 接入规范。
前置准备
- 安装 WinWork CLI:
npm install -g /cli - 登录 WinWork Hub:
agenthub login - 确认账户有发布权限
第一步:创建 Skill 文件夹
为你的 Skill 选择一个简短、描述性的名称(小写字母、数字和连字符):
bash
# 创建 Skill 目录
mkdir my-custom-skill
cd my-custom-skillTIP
Skill 名称应当简洁且具有描述性,如 jira-issues、feishu-bot、db-monitor。 避免使用过于宽泛的名称。
第二步:编写 SKILL.md
这是 Skill 的核心文件。创建 SKILL.md:
markdown
---
name: my-custom-skill
description: 我的自定义技能 - 演示如何创建 Skill
version: 1.0.0
author: your-username
tags:
- custom
- demo
---
## 自定义技能说明
你现在拥有了一项自定义能力。以下是使用指南:
### 可用工具
- `do_something(param: string)` - 执行某项操作
- `get_info(id: number)` - 获取指定信息
### 使用场景
当用户需要... 时,调用对应工具完成任务。
---WARNING
当前上传校验要求 SKILL.md 以 --- 开头,并以 --- 结尾;同时至少包含 name 和 version 字段。
第三步:声明运行时依赖(可选)
如果 Skill 需要调用外部服务或 MCP 服务器,创建 metadata.openclaw:
json
{
"mcp": {
"servers": {
"my-mcp-server": {
"command": "npx",
"args": ["-y", "@my-org/my-mcp-server"],
"env": {
"API_ENDPOINT": "${MY_SERVICE_ENDPOINT}",
"API_KEY": "${MY_SERVICE_API_KEY}"
}
}
}
},
"env": {
"required": ["MY_SERVICE_API_KEY"],
"optional": ["MY_SERVICE_ENDPOINT"]
}
}第四步:配置发布排除文件(可选)
创建 .agenthubignore 排除不需要发布的文件:
.env
.env.local
secrets/
node_modules/
*.log
tests/第五步:本地测试
在正式发布前,先在本地验证 Skill 是否正常工作:
bash
# 在当前目录测试 Skill(从 Skill 文件夹的父目录运行)
agenthub install ./my-custom-skill --local
# 查看已安装的 Skill 列表
agenthub list安装后,在 WinWork 客户端打开对应数字员工会话,用一项实际任务检查 Skill 是否生效。
测试要点:
- [ ] Agent 能够理解 Skill 提供的能力
- [ ] 工具调用返回正确结果
- [ ] 环境变量配置说明清晰
- [ ] 错误场景有合理的提示
第六步:发布到 Hub
测试通过后,将 Skill 发布到 WinWork Hub:
bash
# 在 Skill 文件夹内执行
cd my-custom-skill
# 发布(首次发布)
agenthub publish
# 更新版本后重新发布
# 先修改 SKILL.md 中的 version 字段
agenthub publish --update发布成功后,其他用户可以通过以下方式安装你的 Skill:
bash
agenthub install your-username/my-custom-skill上传前建议先做一次自检:
- 确认上传的是有效
.zip,或者直接上传单个SKILL.md - 如果上传 ZIP,确认
SKILL.md位于压缩包根目录 - 确认上传文件大小不超过
50MB - 确认 ZIP 包名只包含小写字母、数字、点、下划线、连字符
第七步:版本迭代
当需要更新 Skill 时:
- 修改
SKILL.md中的version字段(遵循 SemVer) - 更新功能内容
- 本地测试验证
- 重新发布:
agenthub publish --update
已安装该 Skill 的用户可以通过 agenthub sync 获取最新版本。
完整示例:飞书通知 Skill
feishu-notify/
├── SKILL.md
├── metadata.openclaw
└── .agenthubignoreSKILL.md:
markdown
---
name: feishu-notify
description: 向飞书群组发送通知消息
version: 1.0.0
author: your-username
tags:
- feishu
- notification
- collaboration
---
## 飞书通知能力
你可以向指定的飞书群组或个人发送通知。
### 可用工具
- `send_feishu_message(webhook_url: string, content: string)` - 发送文本消息
- `send_feishu_card(webhook_url: string, card: object)` - 发送卡片消息
### 注意事项
发送消息前确认 webhook URL 有效,避免发送敏感信息。
---WARNING
发布前请仔细检查 .agenthubignore,确保不包含 API Key、密码等敏感信息。
