技能创建器Skill skill-creator

本技能提供AI agent技能创建的完整指南,包括YAML配置、触发器设置和资源管理,帮助用户扩展agent能力。关键词:AI agent, 技能创建, YAML配置, 触发器, 资源管理, Agent Skills

AI智能体 0 次安装 0 次浏览 更新于 3/11/2026

name: skill-creator description: 创建有效Agent Skills的指南。当用户想要创建新技能(或更新现有技能)以扩展AI agent能力,集成专业知识、工作流或工具时使用。涵盖技能结构、YAML frontmatter、触发器配置和500行规则。 license: AGPL-3.0 metadata: triggers: type: domain enforcement: suggest priority: high keywords: - skill - skill-rules - SKILL.md - creating skill - writing skill intent-patterns: - “\b(how do|how does|explain)\b.?\bskill\b" - "\b(create|add|modify|build|write)\b.?\bskill\b” - “\bskill\b.*?\b(work|trigger|activate|system|structure|template|pattern)\b”

技能创建器

本技能提供遵循 Agent Skills 规范 创建有效技能的指导。

关于技能

技能是模块化、自包含的包,通过提供专业知识、工作流和工具来扩展AI agent能力。可将它们视为特定领域或任务的“入门指南”——它们将通用agent转变为具备程序性知识的专业agent,而这是任何模型都无法完全掌握的。

技能提供的内容

  1. 专业工作流 - 针对特定领域的多步骤程序
  2. 工具集成 - 处理特定文件格式或API的指令
  3. 领域专业知识 - 公司特定知识、模式、业务逻辑
  4. 捆绑资源 - 用于复杂和重复任务的脚本、参考和资产

核心原则

简洁是关键

上下文窗口是公共资源。技能与其他所有agent需要的内容共享上下文窗口:系统提示、对话历史、其他技能的元数据和实际用户请求。

默认假设:agent已经非常智能。 只添加它没有的上下文。挑战每条信息:“agent真的需要这个解释吗?”和“这段文字是否物有所值?”

优先使用简洁示例而非冗长解释。

设置适当的自由度

将特异性级别与任务的脆弱性和变异性匹配:

高自由度(基于文本的指令):当多种方法有效、决策依赖上下文或启发式指导方法时使用。

中等自由度(伪代码或带参数的脚本):当存在首选模式、允许一些变化或配置影响行为时使用。

低自由度(特定脚本、少量参数):当操作脆弱易错、一致性至关重要或必须遵循特定顺序时使用。

技能结构

每个技能由必需的SKILL.md文件和可选捆绑资源组成:

skill-name/
├── SKILL.md(必需)
│   ├── YAML frontmatter 元数据(必需)
│   │   ├── name:(必需)
│   │   ├── description:(必需)
│   │   └── metadata.triggers:(可选,用于自动激活)
│   └── Markdown 指令(必需)
└── 捆绑资源(可选)
    ├── scripts/          - 可执行代码(Python/Bash等)
    ├── references/       - 旨在根据需要加载到上下文中的文档
    └── assets/           - 输出中使用的文件(模板、图标、字体等)

SKILL.md Frontmatter

每个SKILL.md必须有包含必需和可选字段的YAML frontmatter:

字段 必需 描述
name 最多64字符。仅限小写字母、数字、连字符。必须与目录名匹配。
description 最多1024字符。描述技能功能和使用时机。
license 许可证名称或指向捆绑许可证文件的引用。
compatibility 最多500字符。环境要求(目标产品、系统包等)。
metadata 用于附加元数据的任意键值映射。
allowed-tools 预批准工具的空格分隔列表。(实验性)

触发器配置(metadata.triggers)

技能可以在 metadata.triggers 字段中定义自动激活触发器:

metadata:
  triggers:
    type: domain           # “domain”(建议性)或“guardrail”(强制执行)
    enforcement: suggest   # “suggest”、“warn”或“block”
    priority: high         # “critical”、“high”、“medium”或“low”
    keywords:              # 精确子串匹配(不区分大小写)
      - error
      - Result
      - error-stack
    intent-patterns:        # 用于意图检测的正则表达式模式
      - "\\b(handle|create)\\b.*?\\berror\\b"
      - "\\berror\\b.*?\\bhandling\\b"
    files:                  # 可选:基于文件的触发器
      include:
        - "**/src/**/*.rs"
      exclude:
        - "**/*.test.rs"
      content:
        - "use error_stack"

触发器类型:

  • keywords:用户提示中的不区分大小写子串匹配
  • intent-patterns:检测用户意图的正则表达式模式(使用 \\b 表示单词边界,.*? 表示非贪婪匹配)
  • files.include:文件路径的glob模式
  • files.exclude:排除的glob模式(例如,测试文件)
  • files.content:匹配文件内容的正则表达式模式

执行级别:

  • suggest:技能建议出现但不阻止执行
  • warn:显示警告但允许继续
  • block:要求在使用技能后才能继续(护栏)

捆绑资源(可选)

脚本(scripts/

用于需要确定性可靠性或反复重写任务的可执行代码(Python/Bash等)。

  • 何时包含:当相同代码被反复重写或需要确定性可靠性时
  • 示例:用于PDF旋转任务的 scripts/rotate_pdf.py
  • 优点:令牌高效、确定性,可能无需加载到上下文即可执行
参考资料(references/

旨在在工作时加载到上下文中的文档和参考材料。

  • 何时包含:用于agent应参考的文档
  • 示例:金融模式的 references/finance.md,API规范的 references/api_docs.md
  • 最佳实践:如果文件较大(>1万字),在SKILL.md中包含grep搜索模式
资产(assets/

不旨在加载到上下文中,而是在输出中使用的文件。

  • 何时包含:当技能需要用于最终输出的文件时
  • 示例:品牌资产的 assets/logo.png,模板的 assets/template.pptx

渐进披露设计原则

技能使用三级加载系统以高效管理上下文:

  1. 元数据(名称+描述) - 始终在上下文中(约100字)
  2. SKILL.md 主体 - 当技能触发时(推荐<5000字)
  3. 捆绑资源 - 根据需要(无限)

保持SKILL.md主体在500行以内。接近此限制时,将内容分割到单独文件中。

模式:带参考资料的高级指南

# PDF处理

## 快速开始
使用pdfplumber提取文本:[代码示例]

## 高级功能
- **表单填写**:完整指南见 [FORMS.md](references/FORMS.md)
- **API参考**:所有方法见 [REFERENCE.md](references/REFERENCE.md)

模式:领域特定组织

bigquery-skill/
├── SKILL.md(概述和导航)
└── references/
    ├── finance.md(收入、计费指标)
    ├── sales.md(机会、管道)
    └── product.md(API使用、功能)

技能创建过程

步骤1:通过具体示例理解技能

要创建有效技能,清晰理解技能将如何使用的具体示例:

  • “技能应支持哪些功能?”
  • “能给出一些使用此技能的示例吗?”
  • “用户说什么会触发此技能?”

步骤2:规划可重用技能内容

分析每个示例以确定哪些脚本、参考资料和资产会有帮助:

  • 脚本:反复重写的代码(例如,scripts/rotate_pdf.py
  • 资产:样板模板(例如,前端项目的 assets/hello-world/
  • 参考资料:模式和文档(例如,references/schema.md

步骤3:初始化技能

从头创建新技能时,运行init命令:

yarn agents:skill-management init <skill-name>

该命令在 .claude/skills/ 中创建技能目录,包含SKILL.md模板和示例资源目录。

步骤4:编辑技能

编写Frontmatter

---
name: my-skill
description: 描述技能功能和使用时机。包括触发关键词。
license: Apache-2.0
metadata:
  triggers:
    type: domain
    enforcement: suggest
    priority: medium
    keywords:
      - keyword1
      - keyword2
    intent-patterns:
      - "\\b(create|add)\\b.*?\\bsomething\\b"
---

描述最佳实践:

  • 包括技能功能和特定触发/上下文
  • 在此处包括所有“使用时机”信息——主体仅在触发后加载
  • 最多1024字符

编写主体

编写使用技能的指令。保持在500行以内。

步骤5:生成和验证技能规则

创建/修改技能后,验证并重新生成skill-rules.json:

yarn agents:skill-management validate
yarn agents:skill-management generate-skill-rules

步骤6:测试技能

使用特定提示测试:

echo '{"session_id":"test","prompt":"你的测试提示","cwd":"."}' | \
  yarn workspace @local/claude-hooks run:skill

调试匹配逻辑:

echo '{"session_id":"test","prompt":"你的测试提示","cwd":"."}' | \
  yarn workspace @local/claude-hooks dev:skill

参考文件

有关特定主题的详细信息,见:

测试清单

  • [ ] 技能文件创建在 .claude/skills/{name}/SKILL.md
  • [ ] 适当的frontmatter,包含名称和描述
  • [ ] 在 metadata.triggers 中配置触发器
  • [ ] skill-rules.json 重新生成
  • [ ] 使用真实提示测试关键词
  • [ ] 使用变体测试意图模式
  • [ ] SKILL.md 在500行以内
  • [ ] 如有需要,创建参考文件