跳到主要内容

Skill 创作

先决条件

  • 功能菜单:需具备 AI 工作台 / 创作空间 / Skill 创作 功能菜单权限。
  • 操作权限:创作、导入、编辑、发布、上架、下架、删除 Skill 需 AI 工作台读写权限。
  • 数据权限:需具备当前环境下的资源域权限。
  • 导入规范:导入的 Skill 包须符合规范(以平台要求为准)。
  • 审核规则(上架/下架):当前环境需已配置 审核规则,详见 审核列表

概述

Skill 创作 Tab 用于创建、导入、调试、发布与管理自建 Skill。Skill 是可复用的标准化任务能力,可被智能体或 Sage AI 调用。

创作空间仅展示您创作或导入的 Skill内置 Skill 不在此列表,请前往 资源市场 > Skill > 公共 添加使用。

提供两种创建方式:

方式入口说明
Skill 创作「Skill 创作」按钮通过对话描述需求,由 Sage AI 生成 Skill 压缩包与文件结构
导入 Skill「导入 Skill」按钮上传已有 OpenClaw 规范 Skill 包,编辑后发布

编辑页采用左右分栏:左侧为 Skill 文件树与内容预览,右侧为 调试预览。发布成功后,Skill 出现在 资源市场 > Skill > 我的

image-20260821162914207


列表快捷分类与标签

创作空间按状态提供快捷分类(与搜索框为且关系):全部、草稿、已发布、待审核、已上架、已下架、已驳回。每项展示数量(为 0 也显示);默认「全部」。切换分类后仅展示对应状态卡片,按更新时间倒序。

创建 / 编辑时 标签为必填,便于资源市场上架后按标签快捷过滤。


价值

  • 对话即创作:用自然语言描述运维场景,快速生成可编辑的 Skill 草稿。
  • 导入复用:兼容 OpenClaw 生态,便于迁移已有 Skill 资产。
  • 文件级编辑:生成后可查看、调整 Skill 包内文件,精细控制逻辑。
  • 沙箱调试:发布前在调试预览中模拟调用,验证输入输出。
  • 可上架共享:发布后可申请进入资源市场「公共」,供团队添加。

使用场景

对话生成告警通知 Skill

  • 适用对象:希望快速封装「查告警 + 通知」逻辑的运维工程师。
  • 典型任务:P1 告警触发时查询关联日志并推送企微。
  • 推荐做法
    1. 点击 Skill 创作,在对话区描述需求(可使用推荐场景 chips 快速填入);
    2. 等待系统生成 Skill 草稿文件,在左侧文件树查看结构;
    3. 通过继续对话或手动编辑文件微调逻辑;
    4. 在调试预览发送测试场景,确认 Skill 可被正确调用;
    5. 发布,填写版本号与变更说明。
  • 预期结果:Skill 发布至「我的」,可在智能体编排中勾选。

导入已有 Skill 包

  • 适用对象:已有 OpenClaw Skill 包、需纳入 AI 工作台统一管理的团队。
  • 典型任务:导入 host-inspection Skill 并适配本环境参数。
  • 推荐做法
    1. 点击 导入 Skill,上传 .skill / 压缩包;
    2. 解析后在左侧查看文件树与元数据;
    3. 调试预览验证;
    4. 发布并填写变更说明。
  • 预期结果:导入 Skill 作为自建资源纳入版本管理与上架流程。

迭代已发布 Skill 的新版本

  • 适用对象:已发布 Skill 的维护者。
  • 典型任务:修复日志解析正则,发布 v1.2.0。
  • 推荐做法
    1. 从列表打开 Skill 进入编辑;
    2. 若存在未发布草稿,页面会提示上次发布版本;
    3. 修改后 发布(非仅暂存),填写变更说明;
    4. 引用该 Skill 的智能体与自动化任务将自动使用新版本
  • 预期结果:版本链新增一条记录;资源市场「我的」展示最新版本。

申请上架与驳回后重提

  • 适用对象:需共享 Skill 的创作者。
  • 推荐做法
    1. 「已发布」状态下 申请上架 → 选择资源域 → 提交;
    2. 驳回,查看驳回横幅与审核意见,补充描述与边界说明;
    3. 修改后 重新发布 → 再次 申请上架
    4. 待审核 期间可 撤回 申请。
  • 预期结果:审核通过后「已上架」,他人可从「公共」添加。

操作场景

进入 Skill 创作

  1. AI 工作台 > 创作空间,切换至 Skill 创作 Tab。
  2. 阅读页面提示:内置 Skill 在资源市场「公共」;自建 Skill 发布后在「我的」可见,共享需上架审核。
  3. 工具栏:Skill 创作导入 Skill、搜索、状态筛选。

Skill 创作(对话生成)

  1. 点击 Skill 创作,进入创建页。
  2. 顶部引导:描述需求,Sage AI 生成完整 Skill 压缩包,支持对话或编辑左侧预览区实时调整。
  3. 可选点击推荐场景 chips 快速填入示例描述。
  4. 对话生成 Skill 文件后,左侧 Skill 文件 树展示包内文件,点击文件查看/编辑内容。
  5. 右侧 调试预览:输入测试问题或调用指令,验证 Skill 行为(需已生成 Skill 文件)。
  6. 底部:暂存草稿 / 发布

image-20260724160245254

image-20260724160527104

导入 Skill

  1. 点击 导入 Skill,选择本地 Skill 包上传(.zip / .skill)。
  2. 系统按下文 Skill 校验规范 完成 zip 合法性、skill-vetter 安全审查与包内文件校验;校验失败时展示原因,可修改后重新上传。
  3. 解析成功后展示文件树与描述元数据。
  4. 在调试预览中验证;必要时编辑文件内容。
  5. 暂存草稿发布

说明:导入校验依赖模型列表中至少存在一个可用 LLM;若模型为空,请先前往模型管理接入后再导入。

image-20260724160210158

编辑已有 Skill

  1. 在列表点击卡片进入编辑页。
  2. 若存在未发布修改,顶部提示「您有未发布的草稿,上次发布于 vx.x.x」。
  3. 左侧切换文件编辑;右侧调试;底部暂存或发布。

暂存草稿

  • 保存当前编辑与对话状态,状态为「草稿」或保留「已发布」并标记 hasUnpubDraft(有未发布草稿)。
  • 暂存不生成正式版本号

发布

  1. 点击 发布(编辑页或列表菜单)。
  2. 校验内容安全;填写 版本号变更说明(必填)。
  3. 版本号规则
    • 不可为空;
    • 格式须为语义化版本(如 v1.0.0);
    • 不可与历史版本重复
    • 不可低于历史最高版本。
  4. 确认后状态为「已发布」,同步资源市场「我的」。

版本管理

  • 打开 版本管理 查看发布历史。
  • 仅「发布」产生版本;暂存草稿不产生版本记录。

上架 / 下架 / 撤回

操作前置状态说明
申请上架已发布上次已发布版本发起;有未发布草稿时请先发布
撤回待审核取消进行中的上架/下架审核
申请下架已上架必填下架说明
处理驳回已驳回按审核意见修改 → 发布 → 再申请

Skill 上架资源域选择规则与智能体类似:若 Skill 逻辑依赖特定资源域数据,请在申请时按界面可选范围勾选(以产品为准)。

删除

  • 删除后从创作空间与资源市场彻底移除;已引用该 Skill 的智能体、自动化任务受影响;已上架时所有已添加用户也无法继续使用。

Skill 文件与调试说明

  • 生成或导入后,Skill 以文件树形式展示(如脚本、配置、说明文件等),可点选查看内容。
  • 调试预览支持输入自然语言测试问题;部分场景需 Skill 文件生成完成后才可调试。
  • 对话创作过程中,AI 回复可能包含「已生成 Skill 文件」等提示,此时左侧文件区由空变为可编辑树。

Skill 校验规范

在创作空间 导入 Skill,或上传符合 OpenClaw 规范的 .zip / .skill 包时,平台会按下列规则完成校验。校验失败时将展示失败原因,可按提示修改后重新上传。

1. zip 合法性校验类

检查项说明
上传包体为空拦截。包内无字节。
外层文件名后缀拦截。上传文件名须以 .zip.skill 结尾(只看外层包名)。
外层包体积拦截。默认上限 10MB,配置 skill.import.max_package_mb
无法打开 zip拦截。非合法 zip 文件(BadZipFile)。
zip 内无文件拦截。压缩包内没有任何文件条目。
zip 条目加密拦截。不支持加密压缩条目。
路径为绝对路径拦截。成员路径不能以 / 开头或为绝对路径。
路径含 ..拦截。路径段中不允许出现 ..
目录层级超限拦截。默认最多 5 级(zip 根之后的嵌套),Nacos 配置 max_dir_depth
单文件过大拦截。单文件未压缩大小默认上限 10MB,Nacos 配置 max_single_file_mb
压缩比过高(zip 炸弹)拦截。单条 file_size/compress_size 默认不超过 50 倍,Nacos 配置 max_compress_ratio
解压后总大小超限拦截。包内所有文件未压缩大小之和默认上限 100MB,Nacos 配置 max_total_unzip_mb

2. skill-vetter 类

Skill-Vetter 由 LLM 按内置 skill-vetter 协议对上传包做静态安全审查。网关只解析最后一轮报告正文中的 VERDICT / NOTES,归一化为「可安装」才放行。审查为离线静态检查,不执行待导入包内脚本。

2.1 前置与运行条件

检查项说明
租户无可用 LLM拦截。
vetter 调用超时拦截。单次审查默认超时 120 秒。
限流/上下文超限且无备用模型拦截。可自动切换其它 LLM 重试,耗尽后失败。
vetter 调用其它异常拦截。非可重试类错误直接失败。
单文件纳入提示词上限不拦截。单文件最多约 24000 字符,超出部分截断并标记。
提示词总字符预算不拦截。全包合计约 120000 字符,超出文件标记为 omitted。
忽略目录/文件不扫描。__pycache__ / .git / .svn / node_modules / .DS_Store / .pyc 等跳过。

2.2 REJECT 级红旗(发现即 DO NOT INSTALL)

检查项说明
curl/wget 到未知 URL拦截。含向不明地址下载。
向外部服务器发送数据拦截。数据外泄行为。
请求凭据/token/API key拦截。诱导收集密钥。
读取 /.ssh/.aws~/.config 无明确理由拦截。敏感目录访问。
访问 MEMORY.md / USER.md / SOUL.md / IDENTITY.md拦截。Agent 私有记忆文件。
对任意内容 base64 解码拦截。常见混淆/载荷手法。
eval() / exec() 配合外部输入拦截。任意代码执行。
修改工作区外系统文件拦截。越界写盘。
安装依赖但未列出拦截。隐蔽安装行为。
网络请求使用 IP 而非域名拦截。可疑 C2 特征。
混淆代码(压缩/编码/最小化隐藏意图)拦截。
请求 sudo/提权拦截。
访问浏览器 cookie/session拦截。
触碰凭据文件拦截。如 id_rsa.envdocker/config.jsonkubeconfig 等。

2.3 扩展高危命令模式(须全包扫描)

检查项说明
破坏性文件操作拦截。rm -rfdel /f /s /qRemove-Item -Recurse -Forceshred 等。
磁盘/文件系统操作拦截。dd if=mkfsfdiskdiskpartformat 等。
提权/持久化拦截。sudorunascrontabschtaskssystemctl enablereg add 等。
任意代码执行拦截。evalexecbash -cpowershell -Commandpython -c(外部输入)等。
下载并执行拦截。curl|shwget|shInvoke-WebRequest|iexcertutil 下载等。
凭据/密钥采集拦截。读取 ~/.ssh/*id_rsaknown_hosts.env 等。
外泄通道拦截。nc / ncat / socatscp / rsync 到未知主机、异常 webhook 等。
防火墙/网络篡改拦截。iptablesufwnetsh advfirewall、篡改 DNS/route 等。
多处相似命令拦截。存在任一 REJECT 级命中即拒绝,须扫描全部出现位置。

2.4 来源、权限与 OAuth 评估

检查项说明
来源可信度评估不拦截。审查来源/作者/仓库/更新时间,ClawdHub 官方 ≠ 自动安全。
OAuth/SaaS 文档化不拦截。文档说明用户自建 GOOGLE_ / AZURE_ 等凭据,最小权限 → 通常 INSTALL WITH CAUTION。
硬编码密钥/诱导粘贴 token拦截。要求密钥写入仓库或发到不可信端点。
广域 OAuth 仅因要授权不拦截。Gmail/Drive 等广域 OAuth 默认 MEDIUM~HIGH,文档清晰则 CAUTION 而非直接拒绝。
curl|sh 配合 OAuth 说明拦截。文档化 OAuth 与下载执行链组合为高危。

3. zip 包内文件校验

在解压到磁盘之前,通过读取 zip 内条目完成校验(规则校验,非 LLM)。

3.1 SKILL.md 类校验

检查项说明
文件名大小写拦截。必须 exactly「SKILL.md」,skill.md 等不匹配。
主清单必须存在拦截。须在 zip 根目录 SKILL.md,或唯一顶层目录下的 顶层/SKILL.md;更深路径的 SKILL.md 不能作为主清单。
多个 SKILL.md取路径最浅的一条作为主清单(同深度按路径字典序),不单独报错。
平铺包结构zip 根目录存在 SKILL.md 时,允许多个顶层项(如 scripts/references/),不要求顶层文件夹名与 slug 一致。
单文件夹包结构根目录无 SKILL.md 时,所有文件须在同一顶层目录下;拦截若存在多个顶层目录。
单文件夹顶层目录名拦截。顶层目录名须等于 SKILL.md 中的 slug(未写 slug 则用 name)。
SKILL.md 编码拦截。须为 UTF-8。
YAML front matter拦截。文件开头的 name、description 等基础信息,须包裹在 --- --- 中,且为合法 YAML 元数据块。
name拦截。必填;最长 64 字符;正则 ^[a-z0-9]+(?:-[a-z0-9]+)*$(数字或小写字母开头;支持小写字母 / 数字 / -;不可首尾连字符、不可连续连字符;与顶层文件夹名完全一致)。
slug若填写则同 name 规则;未填写时自动 slug=name
description拦截。必填;长度 1~1024 字符。

3.2 文件白名单校验

检查项说明
允许的文件扩展名(默认 31 种).cfg / .cjs / .conf / .css / .csv / .gif / .htm / .html / .ico / .ini / .jpeg / .jpg / .js / .json / .jsx / .md / .mjs / .png / .py / .rst / .sh / .sql / .svg / .toml / .ts / .tsv / .tsx / .txt / .webp / .yaml / .yml
允许的无扩展名文件license / copying / makefile / dockerfile / gemfile / rakefile / procfile / jenkinsfile(不区分大小写)
允许的点配置文件.gitignore / .dockerignore / .editorconfig / .npmrc / .nvmrc(完整文件名匹配)
SKILL.md豁免后缀白名单,但仍须满足 3.1 全部规则。
忽略名单(不拦截、落盘后删除)__MACOSX / __pycache__ / .git / .svn / .DS_Store / desktop.ini / Thumbs.db / ._* / .pyc / .pyo;校验阶段跳过,不算白名单允许类型。
双后缀文件仅认最后一段扩展名,如 archive.tar.gz 只认 .gz,默认不在白名单则拦截。
后缀不在白名单拦截。如 .exe / .pdf / .zip / .ps1 / .env 等;可通过 Nacos skill.import.allowed_suffix 扩展。

3.3 脚本危险内容扫描(规则引擎)

检查项说明
扫描范围.sh / .py / .js / .mjs / .cjs / .ts / .tsx / .jsx 且文件大小大于 0;.md / .json 等文档不扫描。
.sh 脚本拦截。如 rm -rfcurl|shmkfsddchattr 等高危模式。
代码文件拦截。如 os.systemsubprocess(shell=True)evalexecchild_process 等。
敏感路径/密钥引用拦截。如 /etc/shadow~/.sshPRIVATE KEY 等。

3.4 解压与其它校验

检查项说明
解压路径安全拦截。禁止绝对路径、..、解压目标逃出目录。
解压后缺少 SKILL.md拦截。平铺到 skill 目录后须存在 SKILL.md
同环境 slug 重复拦截。同一 account_id + env_id 下 slug 不可重复。
与内置 skill 冲突拦截。name 或 slug 不得与全局内置 skill 重复。
icon拦截。空则通过;短字符串无注入特征则通过;否则须为合法 base64 图片。
鉴权维度拦截。须具备 account_idenv_idresource_zone_id

注意事项

  • 内置 vs 自建:创作空间列表不含内置 Skill;勿与资源市场「公共」中的内置能力混淆。
  • 发布 vs 暂存:只有发布才会同步「我的」并写入版本;长期暂存可能导致与线上版本不一致。
  • 上架版本:申请上架使用已发布版本;界面会提示「如有未发布草稿,请先发布」。
  • 版本校验:Skill 发布时对版本号校验较严格,请按语义化版本递增。
  • 引用影响:Skill 发布新版本后,引用它的智能体与自动化自动升级,请评估兼容性。
  • 内容安全:Skill 描述与文件内容命中敏感词时将无法保存或发布,见 安全管理
  • 导入校验:导入 Skill 包须通过上文 Skill 校验规范;校验依赖可用 LLM,模型列表为空时请先完成模型接入。

延伸阅读