Skip to content

5.3a Skill 基础

💡 一句话总结:掌握 Skill 的基本概念和创建方法,封装可复用的复杂指令。


学完你能做什么

  • 理解 Skill 的概念和作用
  • 能创建基础的 Skill
  • 能配置 Skill 的参数
  • 能使用和管理 Skill

🎒 开始前的准备

确保你已经完成以下事项:

  • [ ] 了解 AGENTS.md 的基本结构
  • [ ] 有使用 OpenCode 的经验

核心思路

什么是 Skill

Skill = 可复用的指令集

Skill 是一个封装好的指令集合,可以:

  • 被多个 Agent 共享
  • 支持参数化配置
  • 实现复杂的工作流程
  • 保持一致性

Skill vs Agent

特性AgentSkill
范围完整的人格和角色特定的功能或任务
复杂度低到中
复用性需要配置
参数化角色描述固定支持动态参数

Skill 配置结构

yaml
skills:
  my-skill:
    name: "我的技能"
    description: "一个实用的技能"
    category: "development"
    parameters:
      - name: "input"
        type: "string"
        required: true
        description: "输入内容"
      - name: "format"
        type: "string"
        required: false
        default: "json"
        description: "输出格式"
    workflow: |
      1. 接收输入参数
      2. 处理数据
      3. 返回结果
    examples:
      - input: "hello"
        output: "收到: hello"

常用配置项

基础配置

yaml
skills:
  basic-skill:
    name: "基础技能"
    description: "一个简单的技能示例"
    category: "general"
    version: "1.0.0"
    author: "your-name"

参数配置

yaml
skills:
  parameterized-skill:
    name: "参数化技能"
    description: "支持多种参数的技能"
    parameters:
      - name: "text"
        type: "string"
        required: true
        description: "要处理的文本"
      
      - name: "max_length"
        type: "number"
        required: false
        default: 100
        description: "最大长度"
      
      - name: "uppercase"
        type: "boolean"
        required: false
        default: false
        description: "是否转大写"
      
      - name: "options"
        type: "array"
        required: false
        default: []
        description: "选项列表"

输出配置

yaml
skills:
  output-skill:
    name: "输出控制技能"
    description: "控制输出格式的技能"
    output:
      format: "markdown"
      max_length: 2000
      include_examples: true
      style:
        code_block: true
        syntax_highlight: true

跟我做

实战 1:创建一个代码格式化 Skill

目标:创建一个格式化代码的 Skill

yaml
skills:
  format-code:
    name: "代码格式化"
    description: "格式化各种编程语言的代码"
    category: "development"
    parameters:
      - name: "code"
        type: "string"
        required: true
        description: "需要格式化的代码"
      
      - name: "language"
        type: "string"
        required: false
        default: "auto"
        description: "编程语言"
      
      - name: "style"
        type: "string"
        required: false
        default: "standard"
        description: "格式化风格"
    
    workflow: |
      1. 接收代码和参数
      2. 检测或使用指定的语言
      3. 应用格式化规则
      4. 返回格式化后的代码
    
    examples:
      - input: |
          function  hello( ) {return"world"}
        parameters:
          language: "javascript"
          style: "standard"
        output: |
          ```javascript
          function hello() {
            return "world";
          }
          ```

实战 2:创建一个文档生成 Skill

目标:根据代码生成文档

yaml
skills:
  generate-docs:
    name: "文档生成器"
    description: "根据代码自动生成文档"
    category: "documentation"
    parameters:
      - name: "file_path"
        type: "string"
        required: true
        description: "代码文件路径"
      
      - name: "output_format"
        type: "string"
        required: false
        default: "markdown"
        description: "输出格式"
      
      - name: "include_examples"
        type: "boolean"
        required: false
        default: true
        description: "是否包含示例"
    
    workflow: |
      1. 读取代码文件
      2. 解析代码结构
      3. 提取注释和接口
      4. 生成文档
      5. 返回文档内容

📋 Skill 模板库

模板 1:数据处理

yaml
skills:
  data-processor:
    name: "数据处理器"
    description: "处理和分析数据"
    category: "data"
    parameters:
      - name: "data"
        type: "string"
        required: true
        description: "输入数据"
      
      - name: "operation"
        type: "string"
        required: true
        description: "操作类型"
        options:
          - "sort"
          - "filter"
          - "aggregate"
          - "transform"

模板 2:API 调用

yaml
skills:
  api-caller:
    name: "API 调用器"
    description: "简化 API 调用流程"
    category: "network"
    parameters:
      - name: "url"
        type: "string"
        required: true
        description: "API 地址"
      
      - name: "method"
        type: "string"
        required: false
        default: "GET"
        description: "HTTP 方法"
      
      - name: "headers"
        type: "object"
        required: false
        default: {}
        description: "请求头"
      
      - name: "body"
        type: "string"
        required: false
        description: "请求体"

检查点 ✅

全部通过才能继续

  • [ ] 理解 Skill 的概念
  • [ ] 能创建基础 Skill
  • [ ] 能配置参数
  • [ ] 能使用 Skill

本课小结

你学会了:

  1. Skill 的基本概念
  2. Skill 配置结构
  3. 创建了两个实用 Skill
  4. Skill 模板库

下一课预告

下一课我们将学习 Skill 进阶,掌握更高级的配置和使用方法。


📚 更多完整模板Prompt 模板库