🎯 AI Skills技能体系:让Agent拥有「专业技能」,可复用可进化!

34 阅读1分钟

第09期 · Skills 技能体系:给 AI 安装"专业应用程序"

系列:每日 AI 知识点
期数:第 09 期
主题:Skills 技能体系
难度:⭐⭐⭐(进阶)
一句话:Skills 是封装了专业能力的可插拔模块,让 AI 从"什么都会一点"的通才,变成"某个领域超级专业"的专才。


一、为什么需要 Skills?

通用 AI 的局限

一个通用的 AI 助手,面对专业任务时往往表现平平:

用户:「帮我分析这个 Excel 销售数据,生成趋势图并发送给团队」

通用 AI:
  「我可以帮你分析 Excel 数据。首先,你需要打开 Excel...
   (开始给出通用的操作指南,而不是直接执行)」

问题:
  - 不知道如何直接操作 Excel 文件
  - 不知道如何发送企业微信消息
  - 需要用户手动执行每一步

Skills 的解决方案

Skills(技能) 是为特定任务预先封装好的能力模块:

安装了 Excel Skill + 企业微信 Skill 的 AI:

用户:「帮我分析这个 Excel 销售数据,生成趋势图并发送给团队」

AI:
  [调用 Excel Skill] 读取并分析数据
  [调用 Excel Skill] 生成趋势图
  [调用 企业微信 Skill] 发送到指定群
  
  「✅ 分析完成!销售数据显示:
   本月环比增长 15%,华东区表现最佳。
   趋势图已发送到"销售团队"群。」

二、Skills 的概念解析

AI Skills技能体系概念图

Skills 和工具的区别

对比工具(Tool)技能(Skill)
粒度单个函数(如"读取文件")完整能力模块(如"Excel 处理")
包含内容仅函数定义指令 + 工具 + 示例 + 知识
专业深度通用操作领域专业知识
使用方式AI 自行决定何时调用AI 根据场景自动激活

Skills 的三大组成部分

组成一:描述(Description)

告诉 AI 这个 Skill 能做什么,以及在什么情况下应该使用它:

Skill 名称:Excel 数据分析专家

描述:
当用户需要处理 Excel 文件、分析数据、生成图表、
数据清洗、透视表操作时,使用此技能。
支持 .xlsx、.xlsm、.csv 格式。

触发关键词:Excel、表格、数据分析、图表、透视表

组成二:指令(Instructions)

详细的操作规范和专业知识:

Excel 分析 Skill 的指令示例:

1. 数据读取规范:
   - 使用 pandas 读取数据,指定 encoding='utf-8-sig'(避免中文乱码)
   - 自动检测数据类型,日期列转为 datetime 格式
   - 空值处理:数值列填充0,文本列填充"未知"

2. 分析流程:
   - 先展示数据概况(行数、列数、数据类型)
   - 再进行描述性统计
   - 最后生成可视化图表

3. 图表规范:
   - 使用 matplotlib,中文字体设置为 SimHei
   - 图表尺寸:1200×600px
   - 颜色方案:使用公司标准色 #1a3a6e

4. 输出格式:
   - 分析结果用 Markdown 表格展示
   - 关键发现用加粗文字标注
   - 图表保存为 PNG 格式

组成三:工具(Tools)

Skill 封装的具体工具函数:

# Excel Skill 包含的工具
def read_excel(file_path: str, sheet_name: str = None) -> DataFrame:
    """读取 Excel 文件"""

def analyze_data(df: DataFrame) -> dict:
    """数据统计分析"""

def create_chart(df: DataFrame, chart_type: str, x_col: str, y_col: str) -> str:
    """生成图表,返回图片路径"""

def write_excel(df: DataFrame, output_path: str) -> bool:
    """写入 Excel 文件"""

def create_pivot_table(df: DataFrame, values: list, index: list) -> DataFrame:
    """创建透视表"""

三、Skills 的内部结构解析

一个Skill的内部结构解析

完整的 Skill 结构示例

以"刷掌告警分析 Skill"为例:

# skill.yaml
name: palm-alarm-analyzer
version: 1.0.0
description: |
  专门用于分析刷掌终端告警的技能。
  当用户需要分析告警日志、查找告警根因、
  生成告警报告时使用此技能。
  触发词:告警、报警、异常、故障、ERR_

instructions: |
  你是一位有 5 年经验的刷掌终端运维专家。
  
  ## 告警分析流程
  1. 首先提取告警的关键信息(设备SN、时间、错误码、告警级别)
  2. 查询知识库中的历史告警案例
  3. 分析告警的可能根因(按可能性排序)
  4. 给出具体的处理建议
  
  ## 告警级别定义
  - P0:影响所有用户,需立即处理(15分钟内响应)
  - P1:影响部分用户,需尽快处理(1小时内响应)
  - P2:功能异常但有降级,需当天处理
  - P3:轻微问题,计划处理
  
  ## 输出格式
  使用以下 Markdown 格式输出分析结果:
  ### 告警概要
  ### 根因分析
  ### 处理建议
  ### 预防措施

tools:
  - query_alarm_history    # 查询历史告警
  - search_knowledge_base  # 搜索知识库
  - get_device_status      # 获取设备状态
  - generate_alarm_report  # 生成告警报告

examples:
  - input: "ERR_PALM_TIMEOUT_003 频繁出现"
    output: "根据历史案例分析,该错误码通常由网络抖动引起..."

四、Skills 生态系统

Skills生态系统全景图

效率工具类 Skills

Skill功能典型用途
Excel 处理数据分析、图表生成、透视表测试数据分析
PPT 生成自动生成演示文稿测试报告演示
PDF 处理提取内容、合并、加水印文档处理
文档生成Markdown/Word 文档创建测试报告

信息获取类 Skills

Skill功能典型用途
网页搜索实时搜索互联网技术调研
天气查询实时天气信息出行计划
新闻聚合行业新闻汇总技术动态跟踪
知识库检索企业内部知识搜索故障排查

业务集成类 Skills

Skill功能典型用途
TAPD Skill需求、缺陷、任务管理项目管理
工蜂 Skill代码仓库操作代码管理
蓝盾 SkillCI/CD 流水线自动化构建
告警处理 Skill告警分析和处理运维工作

创作辅助类 Skills

Skill功能典型用途
图片生成AI 生成配图文章配图
代码审查自动化代码 review质量保障
测试用例生成自动生成测试用例测试效率
技术文档自动生成 API 文档文档维护

五、如何设计一个高质量的 Skill

设计原则一:单一职责

一个 Skill 只做一件事,做到极致:

❌ 错误设计:「万能助手 Skill」(什么都做,什么都不精)

✅ 正确设计:
  「Excel 数据分析 Skill」
  「TAPD 需求管理 Skill」
  「刷掌告警分析 Skill」
  (每个 Skill 专注一个领域)

设计原则二:描述要精准

Skill 的 Description 决定了 AI 何时使用它,描述不准会导致:

  • 该用的时候没用(漏用)
  • 不该用的时候用了(误用)
❌ 模糊描述:「处理数据」
✅ 精准描述:「当用户需要读取、分析、可视化 Excel/CSV 格式的
              数据文件时使用。触发词:Excel、表格、数据分析、
              图表、.xlsx、.csv」

设计原则三:指令要具体

Instructions 越具体,AI 的行为越可预测:

❌ 模糊指令:「分析数据时要专业」

✅ 具体指令:
  「分析数据时,按以下顺序输出:
   1. 数据概况(行数、列数、字段说明)
   2. 关键指标统计(均值、最大值、最小值、中位数)
   3. 异常值检测(超过均值±3σ的数据点)
   4. 趋势分析(时间序列数据必须包含)
   5. 结论和建议(不超过3条)」

设计原则四:包含示例

Few-shot 示例能显著提升 Skill 的输出质量:

examples:
  - input: "分析这个月的销售数据"
    output: |
      ## 数据概况
      - 数据量:1,250 条记录
      - 时间范围:2024-01-01 至 2024-01-31
      
      ## 关键指标
      | 指标 | 数值 |
      |------|------|
      | 总销售额 | ¥1,250,000 |
      | 日均销售 | ¥40,323 |
      ...

六、Skills 在实际工作中的价值

场景一:测试工程师的 Skill 工具箱

日常工作中常用的 Skills:

📊 测试数据分析 Skill
  → 输入:测试结果 Excel
  → 输出:缺陷分布图、覆盖率分析、趋势报告

🐛 Bug 分析 Skill
  → 输入:Bug 描述 + 日志
  → 输出:根因分析、复现步骤、修复建议

📝 测试用例生成 Skill
  → 输入:需求文档
  → 输出:符合公司格式的测试用例集

📋 测试报告生成 Skill
  → 输入:测试数据
  → 输出:完整的测试报告 Word 文档

场景二:构建团队专属 Skill

# 刷掌团队专属 Skill 示例
# 封装了团队的测试规范和最佳实践

@skill(
    name="palm-test-expert",
    description="刷掌终端测试专家,包含完整的测试规范和最佳实践"
)
class PalmTestExpertSkill:
    
    INSTRUCTIONS = """
    你是一位有 5 年刷掌终端测试经验的专家。
    
    ## 设备型号知识
    - O1:第一代刷掌终端,支付场景
    - O2:第二代,新增门禁功能
    - O3:第三代,支持团餐场景
    - O4:最新款,多场景融合
    
    ## 测试用例格式
    [按公司标准格式...]
    
    ## 常见问题处理
    [按团队积累的经验...]
    """
    
    TOOLS = [
        query_test_cases,
        search_bug_history,
        generate_test_report
    ]

七、一句话总结

Skills = 专业能力的封装模块,包含描述(何时使用)+ 指令(如何使用)+ 工具(具体能力)。通过安装合适的 Skills,AI 从通用助手变成你的专属领域专家,效率倍增。


延伸阅读

  • Knot Skills 市场knot.woa.com — 企业内部 Skills 生态
  • Skills 设计指南:参考 Anthropic 的 Tool Use 最佳实践
  • 开源参考:LangChain Tools 的设计模式

下一期预告:第10期 · Rules 行为规范 — Skills 给 AI 增加能力,Rules 给 AI 设定边界。了解如何通过 Rules 让 AI 的行为可预测、可控制、符合业务规范。