news 2026/9/13 8:37:54

如何安装 skills-ref 并完成 Agent Skills 技能首次校验?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何安装 skills-ref 并完成 Agent Skills 技能首次校验?

如何安装 skills-ref 并完成 Agent Skills 技能首次校验?

【免费下载链接】agentskillsSpecification and documentation for Agent Skills项目地址: https://gitcode.com/GitHub_Trending/ag/agentskills

你写好了一个 Agent Skill(一个包含SKILL.md的文件夹),需要确认它的 frontmatter 合法、命名符合规范,再交给 agent 使用。agentskills 仓库中的skills-ref参考库提供了skills-ref validate命令完成这次首次校验。本文流程:在 Python 虚拟环境中安装 skills-ref,准备一个待校验的技能目录,运行校验命令,并根据输出和退出码判断结果。

前提条件与限制:

  • Python 3.11 及以上。skills-ref/pyproject.toml 声明requires-python = ">=3.11",依赖click>=8.0strictyaml>=1.7.3会在安装时自动解析。
  • skills-ref 的 README 明确说明:该库仅供演示(demonstration purposes only),不打算用于生产环境。
  • 以下命令都在 agentskills 仓库的skills-ref/目录内执行(pip install -e .uv sync都以该目录下的pyproject.toml为项目根)。

安装 skills-ref

macOS / Linux(pip)

python -m venv .venv source .venv/bin/activate pip install -e .

macOS / Linux(uv,可选替代)

uv sync source .venv/bin/activate

Windows(pip)

PowerShell:

python -m venv .venv .venv\Scripts\Activate.ps1 pip install -e .

Command Prompt:

python -m venv .venv .venv\Scripts\activate.bat pip install -e .

Windows 使用 uv(PowerShell):

uv sync .venv\Scripts\Activate.ps1

安装成功的判断标准来自 README:在激活的虚拟环境中,skills-ref可执行文件会出现在PATH上。安装完成后直接进入下面的校验步骤即可确认它可用。

准备待校验的技能

一个技能是一个包含SKILL.md的文件夹,SKILL.md必须由 YAML frontmatter 开头,后接 Markdown 正文(正文本身没有格式限制,见 specification)。首次校验只检查 frontmatter 和命名规则,要求:

  • name必填:最长 64 个字符,只允许小写字母、数字和连字符,不能以连字符开头或结尾,且必须与所在目录名一致;
  • description必填:非空,最长 1024 个字符;
  • frontmatter 中只接受namedescriptionlicenseallowed-toolsmetadatacompatibility这些字段,出现其他字段会被判为校验错误;
  • compatibility若填写,最长 500 个字符。

如果还没有现成的技能,可以直接用 Quickstart 中的roll-dice技能作为首次校验对象。创建目录roll-dice/,写入roll-dice/SKILL.md

--- name: roll-dice description: Roll dice using a random number generator. Use when asked to roll a die (d6, d20, etc.), roll dice, or generate a random dice roll. --- To roll a die, use the following command that generates a random number from 1 to the given number of sides: ```bash echo $((RANDOM % <sides> + 1)) ```

正文中的<sides>是技能指令内部给 agent 运行时替换的占位符(Quickstart 文档说明了替换方式),不是安装或校验前需要处理的模板变量——校验不解析正文内容。

执行首次校验

在激活虚拟环境的 shell 中,对技能目录运行:

skills-ref validate roll-dice

换成自己的技能时,把参数换成技能目录路径,例如 specification 中给出的形式:

skills-ref validate ./my-skill

参数要求(来自 CLI 实现):

  • 路径必须存在;
  • 可以指向技能目录,也可以直接指向目录内的SKILL.md文件(小写skill.md也识别),直接指向文件时命令会自动改用其父目录;
  • 退出码:0表示技能有效,1表示发现校验错误。

判读校验结果

成功时(退出码 0),输出形如:

Valid skill: roll-dice

失败时(退出码 1),输出Validation failed for <路径>:,随后每条错误单独一行,例如:

Validation failed for my-skill: - Skill name 'MySkill' must be lowercase

以上是按源码中实际的消息格式构造的示例结果,你的输出取决于具体的技能内容。出现失败时,按下面的对照表定位原因(消息文本来自 validator.py 与 parser.py):

输出中的错误行对应原因
Missing required file: SKILL.md目录里没有SKILL.md(或小写skill.md
SKILL.md must start with YAML frontmatter (---)文件开头不是---
SKILL.md frontmatter not properly closed with ---frontmatter 没有用---闭合
Invalid YAML in frontmatter: ...frontmatter 的 YAML 语法不合法
Missing required field in frontmatter: name/...: description缺少必填字段
Skill name '...' exceeds 64 character limitname超过 64 个字符
Skill name '...' must be lowercasename含大写字母
Skill name cannot start or end with a hyphenname以连字符开头或结尾
Skill name cannot contain consecutive hyphensname含连续连字符
Skill name '...' contains invalid characters. ...name含字母、数字、连字符以外的字符
Directory name '...' must match skill name '...'目录名与name不一致(比较前双方都做 Unicode NFKC 规范化)
Description exceeds 1024 character limitdescription超过 1024 个字符
Compatibility exceeds 500 character limitcompatibility超过 500 个字符
Unexpected fields in frontmatter: ...frontmatter 出现了允许列表之外的字段

这些规则在 tests/test_validator.py 中有对应的测试用例,可以对照阅读每种失败的具体形态。

用 read-properties 交叉核对(可选)

校验通过后,可以用第二条命令确认 frontmatter 实际被解析成了什么:

skills-ref read-properties roll-dice

它会解析SKILL.md的 YAML frontmatter 并以 JSON 输出技能属性(namedescription及可选字段)。退出码0表示成功,1表示解析错误,失败时输出Error: ...。这条命令不做完整校验,只反映 agent 发现技能时读取的元数据。

限制与下一步

  • skills-ref validate检查的是 frontmatter 的合法性与命名规范;SKILL.md正文没有格式限制,校验不检查正文内容,也不检查技能实际能否完成任务。
  • skills-ref是参考实现,仅供演示,生产用途请使用其他工具链。
  • 下一步:技能校验通过后,可以用skills-ref to-prompt <技能目录> [更多技能目录]生成<available_skills>XML 块,放入 agent 的系统提示词;该格式推荐给 Anthropic 的模型,其他 Skill Client 可以自行调整格式(见 skills-ref README)。

【免费下载链接】agentskillsSpecification and documentation for Agent Skills项目地址: https://gitcode.com/GitHub_Trending/ag/agentskills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 8:37:49

ima与Obsidian怎么选?从知识库到第二大脑的联动实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 8:37:40

D2 如何导出 PPTX 幻灯片并保留形状链接与翻页导航?

D2 如何导出 PPTX 幻灯片并保留形状链接与翻页导航&#xff1f; 【免费下载链接】d2 D2 is a modern diagram scripting language that turns text to diagrams. 项目地址: https://gitcode.com/GitHub_Trending/d2/d2 如果你的 D2 文件包含多个 board&#xff08;图层、…

作者头像 李华
网站建设 2026/9/13 8:37:23

uniapp Android视频录制:videoRec原生插件原理与实践

简介&#xff1a;面向uniapp打包Android端视频录制需求的开发者&#xff0c;专门解决uni.chooseVideo在Android端的调用限制。插件以aar形式集成&#xff0c;支持nvue页面中通过videoRec组件快速调用&#xff0c;可自由切换前置/后置摄像头&#xff0c;录制不设时长限制&#x…

作者头像 李华
网站建设 2026/9/13 8:32:39

Spring Boot 3.5.12依赖管理与版本冲突解决

1. Spring Boot 3.5.12依赖版本管理详解作为Java开发者最常用的企业级框架&#xff0c;Spring Boot的依赖管理一直是项目配置中的核心环节。3.5.12版本作为当前GA&#xff08;General Availability&#xff09;的稳定版本&#xff0c;其POM文件中的依赖版本定义直接影响着项目的…

作者头像 李华