跳到主要内容

Skill

先决条件

  • 功能菜单:需具备 AI 工作台 / 资源市场 功能菜单权限。
  • 操作权限:添加、移除、配置 Skill 需具备 AI 工作台读写权限;只读权限仅支持浏览与查看详情。
  • 数据权限:需具备至少一个环境下的资源域权限。

概述

Skill 是可复用的标准化任务能力,封装固定执行逻辑,可被智能体或 Sage AI 直接调用。资源市场「Skill」Tab 提供 公共 / 我的 两个视图:

  • 公共:展示内置 Skill 及创作者上架的共享 Skill;卡片提供「添加」,将 Skill 安装到「我的」
  • 我的:管理已添加或自发布的 Skill;支持打开、移除、配置与版本更新

内置 Skill 在「公共」中开箱即用,点击添加后可在「我的」中打开、移除与配置。「公共」卡片仅提供添加;打开与设置需在添加后于「我的」中操作。

image-20260821163100904


公共与我的

资源市场「Skill」Tab 左上角提供 公共 / 我的 切换,二者定位与能力不同:

对比项公共我的
展示内容平台内置 Skill,以及经上架审核后公开共享的 Skill当前资源域已添加的 Skill,以及你在创作空间自行发布的 Skill
数据来源平台预置 + 其他创作者上架审核通过的资源从「公共」添加安装后的副本,或创作空间发布后的本地资源
可见范围同资源域内所有有权限的用户均可浏览并添加仅当前资源域内已添加/已发布的实例,按资源域隔离
卡片操作添加:将 Skill 安装到「我的」打开(详情与调试)、配置(环境参数等)、移除;有新版本时显示 更新
配置状态仅浏览与添加,不支持在此完成环境配置添加后在此完成必要配置;配置完成后显示「已配置」
详情与调试可查看 Skill 说明用于选型在「我的」打开详情,使用右侧调试预览(只读,不修改 Skill)
版本策略展示公共市场最新上架版本;添加后本地版本由你在「我的」中自主升级已添加的 Skill 可独立选择是否跟随公共市场新版本升级
上架关系创作者申请上架且审核通过后,Skill 出现在「公共」自发布 Skill 默认仅在「我的」;上架审核通过后才会进入「公共」

使用路径:在「公共」 添加 → 切换到「我的」 打开 / 配置 → 在 Sage AI 中通过 / 或 @ 引用。移除后,Sage AI 及引用该 Skill 的智能体、自动化任务可能受影响。

与智能体的差异:Skill 在「公共」仅支持添加;打开、配置、移除均在「我的」完成。智能体在「我的」提供 使用 直达 Sage AI,Skill 则侧重标准化任务执行与参数配置。


快捷分类(按标签)

资源市场在搜索框下方提供按标签的分类切换(与搜索为且关系)。最前为「全部」(数量为资源总数);其后为各标签及数量。同一资源可出现在多个标签分类下。无标签资源仅在「全部」中可见。数量为 0 的标签可不展示。


价值

  • 标准化封装,一次建设多处复用
    将通知推送、报告生成、外部查单等重复操作封装为 Skill,供多智能体与 Sage AI 共享调用。

  • 内置 Skill 零配置启用
    平台预置常用 Skill,在「公共」添加即可使用,降低接入成本。

  • 添加后可配置
    「我的」中的 Skill 支持打开详情与必要配置(如「已配置」状态标识),适配不同环境参数。

  • 版本可控
    与智能体类似,公共市场新版本发布时,已添加用户可查看说明后自主升级。


使用场景

添加内置 Skill 并在 Sage AI 中调用

  • 适用对象:需要使用平台标准能力的运维人员。
  • 典型任务:添加日志解析、主机巡检等内置 Skill,在 Sage AI 中通过 / 或 @ 引用执行。
  • 推荐做法
    1. 资源市场 > Skill > 公共,找到目标 Skill;
    2. 点击「添加」;
    3. 切换至 我的,确认「已配置」状态(如需配置则先完成配置);
    4. 在 Sage AI 输入 / 或 @ 引用该 Skill。
  • 预期结果:Skill 可在当前资源域对话与智能体编排中被调用。

使用团队共享 Skill

  • 适用对象:业务团队、平台运营团队。
  • 典型任务:添加他人上架的「企微通知」「工单创建」类 Skill,嵌入团队自动化流程。
  • 推荐做法
    1. 在「公共」搜索并查看 Skill 详情(描述、版本、标签);
    2. 添加后在「我的」打开详情,阅读使用说明;
    3. 在 Sage AI 或智能体中引用。
  • 预期结果:按 Skill 定义的标准流程执行任务。

管理「我的」中的 Skill

  • 适用对象:已添加多个 Skill 的资源域管理员或使用者。
  • 典型任务:清理不再使用的 Skill;更新有新版本的 Skill;检查配置是否完整。
  • 推荐做法
    1. 进入 Skill > 我的
    2. 对闲置 Skill 点击「移除」(确认对 Sage AI/自动化/智能体的影响);
    3. 对有更新提示的 Skill 点击「更新」并阅读变更说明;
    4. 对需环境参数的 Skill 进入详情完成配置。
  • 预期结果:「我的」列表保持精简、版本及时、配置有效。

创作者发布 Skill 到公共市场

  • 适用对象:Skill 开发者。
  • 典型任务:在创作空间完成 Skill 开发并发布后,供其他资源域用户添加使用。
  • 推荐做法
    1. 创作空间发布 Skill → 自动出现在「我的」;
    2. 自测通过后发起上架审核;
    3. 审核通过后,其他用户在「公共」可见并添加。
  • 预期结果:Skill 从团队内自用扩展为平台内共享能力。

Skill 版本升级对下游的影响

  • 适用对象:引用该 Skill 的智能体 Owner、自动化任务 Owner。
  • 典型任务:Skill 升级后,确认已引用它的智能体与自动化任务行为是否符合预期。
  • 推荐做法
    1. 在「我的」查看更新说明;
    2. 确认升级;
    3. 在 Sage AI 试跑,并检查引用该 Skill 的自动化任务日志。
  • 预期结果:Skill、引用它的智能体及自动化任务均使用新版本(与资源市场版本策略一致)。

操作场景

  1. 进入 Skill 列表

    • 资源市场 > Skill Tab。
    • 切换 公共 / 我的
    • 使用场景标签、「更多」或高级筛选。
  2. 添加 Skill(公共)

    • 点击卡片「添加」。
    • 安装完成后在「我的」中可见。
  3. 打开 / 配置 / 移除(我的)

    • 打开:进入 Skill 详情与调试预览。
    • 配置:完成环境参数等必要设置(以界面为准);配置完成后显示「已配置」。
    • 移除:确认后卸载;引用该 Skill 的智能体与自动化可能受影响。
  4. 版本更新(我的)

    • 有新版时点击「更新」,阅读变更说明后确认。
  5. 查看 Skill 详情

    • 点击卡片主体进入详情页。
    • 左侧为 Skill 包内容与说明;右侧为调试预览(只读测试,不修改 Skill 配置)。

开始使用

添加并使用内置 Skill

  1. 资源市场 > Skill > 公共,选择目标 Skill,点击「添加」。
  2. 切换至 我的,点击「打开」查看详情。
  3. 如需配置,按详情页指引完成配置。
  4. 在 Sage AI 中输入 /Skill名称 或 @ 引用后发送任务描述。

image-20260724144507335

image-20260724144639614

Skill 详情与调试

  1. 在「我的」点击 Skill 卡片或「打开」。
  2. 阅读左侧 Skill 说明与结构。
  3. 在右侧调试区输入测试指令,预览执行效果(不修改 Skill 本身)。

image-20260724144615110


Skill 校验规范

创作空间 · Skill 创作 中导入 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

注意事项

  • 「公共」仅支持添加打开、配置、移除均在「我的」中操作。
  • 移除 Skill 后,Sage AI 与引用该 Skill 的智能体、自动化任务可能无法正常使用。
  • Skill 发布新版本后,已引用它的智能体与自动化任务将自动使用新版本,升级前请评估影响。
  • 内置 Skill 位于「公共」;创作空间自建 Skill 发布后在「我的」可见,上架审核通过后进入「公共」。
  • Skill 详情调试为只读预览;修改需前往 创作空间 · Skill 创作
  • 导入 Skill 包须通过上文 Skill 校验规范;校验依赖可用 LLM,模型列表为空时请先完成模型接入。

延伸阅读