🧩 Anthropic Skills 源码解析

Agent Skills 系统深度解读与实践指南

源码级别解析 · 源码解析 · GitHubanthropics/skills
2026-04-20 | 每日技术深度解读

项目概览

Anthropic Skills 是一个开源的 Agent Skills 框架,为 Claude 提供 动态技能加载能力
  • GitHub Stars: 23.5k+
  • 贡献者: Anthropic官方
  • 开源协议: Apache 2.0
  • 创建时间: 2025年

项目地址: https://github.com/anthropics/skills

什么是 Agent Skills?

Skills 是文件夹形式的指令、脚本和资源集合,Claude 动态加载以提升特定任务性能
  • 文件夹结构化组织
  • YAML + Markdown 配置
  • 动态加载机制
  • 可复用的任务模板

类似插件系统,让 Claude 能够执行专业化任务

Skills 的核心价值

让 Claude 具备专业化能力,按需加载技能
  • 品牌化文档生成
  • 组织化数据分析
  • 个人任务自动化
  • 专业化工具集成

从通用AI助手到专业工具的转变

Skills 系统架构

┌─────────────────┐ │ Claude Agent │ │ + Skills API │ └────────┬─────────┘ │ Skills Loading │ ┌────────▼─────────┐ │ Skills Repository│ │ + Frontmatter │ │ + Instructions │ │ + Scripts/ │ │ + References/ │ └────────┬─────────┘ │ Dynamic Load │ ┌────────▼─────────┐ │ Execution Context│ │ + Scripts Run │ │ + Tools Access │ │ + File System │ └─────────────────┘

Skills 通过 API 动态加载到执行上下文中

Skills 目录结构

标准化的技能目录组织方式
  • SKILL.md - 必需:元数据+指令
  • scripts/ - 可选:可执行代码
  • references/ - 可选:文档资料
  • assets/ - 可选:模板资源

渐进式披露设计,按需加载资源

SKILL.md 基本格式

---
name: my-skill-name
description: A clear description of what this skill does and when to use it
---

# My Skill Name

[Add your instructions here that Claude will follow when this skill is active]

## Examples
- Example usage 1
- Example usage 2

## Guidelines
- Guideline 1
- Guideline 2

YAML frontmatter + Markdown body的标准格式

Frontmatter 字段规范

字段名必需约束条件示例
name1-64字符,小写字母、数字、连字符pdf-processing
description1-1024字符,描述用途Extract PDF text, fill forms
license许可证名称或文件引用Apache-2.0
compatibility1-500字符,环境要求Requires Python 3.14+
metadata任意键值映射author: example-org
allowed-tools空格分隔的工具列表Bash(git:*) Read

name 字段详细规则

技能标识符的严格命名规范
  • 1-64个字符
  • 只能包含小写字母、数字和连字符
  • 不能以连字符开头或结尾
  • 不能包含连续连字符
  • 必须与父目录名匹配

确保标识符的稳定性和可预测性

description 字段最佳实践

描述性文本的艺术
  • 包含做什么和何时使用
  • 包含具体关键词帮助识别
  • 长度1-1024字符
  • 应该清晰明确

👍 示例: "Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents."

复杂技能示例

---
name: pdf-processing
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.
license: Apache-2.0
metadata:
  author: example-org
  version: "1.0"
  category: document-processing
  tags: [pdf, extraction, forms, merge]
compatibility: Requires Python 3.14+ and pypdf, pdfplumber
---

展示了完整的前matter配置,包含所有可选字段

Scripts 目录详解

包含可执行代码的目录
  • Python 脚本 (.py)
  • Bash 脚本 (.sh)
  • JavaScript 脚本 (.js)
  • 其他语言支持

脚本应该自包含或明确说明依赖关系,包含错误处理

References 目录结构

补充文档资料
  • REFERENCE.md - 详细技术参考
  • FORMS.md - 表单模板
  • domain-specific files - 领域特定文件

小文件提高加载效率,按需读取

Assets 目录用途

静态资源存放
  • 模板 - 文档模板、配置模板
  • 图片 - 图表、示例图
  • 数据文件 - 查找表、模式定义

支持各种静态资源类型

渐进式披露设计

Skills 的分层加载策略
  • 元数据 (~100 tokens) - 所有技能加载时
  • 指令 (<5000 tokens) - 激活时加载
  • 资源 (按需) - 需要时加载

优化上下文使用效率

文件引用示例

# Skill 主文件

See [the reference guide](references/REFERENCE.md) for details.

Run the extraction script:
scripts/extract.py

Use [form template](assets/form-template.docx) for standard forms.

使用相对路径引用,保持引用结构简单

技能激活流程

Skills 如何被加载和使用
  • 1. 扫描可用技能库
  • 2. 匹配任务需求
  • 3. 加载SKILL.md
  • 4. 执行相关指令
  • 5. 按需加载资源

动态加载确保性能优化

技能生命周期

┌─────────────┐ │ Discovery │ │ + Scan │ └──────┬───────┘ │ Match Request │ ┌──────▼───────┐ │ Activation │ │ + Load MD │ └──────┬───────┘ │ Execute │ ┌──────▼───────┐ │ Execution │ │ + Scripts │ │ + Tools │ └─────────────┘

从发现到执行的完整流程

技能分类体系

官方提供的技能分类
  • Creative & Design - 创意设计
  • Development & Technical - 开发技术
  • Enterprise & Communication - 企业沟通
  • Document Skills - 文档处理

不同类别的技能有不同的特点和使用场景

Document Skills 源码结构

skills/
├── docx/
│   ├── SKILL.md
│   ├── scripts/
│   │   ├── extract_text.py
│   │   ├── merge_documents.py
│   │   └── templates/
│   ├── references/
│   │   ├── REFERENCE.md
│   │   └── FORMS.md
│   └── assets/
│       ├── templates/
│       └── examples/
├── pdf/
├── pptx/
└── xlsx/

Document Skills 的标准目录结构

SDK 集成方式

Skills 在不同SDK中的使用
  • Claude Code - 插件市场集成
  • Claude.ai - 内置技能支持
  • Claude API - Skills API调用

多平台支持,统一体验

Claude Code 插件安装

# 添加技能库到插件市场
/plugin marketplace add anthropics/skills

# 安装文档技能
/plugin install document-skills@anthropic-agent-skills

# 安装示例技能
/plugin install example-skills@anthropic-agent-skills

通过插件市场快速部署技能

Claude AI 中的使用

在 Claude.ai 中使用技能
  • 付费计划可用
  • 直接提及技能名称
  • 自动加载相关指令
  • 上下文感知执行

无需额外配置,开箱即用

Skills API 快速开始

通过 API 使用技能
  • 创建技能对象
  • 上传技能文件
  • 在会话中使用技能
  • 管理技能版本

API 支持程序化技能管理

Skills API 示例

import anthropic

client = anthropic.Anthropic()

# 创建技能
skill = client.skills.create(
    name="pdf-processing",
    description="Extract text and tables from PDF files",
    skill="skills/pdf/SKILL.md"
)

# 在会话中使用
response = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1000,
    messages=[
        {"role": "user", "content": "Use PDF skill to extract text from document.pdf"}
    ],
    skills=[skill.id]
)

Python SDK 的技能使用示例

技能验证工具

确保技能格式正确
  • skills-ref 验证库
  • 格式检查
  • 命名规范验证
  • 依赖检查

避免格式错误导致技能无法加载

技能验证命令

# 安装验证工具
pip install skills-ref

# 验证技能
skills-ref validate ./my-skill

# 输出示例
# ✅ Valid skill metadata
# ✅ Valid naming conventions
# ✅ No broken file references

使用官方工具验证技能格式

错误处理机制

技能执行中的错误处理
  • 脚本错误捕获
  • 资源文件不存在处理
  • 权限错误处理
  • 网络错误重试

健壮的错误处理确保技能可靠性

错误处理示例

# 错误处理示例
import logging
from pathlib import Path

def safe_load_resource(resource_path):
    try:
        if Path(resource_path).exists():
            with open(resource_path, 'r', encoding='utf-8') as f:
                return f.read()
        else:
            logging.warning(f"Resource not found: {resource_path}")
            return None
    except Exception as e:
        logging.error(f"Error loading {resource_path}: {e}")
        return None

安全的资源加载示例

性能优化策略

Skills 系统的性能优化
  • 渐进式披露
  • 按需加载
  • 缓存机制
  • 并行执行

确保大量技能情况下的系统性能

缓存机制

技能和资源的缓存策略
  • 技能元数据缓存
  • 指令内容缓存
  • 脚本编译缓存
  • 静态资源缓存

减少重复加载,提高响应速度

缓存架构

┌─────────────────┐ │ Request │ └────────┬─────────┘ │ ┌────────▼─────────┐ │ Cache Check │ │ + Metadata │ │ + Instructions │ └────────┬─────────┘ Hit ──┘ ── Miss ↓ ↓ ┌────────▼─────────┐ ┌────────▼─────────┐ │ Return Cache │ │ Load from Disk │ │ (Fast Path) │ │ + Update Cache │ └─────────────────┘ └─────────────────┘

智能缓存机制平衡性能和内存使用

技能安全机制

Skills 系统的安全保障
  • allowed-tools 字段限制
  • 沙盒执行环境
  • 文件系统访问控制
  • 网络访问限制

确保技能执行的安全性

allowed-tools 配置

工具使用权限控制
  • 空格分隔的工具列表
  • 支持通配符模式
  • 细粒度权限控制
  • 可审计的访问记录

防止恶意工具使用

allowed-tools 示例

# 基本工具限制
allowed-tools: Bash(git:*) Bash(jq:*) Read

# 复杂权限模式
allowed-tools: 
  - Bash(/usr/bin/git:*)
  - Bash(/usr/bin/jq:*)
  - Read(/home/user/docs:*)
  - Write(/tmp/skill-output:*)

灵活的工具权限配置

沙盒执行环境

安全的执行环境
  • 容器化执行
  • 资源限制
  • 进程隔离
  • 文件系统沙盒

防止技能对系统造成影响

技能生态系统

围绕 Skills 的生态发展
  • 官方技能库
  • 社区贡献技能
  • 第三方工具集成
  • 企业定制技能

丰富的技能生态推动系统发展

官方技能库

Anthropic 提供的官方技能
  • Document Skills - 文档处理
  • Creative Skills - 创意工具
  • Technical Skills - 技术工具
  • Enterprise Skills - 企业应用

高质量、官方维护的技能集

社区贡献模式

社区技能贡献流程
  • GitHub Pull Request
  • 技能格式检查
  • 文档质量审查
  • 集成测试

开放的贡献机制保证生态健康

企业定制技能

企业级技能定制
  • 品牌化定制
  • 工作流程集成
  • 安全策略配置
  • 性能优化

满足企业特定需求

技能迁移指南

从其他系统迁移到 Skills
  • 工具函数映射
  • 工作流程重构
  • 权限配置转换
  • 测试验证

平滑迁移保证业务连续性

最佳实践总结

技能开发的最佳实践
  • 简洁明了的描述
  • 结构化的指令
  • 错误处理完善
  • 文档齐全

提高技能质量和可用性

技能调试技巧

技能开发和调试技巧
  • 日志记录
  • 逐步执行
  • 单元测试
  • 性能分析

有效的调试方法提高开发效率

调试日志示例

# 技能调试日志
import logging
import sys

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)

def debug_skill_execution():
    logger.info("Skill execution started")
    try:
        # 业务逻辑
        result = process_data()
        logger.info(f"Processing completed: {result}")
        return result
    except Exception as e:
        logger.error(f"Skill execution failed: {e}", exc_info=True)
        raise

完整的调试日志配置

技能测试策略

技能测试的最佳实践
  • 单元测试
  • 集成测试
  • 端到端测试
  • 性能测试

全面的测试保证技能质量

版本管理

技能的版本控制
  • 语义化版本号
  • 变更日志
  • 向后兼容
  • 版本锁定

版本管理确保技能稳定性

技能监控

技能使用监控和分析
  • 使用频率统计
  • 性能指标监控
  • 错误率分析
  • 用户反馈收集

数据驱动优化技能

未来发展方向

Skills 系统的未来发展
  • 更多平台支持
  • AI 辅助技能生成
  • 技能市场
  • 高级安全特性

持续创新推动生态发展

技能市场展望

技能生态系统的发展前景
  • 官方技能商店
  • 第三方技能市场
  • 技能评分系统
  • 技能推荐算法

类似应用商店的技能分发模式

AI 辅助技能生成

AI 技能自动生成
  • 自然语言到技能转换
  • 智能模板推荐
  • 代码自动生成
  • 测试用例生成

降低技能开发门槛

企业级应用场景

Skills 在企业中的深度应用
  • 文档自动化处理
  • 客户服务智能体
  • 数据分析助手
  • 内容创作工具

解决企业实际业务需求

开发者体验优化

改善技能开发者的体验
  • 可视化编辑器
  • 实时预览
  • 调试工具
  • 文档生成

让技能开发更简单高效

总结与展望

Anthropic Skills 的价值与未来
  • 标准化技能开发
  • 模块化功能扩展
  • 丰富的生态支持
  • 持续的技术创新

Skills 将重新定义 AI 助手的边界

快速开始示例

# 1. 克隆技能库
git clone https://github.com/anthropics/skills.git
cd skills

# 2. 创建新技能
mkdir my-skill
cat > my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: A sample skill for testing
---

# My Skill

This is my first skill.
EOF

# 3. 验证技能
skills-ref validate my-skill

# 4. 在 Claude Code 中使用
/plugin marketplace add ./skills
/plugin install example-skills@anthropic-agent-skills

从零开始创建和部署技能

学习资源

进一步学习的资源
  • 官方文档: https://agentskills.io
  • GitHub仓库: https://github.com/anthropics/skills
  • API文档: https://docs.anthropic.com
  • 社区论坛: https://community.anthropic.com

持续学习和参与社区

常见问题

Skills 使用中的常见问题
  • Q: 如何解决技能加载失败?
  • A: 检查格式规范,使用skills-ref验证
  • Q: 如何限制技能的文件访问?
  • A: 使用compatibility字段和allowed-tools
  • Q: 如何提高技能执行效率?
  • A: 优化资源加载,使用缓存机制
  • Q: 如何调试技能问题?
  • A: 启用详细日志,逐步执行测试

解决问题的实用指南

企业实施建议

企业实施 Skills 的建议
  • 从小规模试点开始
  • 建立技能审核流程
  • 制定安全策略
  • 培训开发团队

确保企业成功采用

性能优化清单

Skills 性能优化检查
  • [ ] 保持SKILL.md简洁
  • [ ] 使用文件引用替代长文本
  • [ ] 启用资源缓存
  • [ ] 优化脚本性能
  • [ ] 监控使用指标

定期检查和优化

安全合规检查

Skills 安全合规检查
  • [ ] 验证allowed-tools配置
  • [ ] 检查敏感文件访问
  • [ ] 审计脚本安全性
  • [ ] 测试边界情况
  • [ ] 定期更新依赖

安全第一

技能开发流程

标准化的技能开发流程
  • 1. 需求分析和设计
  • 2. 技能结构规划
  • 3. SKILL.md编写
  • 4. 脚本和资源开发
  • 5. 测试和验证
  • 6. 部署和监控

结构化的开发过程保证质量

持续集成/持续部署

技能的CI/CD最佳实践
  • 自动化验证
  • 技能测试套件
  • 版本管理
  • 自动部署

自动化流程提高效率

参考资料

  • GitHub Repository: https://github.com/anthropics/skills
  • Official Documentation: https://agentskills.io
  • API Reference: https://docs.anthropic.com
  • Skills Specification: https://agentskills.io/specification

感谢阅读!
访问 https://atcfu.com/ai-articles/anthropics-skills/ 回顾本文