Skip to content
已上线公开开发者开发者

自定义 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-skill

TIP

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 时:

  1. 修改 SKILL.md 中的 version 字段(遵循 SemVer)
  2. 更新功能内容
  3. 本地测试验证
  4. 重新发布:agenthub publish --update

已安装该 Skill 的用户可以通过 agenthub sync 获取最新版本。

完整示例:飞书通知 Skill ​

feishu-notify/
├── SKILL.md
├── metadata.openclaw
└── .agenthubignore

SKILL.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、密码等敏感信息。

最后更新: