(自用)skill基础

9 阅读4分钟

什么是skill

一个skill是一个文件夹, 包含:

  • SKILL.MD (必须): 带有YAML前置元数据(frontmatter)的Markdown的指令文档
  • scripts/ (可选): 可执行代码(Python, Bash)
  • references/ (可选): 按需加载的文档资料
  • assets/ (可选): 输出中使用的模板,字体,图标等资源

核心设计原则:

渐进式披露(Progressive Disclosure)

技能采用三级结构:

  • 第一层 (YAML 前置元数据): 始终加载在系统提示词中, 只提供足够的信息, 让Agent知道在什么情况下使用哪个技能, 而无需把全部内容都加载进上下文
  • 第二层 (SKILL.md 正文): 当Agent认为该技能与当前任务相关的时候才会加载, 包含完整的指令和指导
  • 第三层 (链接文件): 技能目录中打包的其他文件, agent仅在需要的时候才会进入, 浏览并且发现

可组合型(Composability)

Agent可以同时加载多个SKILL, 你的SKILL应该与其他的技能良好写作, 而不是默认他是唯一可用的能力

可移植性(Portability)

技能应该在所有的Agent中的表现完全一致, 只要运行环境支持该技能所需的依赖,你创建一次技能, 就可以在所有使用场景中无需修改直接使用

用例

好的用例定义

Use Case: Project Sprint Planning 
Trigger: User says "help me plan this sprint" or "create sprint tasks" 
Steps: 
1. Fetch current project status from Linear (via MCP) 
2. Analyze team velocity and capacity 
3. Suggest task prioritization 
4. Create tasks in Linear with proper labels and estimates Result: Fully planned sprint with tasks created

你需要自问:

  • 用户想要达成什么目标
  • 这需要哪些多步骤的工作流
  • 需要用到哪些工具(内置或MCP)
  • 应该把哪些领域知识或最佳实践沉浸进skill?

常见的skill用例类别

类别1: 文档与资产创建(Document & Asset Creation)

用途: 生成一致,高质量的输出,包括文档,演示文稿,应用,设计稿,代码等 真实例子: frontend-design skill (也可以参考docx,pptx,xlsx,和ppt等相关skill) 例如: 创建风格鲜明, 可用于生产环境的前端界面, 具备高质量设计, 用于构建web组件, 页面, 产物, 海报或者应用的时候 关键技巧:

  • 内置风格指南与品牌标准
  • 使用模板结构保证输出一致性
  • 在最终输出前进行质量检查,列出清单(checklist)
  • 不需要外部工具-仅使用内置能力

类别2: 工作流自动执行

用途: 适用于需要一致方法论的多步骤流程, 包括跨多个MCP server的协同 真实例子: skill-creator skill 例如: 用于创建新技能的交互式指南, 带用户完成用例定义, frontmatter生成, 指令撰写与校验 关键技巧:

  • 带校验关卡(validation gates)的逐步工作流
  • 常见结构的模板化
  • 内置审查与改进建议
  • 迭代式优化循环

类别3: mcp增强

用途: 提供工作流知道, 以增强mcp server 所提供的工具访问能力 真实例子: sentry-code-review skill 通过他们的mcp server 使用Sentry 的错误监控数据, 自动分析并修复github pull request 中检测到的bug 关键技巧:

  • 串联多个mcp调用并按顺序协调执行
  • 内嵌领域专业知识
  • 补充用户原本需要手动说明的上下文信息
  • 针对常见的mcp问题的错误处理

如果判断你的skill在正常工作

量化指标:

  • 在90%的相关查询上能触发skill

  • 如何衡量: 准备10-20条本应该触发该skill 的测试查询, 记录他自动加载的次数vs需要手动显示调用的次数

  • 在x次工具调用内完成工作流

  • 如何衡量: 对比同一个任务在启用/不启用skill的情况下执行, 统计工具调用次数与消耗的总token数

  • 每个工作流0次失败的api调用

  • 如何衡量: 在此时运行期间监控mcp server日志, 记录重试率与错误码 质性指标

  • 用户不需要提示agent下一步该做什么

  • 如何评估: 测试过程中观察你需要多少次纠正方向或澄清下一步了; 也可以向beta用户收集反馈

  • 工作流能完成且不需要用户纠错

  • 如何评估: 对同一请求重复运行3-5次, 比较输出在结构一致性与质量上的表现

  • 跨会话结果一致

  • 如何评估: 新用户在几乎不需要额外知道的情况下, 能否第一次就完成任务