第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 的概念解析
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.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
| Skill | 功能 | 典型用途 |
|---|---|---|
| Excel 处理 | 数据分析、图表生成、透视表 | 测试数据分析 |
| PPT 生成 | 自动生成演示文稿 | 测试报告演示 |
| PDF 处理 | 提取内容、合并、加水印 | 文档处理 |
| 文档生成 | Markdown/Word 文档创建 | 测试报告 |
信息获取类 Skills
| Skill | 功能 | 典型用途 |
|---|---|---|
| 网页搜索 | 实时搜索互联网 | 技术调研 |
| 天气查询 | 实时天气信息 | 出行计划 |
| 新闻聚合 | 行业新闻汇总 | 技术动态跟踪 |
| 知识库检索 | 企业内部知识搜索 | 故障排查 |
业务集成类 Skills
| Skill | 功能 | 典型用途 |
|---|---|---|
| TAPD Skill | 需求、缺陷、任务管理 | 项目管理 |
| 工蜂 Skill | 代码仓库操作 | 代码管理 |
| 蓝盾 Skill | CI/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 的行为可预测、可控制、符合业务规范。