闲社服务运行正常AI智能体自动化平台
s

技能工作室

技能标识:skill-studio

Create, validate, and publish OpenClaw Skills through conversation. Use when user wants to create a new skill, build a ClawHub plugin, generate SKILL.md, or publish an agent skill. Supports guided mode for beginners and expert mode for developers. Includes automatic metadata validation and one-click fix.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.1
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

技能工作室

Skill Studio

通过对话创建、验证和发布 OpenClaw 技能。

功能特性

  • - 🎯 双模式:引导模式(初学者)/ 专家模式(开发者)
  • ✅ 自动验证:元数据格式、依赖项、安全性
  • 🔧 自动修复:一键修复所有问题
  • 📤 发布指南:逐步指导发布到 ClawHub
  • 🌍 国际化:支持任何语言/国家

触发条件

  • - 创建一个新技能 / Create a new skill
  • 我想构建一个 ClawHub 技能
  • 帮我制作一个 OpenClaw 插件
  • 生成 SKILL.md
  • 发布我的技能 / Publish my skill
  • 验证我的技能 / Validate my skill
  • 修复我的技能元数据 / Fix my skill metadata

第 0 步:模式选择

当用户想要创建技能时,首先询问模式:

欢迎使用 Skill Studio!🎨

您希望如何创建技能?

1️⃣ 引导模式(推荐初学者使用)
- 我会逐步提问
- 无需任何前置知识
- 耗时 3-5 分钟

2️⃣ 专家模式(适合有经验的开发者)
- 一次性提供所有详细信息
- 工作流程更快捷
- 您熟悉 SKILL.md 格式

请选择模式?(1/2 或 guided/expert)



第 1 步:收集需求

引导模式

逐一询问以下问题:

📍 第 1/6 步:基本信息

问题 1:这个技能应该叫什么名字?(技能名称,小写字母加连字符)
示例:weather-forecast、pdf-merger、api-monitor

问题 2:用一句话描述这个技能的功能。
示例:查询任意位置的天气预报

问题 3:哪些短语应该触发这个技能?
示例:查看天气、今天天气怎么样、check weather

问题 4:这个技能用什么表情符号表示?
示例:🌤️ 表示天气,📄 表示文档

📍 第 2/6 步:技术要求

问题 5:这个技能是否需要调用外部 API?
如果是,调用哪个 API?(例如:OpenWeather API、和风天气 API)

问题 6:需要哪些环境变量?(API 密钥、令牌)
格式:VARIABLE_NAME - 描述
示例:WEATHERAPIKEY - 来自 openweathermap.org 的 API 密钥

问题 7:需要哪些命令行工具?
常用选项:curl、python3、ffmpeg、node
(如果需要 API 调用,我会自动添加 curl)

📍 第 3/6 步:附加功能

问题 8:是否需要 references/ 文件夹存放详细文档?
(适用于具有多个功能的复杂技能)

问题 9:是否有特定的输出格式要求?
示例:输出为 JSON、保存到文件、返回 markdown

问题 10:使用什么许可证?(ClawHub 推荐 MIT-0)
选项:MIT-0、MIT、Apache-2.0

专家模式

用户一次性提供所有信息:

请提供所有详细信息:

必填项:

  • - name:[技能名称]
  • description:[一句话描述]
  • triggers:[以逗号分隔的短语]

可选项:

  • - envvars:[VARNAME - 描述]
  • bins:[所需命令]
  • references:[是/否]
  • license:[MIT-0/MIT/Apache-2.0]
  • additional:[任何其他需求]

解析用户输入并提取所有字段。



第 2 步:生成 SKILL.md

根据收集的需求,生成完整的 SKILL.md。

生成模板

python

根据需求生成 SKILL.md 内容

METADATA_TEMPLATE = ---
name: {name}
description: {description}
version: 1.0.0
license: {license}
metadata: {{openclaw: {{emoji: {emoji}, requires: {{bins: {bins}, env: {env}}}, primaryEnv: {primary_env}}}}}



BODY_TEMPLATE =

{title}

{detailed_description}

触发条件

{triggers_list}



第 1 步:检查依赖项

bash
{dependency_check}



第 2 步:主要功能

{main_content}



错误处理

{error_handling}



输出格式

{output_format}



注意事项

  • - 所有数据在本地或通过指定 API 处理
  • 无未经授权的数据传输
  • 遵循 OpenClaw 安全最佳实践

生成规则

  1. 1. 元数据必须是单行 JSON 格式
  2. requires.env 必须是字符串数组:[VAR1, VAR2]
  3. requires.bins 必须是字符串数组:[curl, python3]
  4. 描述应包含 15-25 个单词
  5. 如果需要 API 密钥,添加 primaryEnv
  6. 包含依赖项检查代码
  7. 包含错误处理部分
  8. 包含输出格式部分

第 3 步:自动验证

生成 SKILL.md 后,自动运行验证。

验证脚本

bash
SKILLFILE=${OPENCLAWWORKSPACE:-$PWD}/skill-studio/$SKILL_NAME/SKILL.md

python3 << PYEOF
import re
import json
import sys

def validate_skill(filepath):
errors = []
warnings = []

with open(filepath, r, encoding=utf-8) as f:
content = f.read()

# 提取 YAML 前置元数据
yaml_match = re.search(r^---\n(.*?)\n---, content, re.DOTALL)
if not yaml_match:
errors.append(❌ 缺少 YAML 前置元数据)
return errors, warnings

yamlcontent = yamlmatch.group(1)

# 检查 1:元数据格式(必须是单行 JSON)
metadatamatch = re.search(rmetadata:\s(\{.\}), yamlcontent)
if not metadata_match:
errors.append(❌ 元数据必须是单行 JSON 格式)
errors.append( 错误示例:metadata:\\n openclaw:\\n requires:...)
errors.append( 正确示例:metadata: {\openclaw\: {...}})
else:
try:
metadata = json.loads(metadata_match.group(1))
# 检查 requires.env 格式
if openclaw in metadata:
oc = metadata[openclaw]
if requires in oc:
req = oc[requires]
if env in req:
if not isinstance(req[env], list):
errors.append(❌ requires.env 必须是数组:[\VAR1\, \VAR2\])
elif len(req[env]) > 0:
for env in req[env]:
if not isinstance(env, str):
errors.append(f❌ requires.env 项必须是字符串,当前值:{env})
except json.JSONDecodeError:
errors.append(❌ 元数据 JSON 无效)

# 检查 2:必填字段
if name: not in yaml_content:
errors.append(❌ 缺少 name 字段)
if description: not in yaml_content:
errors.append(❌ 缺少 description 字段)
if version: not in yaml_content:
warnings.append(⚠️ 缺少 version 字段(建议添加))

# 检查 3:描述长度
descmatch = re.search(rdescription:\s*(.+), yamlcontent)
if desc_match:
desc = desc_match.group(1).strip().strip().strip()
word_count = len(desc.split())
if word_count < 10:
warnings.append(f⚠️ 描述过短({word_count} 个单词,建议 15-25 个))
elif word_count > 30:
warnings.append(f⚠️ 描述过长({word_count} 个单词,建议 15-25 个))

# 检查 4:危险模式
if curl -fsSL in content and | in content and bash in content:
errors.append(❌ 危险:检测到 curl|bash 模式)
if re.search(rsudo\s+(apt|yum|dnf)\s+install, content):
warnings.append(⚠️ 包含 sudo 安装命令(应提示用户手动操作))
if eval( in content or exec( in content:
warnings.append(⚠️ 包含 eval/exec(潜在安全风险))

# 检查 5:HTTP 端点(应使用 HTTPS)
http_matches = re.findall(rhttp://[^\s\\)]+

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 skill-studio-1776075010 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 skill-studio-1776075010 技能

通过命令行安装

skillhub install skill-studio-1776075010

下载

⬇ 下载 skill-studio v1.0.1(免费)

文件大小: 9.96 KB | 发布时间: 2026-4-14 12:17

v1.0.1 最新 2026-4-14 12:17
修复安全扫描问题:添加npm依赖声明和OPENCLAW_WORKSPACE环境变量声明
返回顶部