📋 内容概要
本文将带你深入探索 Skills —— 一个能让 AI 助手瞬间获得超能力的技能系统。你将学会:
🔧 一键安装魔法 —— 仅需一行命令 npx skills add,即可让 AI Agent掌握 PDF 处理、前端设计、代码分析等专业技能,无需复杂配置,即装即用。
📄 Skills的结构原理 —— 以PDF为例,带你了解Skills的结构与实现原理:提示词+工具(函数)。
🎯 三层技能架构 —— 独创的 SKILL.md → forms.md → reference.md 递进式文档体系,无论你是新手入门还是专家进阶,都能快速找到答案。
🔒 团队协作无忧 —— 通过 skills-lock.json 版本锁定机制,确保团队成员使用完全一致的技能版本,告别"我电脑上能用,你电脑上不行"的尴尬。
💡 实战速查手册 —— 附赠典型场景决策流程图,遇到任何 PDF 任务,30 秒内确定最佳解决方案。
注意:本人使用的AI助理为Cline, 示例Skills适用于其它多种AI助理,安装Skill时请确认其适配性。
一、资源与安装
1.1 资源地址
- Skills 目录: The Agent Skills Directory
1.2 安装方法
终端安装步骤
步骤 1:找到要安装的 Skill,复制安装命令行
步骤 2:在终端中执行命令行
npx skills add https://github.com/anthropics/skills --skill frontend-design
复制代码
步骤 3:选择安装范围
步骤 4:项目安装示例
步骤 5:安装成功
安装示例
- frontend-design:
npx skills add https://github.com/anthropics/skills --skill frontend-design - pdf:
npx skills add https://github.com/anthropics/skills --skill pdf
安装成功后的工程目录
项目根目录/
├── .agents/
│ ├── skills/ # 技能文件目录
│ │ ├── pdf/
│ │ └── frontend-design/
│ └── skills-lock.json # 版本锁定文件
└── ...
复制代码
二、PDF Skill 详解(以 PDF 为例说明目录结构)
2.1 目录结构概览
.agents/skills/pdf/
├── scripts/ # Python 脚本文件夹
│ ├── check_bounding_boxes.py # 检查边界框位置
│ ├── check_fillable_fields.py # 检查可填写字段
│ ├── convert_pdf_to_images.py # PDF 转图片
│ ├── create_validation_image.py # 创建验证图像
│ ├── extract_form_field_info.py # 提取表单字段信息
│ ├── extract_form_structure.py # 提取表单结构
│ ├── fill_fillable_fields.py # 填写可填写字段
│ └── fill_pdf_form_with_annotations.py # 使用注释填写 PDF 表单
├── SKILL.md # 主技能文档(基础操作指南)
├── forms.md # 表单处理详细指南
├── reference.md # 高级功能和参考文档
└── LICENSE.txt # 许可证文件
复制代码
2.2 文档文件功能对比
| 文件 | 定位 | 内容 | 使用时机 |
|---|---|---|---|
| SKILL.md | 基础层(入门必读) | PDF 基本操作:读取、合并、拆分、旋转、提取文本、创建 PDF | 第一步,任何 PDF 需求先查阅 |
| forms.md | 专业层(表单专题) | 可填写字段检测、表单填写策略、扫描版表单处理 | 当 SKILL.md 无法满足表单填写需求时 |
| reference.md | 高级层(进阶参考) | JavaScript 方案(pdf-lib)、高级 Python 库(pypdfium2)、故障排除 | 需要高级功能或遇到特殊问题时 |
2.3 Python 脚本功能一览
| 脚本 | 功能 | 使用场景 |
|---|---|---|
check_bounding_boxes.py | 检查 PDF 中字段或元素的边界框位置 | 调试表单字段位置问题 |
check_fillable_fields.py | 检测 PDF 中哪些字段是可填写的 | 查看表单是否可自动填写 |
convert_pdf_to_images.py | 将 PDF 页面转换为图片 | 需要 OCR 识别或预览 PDF 时 |
create_validation_image.py | 创建带标注的验证图像 | 验证字段位置是否正确 |
extract_form_field_info.py | 提取表单字段的详细信息(名称、类型、值等) | 准备自动填写表单前 |
extract_form_structure.py | 提取整个 PDF 表单的结构信息 | 分析复杂表单布局 |
fill_fillable_fields.py | 自动填写 PDF 的可填写字段 | 批量填写表单 |
fill_pdf_form_with_annotations.py | 通过添加注释方式填写 PDF | 处理扫描版或不可填写表单 |
三、使用方法
3.1 方式一:直接询问 Cline(推荐)
安装技能后,Cline 会自动识别并使用,直接描述需求即可:
| 示例指令 | 说明 |
|---|---|
| "帮我合并这 3 个 PDF 文件" | 合并操作 |
| "从这个 PDF 中提取所有表格" | 表格提取 |
| "填写这个 PDF 表单,姓名填张三,日期填今天" | 表单填写 |
| "把这个扫描版 PDF 转换成可搜索的" | OCR 处理 |
3.2 方式二:使用特定脚本(高级用法)
| 示例指令 | 对应脚本 |
|---|---|
| "运行 check_fillable_fields.py 检查这个 PDF 是否可以填写" | check_fillable_fields.py |
| "用 extract_form_field_info.py 提取这个表单的字段信息" | extract_form_field_info.py |
| "使用 fill_fillable_fields.py 填写这个表单" | fill_fillable_fields.py |
3.3 方式三:查看详细指南
| 示例指令 | 目标文件 |
|---|---|
| "查看 forms.md,了解如何填写 PDF 表单" | forms.md |
| "参考 reference.md 中的高级 PDF 操作" | reference.md |
四、典型使用场景速查
| 场景 | 推荐文件/方法 | 可能用到的脚本 |
|---|---|---|
| 合并多个 PDF | SKILL.md | 无需脚本,直接用 pypdf 代码 |
| 拆分 PDF | SKILL.md | 使用拆分代码 |
| 提取文本/表格 | SKILL.md | 使用 pdfplumber |
| 填写可填写 PDF 表单 | forms.md | fill_fillable_fields.py |
| 填写扫描版/不可填写表单 | forms.md | fill_pdf_form_with_annotations.py |
| 检查表单字段位置 | forms.md | check_bounding_boxes.py + create_validation_image.py |
| 批量处理表单 | forms.md | extract_form_field_info.py → fill_fillable_fields.py |
| 浏览器环境处理 PDF | reference.md | 使用 pdf-lib JavaScript 方案 |
| PDF 处理报错 | reference.md | 查看故障排除章节 |
五、表单填写快速开始示例
步骤 1:检查表单是否可填写
指令:"检查这个 PDF 表单有哪些可填写字段"
→ Cline 会运行 check_fillable_fields.py 或 extract_form_field_info.py
复制代码
步骤 2:填写表单
指令:"填写这个表单,姓名=张三,电话=12345678901,地址=北京市"
→ Cline 会根据表单类型选择 fill_fillable_fields.py 或 fill_pdf_form_with_annotations.py
复制代码
步骤 3:验证结果
指令:"生成一个验证图像,确认字段填写位置正确"
→ Cline 会运行 create_validation_image.py
复制代码
六、使用决策流程图
开始处理 PDF 任务
│
▼
┌─────────────────┐
│ 是什么类型? │
└─────────────────┘
│
├─────────────┬─────────────┬─────────────┐
▼ ▼ ▼ ▼
基础操作 填写表单 高级需求 遇到问题
(读/写/合并 (有输入框的 (浏览器环境 (报错/特殊
/拆分/提取) PDF表单) /复杂PDF) 格式)
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│SKILL.md │ │forms.md │ │reference│ │reference│
│ 主文档 │ │ 表单专题 │ │ 高级篇 │ │故障排除 │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │ │ │
└─────────────┴─────────────┴─────────────┘
│
▼
调用 scripts/ 中的
对应 Python 脚本执行
复制代码
七、skills-lock.json 详解(版本管理文件)
7.1 文件定位
skills-lock.json 是 Cline 的技能锁定/版本管理文件,类似于:
package-lock.json(Node.js)Pipfile.lock(Python)Cargo.lock(Rust)
7.2 核心功能
| 功能 | 说明 |
|---|---|
| 版本追踪 | 记录当前安装的每个技能的精确版本(通过哈希值) |
| 来源记录 | 记录技能从哪里下载的(GitHub 仓库、本地路径等) |
| 一致性保证 | 确保团队成员使用完全相同的技能版本 |
| 安全验证 | 检测技能文件是否被意外修改(哈希校验) |
7.3 文件内容示例
{
"version": 1,
"skills": {
"pdf": {
"source": "anthropics/skills",
"sourceType": "github",
"computedHash": "37226d4220d844377e6b2a386c51a011df4cd130855ff0b80bcc22f9c28abd57"
}
}
}
复制代码
7.4 字段解析
| 字段 | 说明 |
|---|---|
version | 锁定文件格式版本(Cline 内部使用) |
source | GitHub 仓库路径:所有者/仓库名 |
sourceType | 来源类型:github / local / marketplace 等 |
computedHash | SHA-256 哈希值(技能文件内容的唯一指纹) |
7.5 使用建议
| 情况 | 操作建议 | 说明 |
|---|---|---|
| 正常使用 | ❌ 无需操作 | Cline 自动管理 |
| 分享项目给同事 | ✅ 提交到 Git | 确保同事使用相同版本 |
| 技能更新后 | ✅ 自动更新 | Cline 会重写此文件 |
| 手动修改了技能文件 | ⚠️ 哈希会不匹配 | 建议不要手动修改 skills 目录 |
| 想回退到旧版本 | ✅ 修改哈希值 | 高级操作,一般不推荐 |
7.6 生态系统关系图
┌─────────────────────────────────────────┐
│ Cline 技能生态系统 │
├─────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ settings.json│ │ skills-lock.json│ │
│ │ (用户配置) │ │ (版本锁定) │ │
│ │ │ │ │ │
│ │ 我想用pdf技能 │───▶│ pdf技能来自 │ │
│ │ 我想用code技能│ │ github:xxx │ │
│ │ │ │ 哈希校验:xxx │ │
│ └─────────────┘ └─────────────┘ │
│ │ │ │
│ └────────┬───────────┘ │
│ ▼ │
│ ┌─────────────┐ │
│ │ .agents/skills/│ │
│ │ /pdf/ │ │
│ │ (实际代码) │ │
│ │ SKILL.md │ │
│ │ forms.md │ │
│ │ scripts/ │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────┘
复制代码
7.7 Git 管理建议
# ✅ 应该提交到版本控制
git add .agents/skills-lock.json
git commit -m "锁定 pdf 技能版本"
# ✅ 技能目录通常加入 .gitignore(因为会从远程下载)
echo ".agents/skills/" >> .gitignore
复制代码
八、总结
| 文件/概念 | 一句话概括 | 优先级 |
|---|---|---|
| SKILL.md | PDF 处理的"新华字典" — 查基础 | ⭐⭐⭐ 必读 |
| forms.md | 表单填写的"专业指南" — 查专项 | ⭐⭐ 按需阅读 |
| reference.md | 疑难杂症的"专家门诊" — 查进阶 | ⭐ 需要时查阅 |
| skills-lock.json | 技能的"身份证+防伪标签" — 版本锁定 | ✅ 纳入版本控制 |
建议:将这三个文档视为一本手册的三个章节:
SKILL.md→ 目录和基础章节forms.md→ 表单专题章节reference.md→ 附录和高级技巧章节