10分钟

五、九大使用 Skills 技巧

5.1 模块化任务分解边界清晰,职责单一,一个 Skills 专注一件事

核心原则:

  • 将复杂任务拆分成多个独立的 Skills ,每个 Skills 只负责一个明确的功能
  • 避免创建"万能 Skills",保持单一职责原则,方便维护和组合使用,灵活应对不同场景

示例:

❌ 不好: 创建一个 "web-development" Skill 处理所有前端任务
✅ 好的: 分别创建 "react-component-builder"、"api-integration"、"ui-styling" 等专项 Skill

5.2 提供清晰的触发条件 - 让 AI 知道何时使用

核心原则:

  • 在 description 中清晰描述技能的适用场景、结合精确关键词和语义理解,通过触发条件激活相关 Skills ,避免误触发
  • 使用"当用户提到 X 时"、"适用于 Y 场景"等明确表述

示例:

## 触发条件
- 用户提到"小红书"、"发布笔记"
- 需要生成符合小红书风格的内容
- 涉及小红书 API 调用或数据处理

5.3 热数据前置 - 高频信息优先加载

核心原则:

  • 识别 80% 场景下会用到的"热数据",放在核心指令层
  • 20% 的边缘场景数据作为"冷数据",外部存储

示例:

## ? 热数据(核心指令层)
### 最常用的 3 个 API
```python
# 1. 发布笔记(使用率 85%)
create_note(title, content, images)
 
# 2. 上传图片(使用率 80%)
upload_image(file_path)
 
# 3. 获取笔记状态(使用率 60%)
get_note_status(note_id)
```
 
## ❄️ 冷数据(外部引用)
- 完整 API 列表(50+ 接口) → 存储在 `api_reference.md`
- 历史版本兼容性 → 存储在 `CHANGELOG.md`
- 高级配置参数 → 使用时通过 `read_file` 工具获取

5.4 参考官方 Skills 模版案例,示例代码分级,借助 AI 快速生成

核心原则:

  • 参考官方模版,在 Skills 中提供完整的代码示例和配置模板,核心层只提供 1-2 个最简示例(< 10 行代码)
  • 完整教程、高级用法作为外部资源引用

示例:

## ? 快速开始(核心层)
```python
# 30 秒上手
from xhs import Client
client = Client(api_key="your_key")
client.create_note("标题", "内容", ["image.jpg"])
```
## ? 完整教程(外部资源)
- 高级配置 → `examples/advanced_usage.py`
- 批量操作 → `examples/batch_processing.py`
- 最佳实践 → `docs/best_practices.md`
 
(AI 会根据用户需求自动读取相应文件)

5.5 三层信息架构 - 渐进式披露内容

核心原则:

  • 将 Skills 内容分为三层:元数据(Meta)、核心指令(Instruction)、参考资源(Reference)
  • 只在需要时逐层加载,避免一次性塞入所有信息

示例:

## ? 元数据层 (≤200 tokens, 始终加载)
**触发词:** 小红书、RED、发布笔记
**适用场景:** 内容发布、数据分析
**依赖:** Python 3.8+, requests
 
---
## ? 核心指令层 (触发时加载)
### 基础发布流程
1. 认证 → 2. 上传图片 → 3. 创建笔记
 
### 关键 API
- `create_note(title, content, images)`
- `upload_image(file_path)`
 
---
## ? 参考资源层 (按需加载)
- 完整 API 文档 → 使用 `web_fetch` 工具获取
- 错误码对照表 → 遇到错误时查询
- 高级配置示例 → 用户明确需要时提供

5.6 组合优先 - 设计可被调用的 Skills

核心原则:

  • Skills 应该像"乐高积木",可以被自由组合和复用
  • 通过参数传递配置,而不是写死在代码中
  • 提供稳定的接口(合约),确保向后兼容

示例:

# Brand Content Generator (正确示范)
## 触发条件
- 用户提到"生成品牌内容"、"营销文案"
- 其他 Skill 调用本 Skill 的内容生成能力
 
## 接口定义(合约)
 
### 输入参数
```typescript
interface BrandConfig {
  // 必填参数
  companyName: string;        // 公司名称
  topic: string;              // 内容主题

  // 可选参数(有默认值)
  brandColor?: string;        // 品牌色,默认 #000000
  slogan?: string;            // 品牌口号,默认为空
  targetAudience?: string;    // 目标用户,默认"大众"
  contentStyle?: string;      // 内容风格,默认"专业"
  platform?: string;          // 发布平台,默认"小红书"
}
```
### 输出格式
```typescript
interface GeneratedContent {
  title: string;              // 标题
  content: string;            // 正文
  hashtags: string[];         // 话题标签
  style: object;              // 样式配置
  metadata: object;           // 元数据
}
```
## 使用示例
 
### 示例 1:直接调用(腾讯)
```python
result = generate_brand_content({
    "companyName": "腾讯科技",
    "topic": "AI 编程助手发布",
    "brandColor": "#006EFF",
    "slogan": "用户为本,科技向善",
    "targetAudience": "开发者",
    "contentStyle": "科技感"
})
```

5.7 识别何时应该创建 Skills - 四大黄金信号

核心原则:

  • 核心原则: 使用高频 × 任务复杂度 x 团队规模 = Skill 价值,例如:
  • 同一任务频繁执行;
  • Prompt 较长(超过 2000 字);
  • 团队协作、知识共享;
  • 任务包含脚本执行或模板生成。
  • 例如一次性小任务,不建议使用

示例:

频率:每天 1 次,每周 5 次
重复内容:
1. 从数据库提取昨日数据
2. 计算 10+ 个指标(DAU、留存率、转化率...)
3. 生成 Excel 报表
4. 发送邮件给管理层
5. 上传到共享文件夹
 
每次手动输入:
"帮我生成昨日数据报表,需要包括:
- DAU、MAU、留存率
- 新增用户、活跃用户
- 转化漏斗各环节数据
- 同比、环比分析
- 生成 Excel 格式
- 发送给 boss@company.com
..."
(每次输入 200+ 字,耗时 2 分钟)

5.8 动态上下文管理 - 用完即释放

核心原则:

  • Skills 执行完任务后,主动提示 AI 释放详细文档
  • 使用"会话状态标记"避免重复加载

示例:

# 上下文管理策略
 
## 任务开始
1. 加载核心指令层
2. 根据用户需求按需加载参考资源
 
## 任务完成
3. 提示 AI: "详细文档已使用完毕,可释放上下文"
4. 保留元数据层,以便后续快速重新激活
 
## 多轮对话优化
- 使用 `.skill_cache.json` 记录已加载的资源
- 避免同一会话中重复加载相同文档

5.9 Skills 的测试与版本管理 - 像对待代码一样对待 Prompt

核心原则:

  • Prompt = Code,必须可测试、可回滚
  • Skills 是软件工程资产,不是一次性文档
  • 必须有测试用例验证行为
  • 必须有版本控制支持回滚

示例:

1. 明确的契约
输入: source_path , output_format , include_examples
输出: 成功/失败的标准 JSON 格式
错误码: PARSE_ERROR , UNSUPPORTED_FRAMEWORK
 
2. 完整的测试 (87% 覆盖率)
 
单元测试: 路由解析、请求体解析、错误处理
集成测试: 多文件项目、认证识别
E2E 测试: 真实 50+ 端点项目
3. 版本控制
遵循语义化版本管理
v1.0.0: 稳定版
v0.9.0-beta: 实验版,基础功能
清晰的升级路径和迁移指南