跳转至

第八章:最佳实践

设计原则

1. 简洁优先

# ✅ 好的做法
## 快速开始
```python
text = extract_text("file.pdf")

❌ 不好的做法

介绍

PDF(Portable Document Format)是由 Adobe 公司开发的一种文件格式... (大量背景知识)

**原则**:上下文窗口是公共资源,只添加必要信息。

### 2. 渐进披露

```markdown
# ✅ 好的做法
## 快速开始
[基础示例]

## 高级功能
详见 [advanced.md](references/advanced.md)

# ❌ 不好的做法
[所有内容都在 SKILL.md 中]

原则:信息分层,按需加载。

3. 示例驱动

# ✅ 好的做法
## 提取文本
```python
with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()

❌ 不好的做法

提取文本

首先需要打开文件,然后访问 pages 属性, 接着调用 extract_text 方法...

**原则**:用代码示例代替冗长解释。

## 常见模式

### 工具型 Skill 模板

```markdown
---
name: tool-name
description: |
  工具功能描述。支持:
  (1) 功能1
  (2) 功能2
  当用户需要处理 X 时使用。
---

# 工具名称

一句话描述。

## 快速开始

最常用的基本用法。

## 可用脚本

- `scripts/action1.py` - 功能说明
- `scripts/action2.py` - 功能说明

## 高级功能

详见 [references/advanced.md](references/advanced.md)

工作流型 Skill 模板

---
name: workflow-name
description: |
  工作流描述。当需要执行 X 流程时使用。
---

# 工作流名称

## 工作流程

1. **步骤一**
   具体操作

2. **步骤二**
   具体操作

3. **步骤三**
   具体操作

## 检查清单

- [ ] 检查项1
- [ ] 检查项2

## 参考资料

见 [references/guide.md](references/guide.md)

领域型 Skill 模板

---
name: domain-name
description: |
  领域描述。当需要处理 X 领域数据时使用。
---

# 领域名称

## 领域概述

简要说明。

## 数据结构

见 [references/schema.md](references/schema.md)

## 常用操作

### 操作1
```python
# 示例代码

操作2

# 示例代码

详细文档

  • API 参考
  • 示例集合
    ## 避免的反模式
    
    ### 反模式 1:过度解释
    
    ```markdown
    # ❌ 避免
    ## 介绍
    
    这个技能可以帮助你处理 PDF 文件。PDF 是一种非常常见的
    文档格式,广泛应用于各个领域。使用这个技能,你可以
    轻松地完成各种 PDF 相关的任务...
    
    # ✅ 推荐
    ## 快速开始
    
    ```python
    import pdfplumber
    text = pdfplumber.open("file.pdf").pages[0].extract_text()
    
    ### 反模式 2:缺少触发条件
    
    ```yaml
    # ❌ 避免
    description: PDF 处理技能
    
    # ✅ 推荐
    description: |
      PDF 处理技能。支持创建、编辑、合并 PDF。
      当用户需要处理 PDF 文件时使用。
    

反模式 3:重复内容

# ❌ 避免
## SKILL.md
[完整 API 文档]

## references/api.md
[相同的完整 API 文档]

# ✅ 推荐
## SKILL.md
基础用法示例

## references/api.md
完整 API 文档

反模式 4:过度抽象

# ❌ 避免
## 处理器模式

使用抽象工厂模式创建处理器实例...

# ✅ 推荐
## 处理文件

```python
processor = FileProcessor()
processor.process("file.pdf")
## 质量检查清单

```yaml
quality-checklist:
  description:
    - [ ] 长度 > 20 字符
    - [ ] 包含功能说明
    - [ ] 包含触发条件
    - [ ] 使用数字列表枚举功能

  content:
    - [ ] SKILL.md < 500 行
    - [ ] 使用祈使语气
    - [ ] 有代码示例
    - [ ] 引用链接有效

  structure:
    - [ ] 目录结构清晰
    - [ ] 无禁止文件
    - [ ] 命名符合规范

  scripts:
    - [ ] 有错误处理
    - [ ] 有参数验证
    - [ ] 有使用说明
    - [ ] 测试通过

持续改进

收集反馈

# 改进来源

1. 用户反馈
   - Skill 未触发
   - 功能不符合预期
   - 错误信息不清晰

2. 使用分析
   - 常用功能
   - 很少使用的功能
   - 错误频率

3. 性能监控
   - 执行时间
   - 资源占用
   - 上下文使用

迭代优化

# 优化流程

1. 识别问题
   - 收集反馈
   - 分析数据

2. 制定方案
   - 确定改进点
   - 设计解决方案

3. 实施改进
   - 更新 SKILL.md
   - 添加/修改脚本
   - 更新引用文档

4. 测试验证
   - 功能测试
   - 集成测试

5. 发布更新
   - 打包发布
   - 通知用户

总结

核心要点

┌─────────────────────────────────────────────────────────────┐
│                                                              │
│  Skill 开发核心原则                                          │
│                                                              │
│  1. 简洁优先                                                 │
│     - 上下文是公共资源                                       │
│     - 只添加必要信息                                         │
│                                                              │
│  2. 渐进披露                                                 │
│     - 元数据 → 正文 → 引用                                   │
│     - 信息分层加载                                           │
│                                                              │
│  3. 示例驱动                                                 │
│     - 代码胜过解释                                           │
│     - 简洁明了                                               │
│                                                              │
│  4. 持续改进                                                 │
│     - 收集反馈                                               │
│     - 迭代优化                                               │
│                                                              │
└─────────────────────────────────────────────────────────────┘

开发流程总结

1. 理解需求 → 收集具体用例
2. 规划内容 → 确定脚本、引用、资产
3. 初始化 → 创建目录结构
4. 编写内容 → SKILL.md + 资源文件
5. 测试验证 → 功能测试 + 集成测试
6. 打包发布 → 验证 + 打包 + 发布
7. 持续改进 → 反馈 + 优化

参考资料