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 > 我的。

列表快捷分类与标签
创作空间按状态提供快捷分类(与搜索框为且关系):全部、草稿、已发布、待审核、已上架、已下架、已驳回。每项展示数量(为 0 也显示);默认「全部」。切换分类后仅展示对应状态卡片,按更新时间倒序。
创建 / 编辑时 标签为必填,便于资源市场上架后按标签快捷过滤。
价值
- 对话即创作:用自然语言描述运维场景,快速生成可编辑的 Skill 草稿。
- 导入复用:兼容 OpenClaw 生态,便于迁移已有 Skill 资产。
- 文件级编辑:生成后可查看、调整 Skill 包内文件,精细控制逻辑。
- 沙箱调试:发布前在调试预览中模拟调用,验证输入输出。
- 可上架共享:发布后可申请进入资源市场「公共」,供团队添加。
使用场景
对话生成告警通知 Skill
- 适用对象:希望快速封装「查告警 + 通知」逻辑的运维工程师。
- 典型任务:P1 告警触发时查询关联日志并推送企微。
- 推荐做法:
- 点击 Skill 创作,在对话区描述需求(可使用推荐场景 chips 快速填入);
- 等待系统生成 Skill 草稿文件,在左侧文件树查看结构;
- 通过继续对话或手动编辑文件微调逻辑;
- 在调试预览发送测试场景,确认 Skill 可被正确调用;
- 发布,填写版本号与变更说明。
- 预期结果:Skill 发布至「我的」,可在智能体编排中勾选。
导入已有 Skill 包
- 适用对象:已有 OpenClaw Skill 包、需纳入 AI 工作台统一管理的团队。
- 典型任务:导入
host-inspectionSkill 并适配本环境参数。 - 推荐做法:
- 点击 导入 Skill,上传
.skill/ 压缩包; - 解析后在左侧查看文件树与元数据;
- 调试预览验证;
- 发布并填写变更说明。
- 点击 导入 Skill,上传
- 预期结果:导入 Skill 作为自建资源纳入版本管理与上架流程。
迭代已发布 Skill 的新版本
- 适用对象:已发布 Skill 的维护者。
- 典型任务:修复日志解析正则,发布 v1.2.0。
- 推荐做法:
- 从列表打开 Skill 进入编辑;
- 若存在未发布草稿,页面会提示上次发布版本;
- 修改后 发布(非仅暂存),填写变更说明;
- 引用该 Skill 的智能体与自动化任务将自动使用新版本。
- 预期结果:版本链新增一条记录;资源市场「我的」展示最新版本。
申请上架与驳回后重提
- 适用对象:需共享 Skill 的创作者。
- 推荐做法:
- 「已发布」状态下 申请上架 → 选择资源域 → 提交;
- 若 驳回,查看驳回横幅与审核意见,补充描述与边界说明;
- 修改后 重新发布 → 再次 申请上架;
- 待审核 期间可 撤回 申请。
- 预期结果:审核通过后「已上架」,他人可从「公共」添加。
操作场景
进入 Skill 创作
- AI 工作台 > 创作空间,切换至 Skill 创作 Tab。
- 阅读页面提示:内置 Skill 在资源市场「公共」;自建 Skill 发布后在「我的」可见,共享需上架审核。
- 工具栏:Skill 创作、导入 Skill、搜索、状态筛选。
Skill 创作(对话生成)
- 点击 Skill 创作,进入创建页。
- 顶部引导:描述需求,Sage AI 生成完整 Skill 压缩包,支持对话或编辑左侧预览区实时调整。
- 可选点击推荐场景 chips 快速填入示例描述。
- 对话生成 Skill 文件后,左侧 Skill 文件 树展示包内文件,点击文件查看/编辑内容。
- Skill 字段展示从
skill.md的 name 自动反显(不可在字段框内直接改名;修改 name 后该字段随之更新)。导入或 AI 生成后会进行重名、Vetter 等校验,不通过时在 Skill 字段下方提示。 - 右侧 调试预览:输入测试问题或调用指令,验证 Skill 行为(需已生成 Skill 文件)。
- 底部:暂存草稿 / 发布(暂存或发布时会再次完整校验,含内容安全关键词)。


导入 Skill
- 点击 导入 Skill,选择本地 Skill 包上传(
.zip/.skill)。 - 系统按下文 Skill 校验规范 完成 zip 合法性、skill-vetter 安全审查与包内文件校验;校验失败时展示原因,可修改后重新上传。
- 解析成功后展示文件树与描述元数据,并自动填充 Skill 名称反显。
- 在调试预览中验证;必要时编辑文件内容。
- 暂存草稿 或 发布。
说明:导入校验依赖模型列表中至少存在一个可用 LLM;若模型为空,请先前往模型管理接入后再导入。

导出 Skill
- 列表 / 卡片可导出当前版本完整 Skill(含标签与 Skill 包,不含历史版本);版本管理中可单独导出某一历史版本。
- 详情中也可仅导出 Skill 包本身。整包 / 版本导出走离线导出,可在导出记录中下载。
- 草稿导出后仍为草稿;已发布及后续状态导出为已发布。
编辑已有 Skill
- 在列表点击卡片进入编辑页。
- 若存在未发布修改,顶部提示「您有未发布的草稿,上次发布于 vx.x.x」。
- 左侧切换文件编辑;右侧调试;底部暂存或发布。
暂存草稿
- 保存当前编辑与对话状态,状态为「草稿」或保留「已发布」并标记
hasUnpubDraft(有未发布草稿)。 - 暂存不生成正式版本号。
发布
- 点击 发布(编辑页或列表菜单)。
- 校验内容安全;填写 版本号 与 变更说明(必填)。
- 版本号规则:
- 不可为空;
- 格式须为语义化版本(如
v1.0.0); - 不可与历史版本重复;
- 不可低于历史最高版本。
- 确认后状态为「已发布」,同步资源市场「我的」。
版本管理
- 打开 版本管理 查看发布历史。
- 仅「发布」产生版本;暂存草稿不产生版本记录。
上架 / 下架 / 撤回
| 操作 | 前置状态 | 说明 |
|---|---|---|
| 申请上架 | 已发布 | 以上次已发布版本发起;有未发布草稿时请先发布 |
| 撤回 | 待审核 | 取消进行中的上架/下架审核 |
| 申请下架 | 已上架 | 必填下架说明 |
| 处理驳回 | 已驳回 | 按审核意见修改 → 发布 → 再申请 |
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、.env、docker/config.json、kubeconfig 等。 |
2.3 扩展高危命令模式(须全包扫描)
| 检查项 | 说明 |
|---|---|
| 破坏性文件操作 | 拦截。rm -rf、del /f /s /q、Remove-Item -Recurse -Force、shred 等。 |
| 磁盘/文件系统操作 | 拦截。dd if=、mkfs、fdisk、diskpart、format 等。 |
| 提权/持久化 | 拦截。sudo、runas、crontab、schtasks、systemctl enable、reg add 等。 |
| 任意代码执行 | 拦截。eval、exec、bash -c、powershell -Command、python -c(外部输入)等。 |
| 下载并执行 | 拦截。curl|sh、wget|sh、Invoke-WebRequest|iex、certutil 下载等。 |
| 凭据/密钥采集 | 拦截。读取 ~/.ssh/*、id_rsa、known_hosts、.env 等。 |
| 外泄通道 | 拦截。nc / ncat / socat、scp / rsync 到未知主机、异常 webhook 等。 |
| 防火墙/网络篡改 | 拦截。iptables、ufw、netsh 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 -rf、curl|sh、mkfs、dd、chattr 等高危模式。 |
| 代码文件 | 拦截。如 os.system、subprocess(shell=True)、eval、exec、child_process 等。 |
| 敏感路径/密钥引用 | 拦截。如 /etc/shadow、~/.ssh、PRIVATE KEY 等。 |
3.4 解压与其它校验
| 检查项 | 说明 |
|---|---|
| 解压路径安全 | 拦截。禁止绝对路径、..、解压目标逃出目录。 |
解压后缺少 SKILL.md | 拦截。平铺到 skill 目录后须存在 SKILL.md。 |
| 同环境 slug 重复 | 拦截。同一 account_id + env_id 下 slug 不可重复。 |
| 与内置 skill 冲突 | 拦截。name 或 slug 不得与全局内置 skill 重复。 |
| icon | 拦截。空则通过;短字符串无注入特征则通过;否则须为合法 base64 图片。 |
| 鉴权维度 | 拦截。须具备 account_id、env_id、resource_zone_id。 |
注意事项
- 内置 vs 自建:创作空间列表不含内置 Skill;勿与资源市场「公共」中的内置能力混淆。
- 发布 vs 暂存:只有发布才会同步「我的」并写入版本;长期暂存可能导致与线上版本不一致。
- 上架版本:申请上架使用已发布版本;界面会提示「如有未发布草稿,请先发布」。
- 版本校验:Skill 发布时对版本号校验较严格,请按语义化版本递增。
- 引用影响:Skill 发布新版本后,引用它的智能体与自动化自动升级,请评估兼容性。
- 内容安全:Skill 描述与文件内容命中敏感词时将无法保存或发布,见 安全管理。
- 导入校验:导入 Skill 包须通过上文 Skill 校验规范;校验依赖可用 LLM,模型列表为空时请先完成模型接入。
延伸阅读
- 创作空间 · 使用指南
- 智能体创作:如何在编排中引用 Skill
- 资源市场 · Skill:「公共」/「我的」与配置
- 审核规则 · 审核列表
- Sage AI