skills

从Prompt工程到Skill工程:Agent Skills开放标准彻底改变了AI协作方式

 

0-封面

一、为什么 Agent Skill 突然火了?

你是不是也有过这样的崩溃时刻?

  • 每次让 Claude 写代码,都要重复粘贴 请使用我们的代码规范:驼峰命名、2空格缩进、必须写单元测试 ——像极了每天入职新公司;
  • 好不容易调教好的 Prompt 换个项目就完全失效,之前的调教经验归零;
  • 团队里每个人给 AI 的指令不一样,导致输出的内容一会儿像资深架构师,一会儿像刚毕业的新手。

这些问题的根源,其实是 AI 的 专业能力无法沉淀。直到 2025 年 10 月 Anthropic 推出 Agent Skill(又名 Claude Code Skill)正是为解决这些问题而生。这不仅是 Claude 的新功能,更是一个 开放的跨平台标准,目前已被 OpenAICursorTrae 等主流工具跟进支持。

本文将带你从 是什么 到 怎么用在实际工作中,彻底掌握这个比 Prompt 更高级、比 MCP 更易用的 AI 编程神器。

 

二、到底什么是 Agent Skill?

用最通俗的比喻:Agent Skill 是 AI 的 入职手册 + 工具箱

想象你招了一位天才实习生 Claude 他智商极高但不懂你们公司的业务。传统的做法是每次布置任务都口头交代一遍 Prompt 而 Agent Skill 则是给他一本完整的标准作业程序 SOP

  • 📋 入职手册(SKILL.md):包含岗位描述、工作流程、注意事项
  • 🧰 工具箱(Scripts):处理特定任务的脚本和代码
  • 📚 参考资料(References):行业规范、模板素材、API文档

技术本质:Agent Skill 是一个标准化的文件夹结构,核心必须包含 SKILL.md 文件(YAML元数据 + Markdown说明),可选包含脚本、模板等资源文件。

my-skill/            # 技能包根目录
├── SKILL.md         # 📄 核心文件:元数据 + 工作流指令(必须)
├── scripts/         # 🔧 可选:自动化脚本(Python/Bash)
├── references/      # 📖 可选:专业文档、API手册、FAQ
└── assets/          # 🎨 可选:模板、示例、静态资源

当 AI 检测到相关任务时,会自动 翻开 对应的手册,严格按照既定流程执行,无需你每次都重复交代。

 

三、Skill工作原理

Skill 最精妙的设计,是它的 渐进式加载机制 —— 就像你查字典,先看目录,再翻对应章节,最后查附录,不会一上来就把整本书塞进脑子里。

3.1. 三层加载:用最少的 Token 做最多的事

1-核心机制

加载层级 内容类型 加载时机 作用
L1 元数据(名片) Agent 启动时自动加载 让AI知道“有什么技能可用”
L2 说明文档(正文) 匹配用户需求时加载 教AI“具体怎么做”
L3 资源文件(脚本 / 模板) 执行中按需加载 提供“工具/素材支持”

3.2. 四步执行流程

2-执行流程

  1. 🎯 意图匹配:AI 扫描所有 Skill 的元数据,找到最匹配当前任务的技能
  2. 📖 读取指南:加载对应 SKILL.md,掌握执行步骤、检查点、输出规范
  3. 🔧 按需执行:调用 scripts/ 中的脚本,查询 references/ 中的资料
  4. ✅ 反馈结果:按模板输出成果,或询问缺失信息

 

四、现有技术的对比

4.1. Agent Skill vs Prompt

维度 普通 Prompt Agent Skill
性质 临时指令,用完即走 标准化流程,永久复用
加载方式 每次全量输入 按需渐进加载
稳定性 依赖模型"记忆",易漂移 固化检查点,强制执行
管理 分散在聊天记录里 文件化、版本可控
共享 复制粘贴,易丢失格式 整包分享,开箱即用

一句话总结:Prompt 是 口头交代,Skills 是书面 SOP + 工具箱

4.2. Agent Skill vs 多 Agent 架构

维度 多 Agent 架构 Agent Skill
复杂度 重量级,需要架构设计 轻量级,单个文件夹即可
适用场景 复杂并行任务(如研究+写作+审核同时进行) 单领域深度任务(如专业代码审查)
资源消耗 高,需调度多个 Agent 实例 低,单 Agent 内能力切换
启动成本 需要搭建 Agent 框架 零成本,复制文件夹即可
关系 体系级解决方案 单元级能力模块,可被多 Agent 调用

4.3. Agent Skill vs MCP

维度 MCP Agent Skill
定位 连接协议:AI 与外部系统的"USB 接口" 执行标准:AI 做事的"操作手册"
解决的问题 能不能连(访问数据库、API、文件系统) 怎么做(流程、规范、最佳实践)
技术形态 需要运行 MCP Server(TypeScript/Python) 静态文件夹(Markdown + 脚本)
加载时机 启动时建立连接 按需渐进加载
关系 互补:MCP 提供“工具” Skills 提供“使用指南”

MCP 让 AI 能连上数据库,Skill 教 AI 怎么按你们公司的规范查数据、生成报表、处理异常。两者配合,AI 才能真正成为"懂行的专家"。

 

五、创建你的第一个 Agent Skill

下面用 会议纪要整理助手 为例,从零创建一个 Skill

场景:开会录音转文字后,需要整理成结构化会议纪要。不同会议类型(周会/项目复盘/客户沟通)需要不同的整理模板。

5.1. 创建 Skill 文件夹结构

新建一个名为 meeting-minutes 的文件夹,总体的文件结构如下:

/meeting-minutes/
├── SKILL.md                    # L1:技能元数据,L2:内容
├── references/                 # L3:按会议类型按需加载
│   ├── weekly-rule.md          # 周会模板
│   ├── retro-rule.md           # 复盘模板
│   └── client-rule.md          # 客户沟通模板

5.2. SKILL.md(核心文件)

5.2.1. 元数据

在 SKILL.md 文件最开头以上下两个 --- 作为元数据标识

---
name: meeting-minutes
description: 办公室通用会议纪要整理助手,支持周会/项目复盘会/客户沟通会三类场景,自动识别会议类型,按需加载对应会议规则,智能提取关键信息,输出结构化纪要。
---

5.2.2. SKILL内容

3-编写SKILL

5.3. 编写模块化配置references

4-编写模块化配置references

通过文件分离,AI每次只读取当前任务所需的规则,避免 Context 污染

5.4. 测试你的 Skill(以 Trae 为例)

Trae 作为国内的 AI IDE 已原生支持 Agent Skills

  • 官网:https://www.trae.cn/

  • 下载并安装 TRAE IDE

5.4.1. 导入Skill

  1. 创建一个文件夹,例如 my_skills
  2. 使用 TRAE IDE 打开这个文件夹
  3. 将 meeting-minutes 文件夹复制到 my_skills/.trae/skills/ 目录下

5.4.2. 输入提示词

需要切换为 SOLO 模式,然后在对话框输入以下提示词:

帮我生成周会会议纪要

原始文本:
小明:用户模块我搞完了,已经提测。
小红:接口文档我还没弄,我负责写,周五前给出来。
张三:测试环境那个问题搞不定,需要运维老陈帮忙看看。
李四:下周我打算开始订单模块,周三前出个技术方案看看。
王五:数据库设计谁review一下?
小明:我来吧,不过得明天才有空。

5.4.3. 执行Skill

5-trae执行过程

5.4.4. 最终输出以下内容

6-执行效果

 

六、本文Skill下载地址

本文案例 会议纪要整理助手 Skill 的下载地址如下:

  • Gitee地址:

https://gitee.com/zlt2000/my-agent-skill/tree/master/meeting-minutes

  • Github地址:

https://github.com/zlt2000/my-agent-skill/tree/master/meeting-minutes

在实际使用过程中本文 Skill 还可以进行以下迭代优化:

  1. 在 references 里扩展更多的 会议类型 模板;
  2. 在 script 文件夹写 Python 脚本,实现输出内容 导出word文档 或者 同步给飞书

 

七、总结

Agent Skills 的正式发布,标志着 AI 协作从 提示词工程 正式迈入 技能工程 的全新范式。它将人类专家的经验、标准化流程与行业最佳实践,封装成 AI 可理解、可执行、可复用的数字资产。

核心价值优势:

  1. 降本增效: 通过渐进式披露、按需加载机制,大幅减少 Token 消耗,同时让 AI 聚焦核心任务,推理效率与执行稳定性同步提升;
  2. 跨平台互通: 作为开放标准,实现 “一次构建、多端复用”,Skill 可无缝适配 Claude、Cursor、Trae、Copilot 等主流平台,打破工具壁垒;
  3. Skill 市场: 构建起类似 VS Code 插件市场的 Skill 生态,官方与社区共同打造技能商店,让专业能力可分享、可迭代、可规模化应用。

在前一篇文章中,我们探讨了《大模型应用开发技术路线(下):智能代理与多模态应用指南》。今天,让我们深入剖析AI Agent开发框架——这个被称为AI应用开发的"乐高积木"的标准化工具集。

作为长期从事技术应用开发的"老司机",我见证了太多团队因为选择错了开发框架,导致项目周期延长、开发效率低下、系统稳定性差的痛点。在AI时代,如何选择一个合适的AI Agent框架就变得尤为重要了。选择了一个合适的AI Agent开发框架就像给开发者提供了一套非常顺手的"工具箱",让复杂的AI应用开发变得高效、规范、可扩展。

核心观点:AI Agent框架是AI应用开发的"加速器",让不同背景的开发者能用一致的方法论和工具集构建从简单到复杂的智能应用。

一、为什么需要AI Agent框架?

想象一下,你要构建一座"智能应用大厦":

初创团队关心"如何快速验证想法",企业级开发者关注"如何确保系统稳定",研究人员想知道"如何实现复杂推理"——大家都在构建"智能应用",但使用的"开发工具"却各不相同。

AI Agent框架就像一套"统一开发标准",它提供了:

  • 标准化组件:预定义的代理结构、通信机制和决策流程;
  • 清晰的分层架构:从简单脚本到复杂多代理系统的渐进式支持;
  • 一致的开发范式:明确的开发模式和最佳实践指南。

简而言之,AI Agent框架让AI应用开发"可落地、可扩展、可维护",是AI开发效率的"倍增器"。

二、AI Agent框架全景:5大类型9大框架的"技术地图"

我们将主流AI Agent框架分为五个主要类型,每个类型包含不同特性的框架:

2.1 入门友好型框架:快速上手的"第一块积木"

核心特点:入门友好型框架让AI Agent开发变得简单,适合初学者和快速原型验证。

核心框架:

  • AgentGPT:零代码AI Agent构建平台,用户通过自然语言描述任务即可创建Agent;
  • BabyAGI:轻量级自主Agent框架,基于简单的目标分解、任务优先级排序和任务执行循环机制。

技术特性:

  • 开发门槛低:无需深厚编程背景即可上手;
  • 集成度高:内置主流LLM接口和基础工具调用能力;
  • 学习曲线平缓:文档丰富,社区活跃。

适用场景:概念验证、快速原型开发、初学者学习、简单自动化任务。

2.2 多智能体协作框架:团队协作的"智能编排器"

核心特点:多智能体协作框架让多个AI Agent协同工作,模拟团队协作解决复杂问题。

核心框架:

  • CrewAI:角色驱动的多代理框架,通过定义明确的角色、共享目标和预期输出实现结构化团队协作;
  • AutoGen:对话驱动的多代理框架,基于Agent间的自然语言对话实现复杂任务;
  • MetaGPT:SOP(标准操作流程)驱动的多代理框架,通过专业角色分配和标准化流程模拟软件开发团队的协作。

技术特性:

  • 角色定义:支持为不同Agent分配特定角色和专业知识;
  • 协作机制:提供Agent间通信、任务分配和结果整合能力;
  • 冲突解决:内置多Agent协作中的冲突检测和解决机制。

适用场景:复杂问题分解、团队协作模拟、软件开发、客户服务团队、研究团队模拟。

2.3 复杂流程建模框架:业务流程的"智能翻译器"

核心特点:复杂流程建模框架让AI Agent能够执行预定义的业务流程,实现流程自动化。

核心框架:

  • LangGraph:基于有向状态图的工作流框架,通过明确定义的状态转换和决策节点实现复杂流程建模;
  • AgentFlow:流导向的Agent框架,通过数据流动和处理节点的组合构建可复用的复杂流程。

技术特性:

  • 可视化流程设计:支持通过图形化界面设计复杂流程;
  • 状态管理:强大的状态追踪和恢复能力;
  • 异常处理:完善的错误处理和重试机制。

适用场景:业务流程自动化、工作流管理、多步骤数据分析、复杂决策支持。

2.4 自主决策能力框架:智能推理的"思考引擎"

核心特点:自主决策能力框架赋予AI Agent推理和自主行动的能力,实现更高级的智能化。

核心框架:

  • AutoGPT:目标驱动的自主Agent框架,通过持续规划、执行和自我修正机制实现复杂目标;
  • ReAct:推理-行动循环框架,通过显式的思考过程与行动执行相结合的决策模式,特别擅长复杂推理任务。

技术特性:

  • 推理能力:支持显式的思考过程和逻辑推理;
  • 工具使用:强大的外部工具调用和结果处理能力;
  • 自我修正:能够根据执行结果调整策略和方法。

适用场景:复杂问题解决、研究分析、创意生成、科学实验设计、逻辑推理任务。

2.5 企业级应用框架:企业部署的"安全保障"

核心特点:企业级应用框架专注于安全性、可扩展性和可管理性,适合企业环境部署。

核心框架:

  • SuperAGI:企业级Agent编排与管理平台,提供全面的Agent监控、性能优化和安全控制功能;
  • AutoGen:作为一个跨类别框架,它既具备强大的多智能体协作能力,也提供企业级安全特性和访问控制功能。

技术特性:

  • 安全控制:完善的权限管理和数据加密机制;
  • 可扩展性:支持水平扩展和高可用性部署;
  • 监控审计:详细的日志记录和行为审计能力。

适用场景:企业内部系统集成、客户服务中心、金融服务、医疗健康等合规要求高的领域。

三、AI Agent框架多维度对比:选择适合你的"最佳工具"

为了帮助不同行业和业务场景做出技术架构选型决策,我们从多个关键维度对这些框架进行对比:

3.1 技术复杂度与学习曲线

框架名称 技术复杂度 学习曲线 开发语言 依赖要求
AgentGPT ⭐⭐ 无代码 浏览器即可
BabyAGI ⭐⭐⭐ ⭐⭐ Python 低,主要依赖OpenAI API
CrewAI ⭐⭐⭐⭐ ⭐⭐⭐ Python 中,需要了解角色设计
AutoGen ⭐⭐⭐⭐ ⭐⭐⭐ Python 中,需要理解对话设计
MetaGPT ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ Python 高,需要理解SOP设计
LangGraph ⭐⭐⭐⭐ ⭐⭐⭐ Python 中,需要理解状态图
AgentFlow ⭐⭐⭐⭐ ⭐⭐⭐ Python 中,需要理解流处理
AutoGPT ⭐⭐⭐⭐ ⭐⭐⭐ Python 中,需要理解自主代理
SuperAGI ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ Python 高,需要企业级部署经验

3.2 功能特性对比

注:评分标准:⭐基础支持,⭐⭐⭐良好支持,⭐⭐⭐⭐⭐卓越支持

框架名称 自主决策 多代理协作 工具使用 流程建模 安全性 可扩展性
AgentGPT ⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐
BabyAGI ⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐
CrewAI ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐⭐
AutoGen ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐
MetaGPT ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
LangGraph ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
AgentFlow ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
AutoGPT ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐⭐
SuperAGI ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
ReAct ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐⭐

3.3 行业适用性分析

行业/场景 推荐框架 推荐理由
电子商务 CrewAI, AutoGen 多代理协作适合客户服务、个性化推荐等场景
金融服务 SuperAGI, AutoGen 企业级安全特性满足合规要求
医疗健康 AutoGen, LangGraph 复杂流程建模适合医疗诊断和患者管理
教育行业 BabyAGI, AgentGPT 入门友好,适合教育场景和个性化学习
制造业 AgentFlow, LangGraph 流程建模适合生产自动化和质量控制
研发团队 AutoGPT, ReAct 自主决策能力适合研究和创新任务
中小企业 AgentGPT, BabyAGI 低门槛,快速实现价值
大型企业 SuperAGI, AutoGen 企业级特性满足复杂业务需求

四、AI Agent框架选型实战:4步法找到最佳匹配

4.1 步骤1:明确需求和约束

核心工作:

  • 定义业务目标:是提升效率、改善体验还是创新产品?不同目标影响框架选择;
  • 评估团队能力:团队的技术背景和学习能力如何?
  • 明确部署环境:是云部署还是本地部署?有哪些安全合规要求?

实施建议:

  • 创建详细的需求文档,包括功能需求、非功能需求和约束条件;
  • 与业务团队紧密合作,确保技术选型符合业务目标。

4.2 步骤2:缩小框架范围

核心工作:

  • 基于复杂度筛选:根据团队能力选择适当技术复杂度的框架;
  • 基于功能匹配:优先考虑满足核心功能需求的框架;
  • 考虑生态系统:评估框架的社区活跃度、文档质量和第三方集成能力。

实施建议:

  • 创建一个评分矩阵,对每个候选框架在关键维度上进行评分;
  • 不要只看技术特性,也要考虑长期维护和演进能力。

4.3 步骤3:概念验证(POC)

核心工作:

  • 快速原型开发:用候选框架构建一个最小可行产品;
  • 性能测试:评估框架在实际场景下的性能和稳定性;
  • 团队适应性评估:团队学习和使用框架的难易程度。

实施建议:

  • 选择一个有代表性的业务场景进行POC;
  • 设置明确的评估标准,如开发效率、系统性能、学习曲线等。

4.4 步骤4:最终决策与实施

核心工作:

  • 综合评估:结合需求满足度、技术可行性、成本效益等因素做出决策;
  • 制定实施计划:包括框架引入、团队培训、试点项目等;
  • 建立最佳实践:在团队中推广统一的开发模式和标准。

实施建议:

  • 从小规模试点开始,逐步扩大应用范围;
  • 建立知识库,记录框架使用经验和最佳实践。

五、AI Agent框架选型常见陷阱:避免3个关键错误

在多年的AI应用开发实践中,我总结了三个最容易踩的陷阱和对应的解决方案:

陷阱1:盲目追求技术先进性

  • 表现:选择最复杂、功能最全的框架,忽略团队实际能力和业务需求;
  • 解决方法:"合适的才是最好的",选择与团队能力和业务需求匹配的框架。

陷阱2:低估集成复杂度

  • 表现:只关注框架本身的功能,忽略与现有系统的集成难度;
  • 解决方法:提前评估框架的集成能力和API丰富度,设计详细的集成方案。

陷阱3:忽视长期维护

  • 表现:只考虑短期开发效率,忽略框架的长期维护成本;
  • 解决方法:评估框架的更新频率、社区活跃度和企业支持能力。

六、总结与行动建议

选择合适的AI Agent框架是AI应用成功的关键一步。不同的框架有不同的特点和适用场景,没有绝对的"最佳框架",只有最适合特定需求的框架。

给技术架构师的3个行动建议:

  1. 建立评估框架:创建一个多维度的框架评估体系,包括功能匹配度、技术复杂度、生态系统等维度;
  2. 重视团队能力:框架选型要与团队能力相匹配,避免选择团队难以掌握的复杂框架;
  3. 持续学习更新:AI Agent技术发展迅速,保持对新兴框架和技术的关注,定期评估现有框架是否仍然满足需求。

记住AI Agent框架选型的核心理念:"技术是为业务服务的"——选择框架的最终目的是更高效地支持业务目标的实现。

可参考的资源:

Claude Skills是什么?为什么要引入Skills?

 

Skills是什么

Skills的概念由Anthropic提出,其本质是一个更高层次的模块化能力包,用于扩展 Claude的功能。每个Skill都打包了指令、元数据和可选资源(脚本、模板),Claude在执行时会根据相关性自动使用。

为什么要使用Skills?

Skills是可重用的、基于文件系统的资源,为 Claude 提供特定领域的专业知识:工作流程、上下文和最佳实践,将通用代理转变为专家代理。与提示词(用于一次性任务的对话级指令)不同,Skills 按需加载,无需在多个对话中重复提供相同的指导。

关键优势:

  • 专业化Claude:针对领域特定任务定制能力
  • 减少重复:一次创建,自动使用
  • 组合能力:通过Skills组合构建复杂的工作流

Skills是如何生效的?

Skills 利用 Claude 的虚拟机环境,提供仅凭提示词无法实现的能力。Claude 在具有文件系统访问权限的虚拟机中运行,这使得 Skills 可以作为包含指令、可执行代码和参考资料的目录存在,其组织方式类似于项目的目录结构,每个目录结构下有关于这个模块简要的描述、详细说明及资源和代码。
Skills这种基于文件系统的架构提供了其在调用LLM渐进式展开的能力:Claude 根据需要分阶段加载信息,而不是预先消耗上下文。

Anthropic使用三种类型的内容对Skill做渐进式展开,分别对应三种加载级别。

Level 1: Metadata-元数据 (始终加载)
Skill 的 YAML 前置元数据提供发现信息:

---
name: pdf处理
description: 从 PDF 文件中提取文本和表格,填写表单,合并文档。在处理 PDF 文件时使用,或当用户提到 PDF、表单或文档提取时使用。
---

Claude 在启动时加载此元数据并将其包含在系统提示词中。这种轻量级方法意味着你可以安装许多 Skills 而不会产生上下文损耗;Claude 只知道每个 Skill 的存在以及何时使用它。

Level 2: Instructions-详细说明 (触发时加载)
SKILL.md 的主要内容包含程序性知识:工作流程、最佳实践和指导:

# PDF处理

## Quick start

使用pdfplumber从PDF文件中提取文字
    ```python
    import pdfplumber
    
    with pdfplumber.open("document.pdf") as pdf:
        text = pdf.pages[0].extract_text()
    ```

更多高级表格填写指南, 请见[FORMS.md](FORMS.md).

当你请求符合Skill描述的内容时,Claude会通过bash从文件系统读取 SKILL.md。只有在这时,这些内容才会进入上下文窗口。

Level 3: Resources and code-资源和代码 (按需加载)
Skills可以额外捆绑的资料:说明、代码和资源

pdf-skill/
├── SKILL.md (主要说明)
├── FORMS.md (表单填写指南)
├── REFERENCE.md (详细的API参考)
└── scripts/
    └── fill_form.py (程序脚本)
  • 说明:额外的md文件(FORMS.md、REFERENCE.md),包含专业指导和工作流程
  • 代码:Claude通过bash运行的可执行脚本(fill_form.py、validate.py);脚本提供确定性操作而不消耗上下文
  • 资源:参考资料如数据库模式、API文档、模板或示例

文件系统模型意味着每种内容类型都有不同的优势:说明用于灵活指导,代码用于可靠性执行,资源用于事实查询。在调用时Claude会根据需要判断是否需要加载对应的文件。

通过以下表格说明三个加载级别的区别:

Level 何时加载 Token消耗 内容
Level 1: Metadata 总是加载(启动时) ~100 tokens 每个Skill ymal格式的名称和描述信息
Level 2: Instructions Skill被触发时 低于 5k tokens SKILL.md中包括说明和指南
Level 3+: Resources 需要时加载 理论上是无限的(取决于资源多少) 捆绑的可执行文件、文档、模版等资源

以下是Skills架构图:

skills架构图

让我们通过一个PDF处理的Skill来说明Skill是如何加载和使用的:

pdf-skills

  1. 启动: 在系统提示词中包含 PDF处理的 Skill的描述- 从 PDF 文件中提取文本和表格,填写表单,合并文档。在处理 PDF 文件时使用,或当用户提到 PDF、表单或文档提取时使用
  2. 用户请求: 从PDF文件中提取文本信息并进行汇总
  3. Claude调用: bash: read pdf-skill/SKILL.md → 将详细说明加载到上下文中
  4. Claude决策: 不需要使用到表单填写,所以不需要读取 FORMS.md
  5. Claude执行: 使用SKILL.md中的详细说明完成用户请求的任务

上述示例说明了:

  1. Skill的元数据信息被预加载到系统提示词中
  2. Claude通过bash工具读取 SKILL.md 触发Skill
  3. Claude可以根据需要选择性读取额外的捆绑文件,比如 FORMS.md
  4. Claude完成任务

总体上,Skills的技术栈强调模块化和按需加载,解决了传统提示词工程上下文大小的局限,并通过可执行代码注入程序性知识。

如何使用Skills

目前还只有Claude支持Skills,Claude预置了多种Skills例如:

  • PowerPoint (pptx): ppt创建、编辑
  • Excel (xlsx): excel创建及分析
  • Word (docx): word文档创建、编辑
  • PDF (pdf): 生成pdf文件

除了预置的Skills外,Claude还提供了一系列RestFul接口创建、编辑、删除自定义Skills

skills-api

通过API可以按照如下方式使用Skills:

response = client.beta.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=4096,
    betas=["code-execution-2025-08-25", "skills-2025-10-02"],
    container={
        "skills": [
            {
                "type": "anthropic",
                "skill_id": "xlsx",
                "version": "latest"
            }
        ]
    },
    messages=[{
        "role": "user",
        "content": "Create a quarterly sales tracking spreadsheet with sample data"
    }],
    tools=[{
        "type": "code_execution_20250825",
        "name": "code_execution"
    }]
)

Skills与MCP的区别是什么?

Skills和MCP的目标都是增强AI Agent的能力,但是它们在设计理念、实现方式和应用场景都存在显著差异。MCP定义了一种Agent与外部服务器的通讯协议,它解决的是Agent与外部工具如何对话的问题;而Skills是一种能力封装,它定义了一个Agent自身应该具备哪些知识、工作流和内部工具,它解决的是Agent如何思考和行动的问题;两者实际上是互补关系。
总体上,Skills更像是“即插即用”的本地插件,优化了LLM的提示词工程;MCP更像是“外部适配器”,拓展了大模型的能力边界。Skills可以构建在MCP上,例如在MCP检索数据后,使用Skills脚本处理。

Skills为我们带来了什么?

Ai Agent的实现一半靠LLM,另一半靠工程,Skills实际上又是从工程的角度对agent能力进行增强,关于Ai agent的开发范式目前来说开始在探索阶段,而Skills是这一阶段的又一产物,过去Anthropic Agent开发工程师们引入了MCP,现在引入了Skills,将来也许还是引入新的概念(比如Ability),对于普通的应用开发者来说还是要理性看待没有必要盲目跟风应用在实际项目中,更何况Anthropic对中国是完全封禁的,在项目中接入claude是不明智的选择。

但是也不是说Skills对应用开发者们没有用处,其最大的价值是:Anthropic将他们的Agent能力管理设计模式开源了;我们完全可以将这个模式借鉴过来,用在自己的Agent内,而不用关注到底使用的是哪个大模型。

当你的Agent能力越来越多时,一个包含几十个工具、几十种应用场景动辄成百上千的System Prompt如何维护?如何调优?而Skills的设计模式为我们提供了一种解耦、模块化的解决方案。你的Agent不再是依赖一个巨大的、难以维护的system prompt,而是一个由几十个标准化的Skill文件夹组成的能力库,每个Skill都可以单独测试和迭代。

从0到1打造Skill:完整实战指南

 

引言

最近 Skill 可谓热度颇高,无论是微信公众号还是博客园,都能看到大量围绕 Skill 的开发实践、落地方式以及发展趋势的文章。既然如此,我也打算凑个热闹,从实战的角度写一篇关于 Skill 的实践分享。

在展开之前,先简要说明一下什么是 Skill。Skills 的概念由 Anthropic 提出,本质上是一种更高层次的模块化能力封装,用于扩展智能体的功能边界。每一个 Skill 都封装了指令、元数据以及可选的资源(如脚本、模板等),智能体在执行任务时,会根据上下文相关性自动选择并调用合适的 Skill。

Skills能提供什么?

  1. 专业工作流 - 特定领域的多步骤操作流程
  2. 工具集成 - 使用特定文件格式或 API 的指导说明
  3. 领域专长 - 企业特有知识、数据架构、业务规则
  4. 资源包 - 处理复杂和重复任务所需的脚本、参考文档和相关资源

对Skill不了解的同学可以看下我之前的一篇文章 Claude Skills是什么?为什么要引入Skills?

开发个什么Skill呢?

通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。
这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用来展示如何创建Skill,二是通过这种方式再深入理解下Skill的设计理念。在实际使用时,用户只需要输入该 Skill 的功能描述、使用场景以及示例用法,系统便可以自动生成对应的 Skill 说明文档、描述信息等配套内容。把这个自动生成Skill的Skill命名成:skill-creator

下面,我们按照步骤向skill-creator的SKILL.md文件中写入以下内容:

一、定义skill-creator的描述信息

---
name: skill-creator
description: 生成有效技能的指南。当用户想要创建新技能(或更新现有技能)时,应该使用此技能,该技能可以通过专业知识、工作流或工具集成来扩展Claude的能力。
---

二、解释下Skill和关于Skill

技能是模块化的、自包含的软件包,通过提供专业知识、工作流程和工具来扩展 Claude 的能力。可以把它们想象成特定领域或任务的"入职指南"——它们将 Claude 从通用型智能体转变为专业型智能体,使其具备任何模型都无法完全拥有的程序性知识。

Skills能提供什么?
  1. 专业工作流 - 特定领域的多步骤操作流程
  2. 工具集成 - 使用特定文件格式或 API 的指导说明
  3. 领域专长 - 企业特有知识、数据架构、业务规则
  4. 资源包 - 处理复杂和重复任务所需的脚本、参考文档和相关资源
核心理念
简洁至上

上下文窗口是一种公共资源。技能与 Claude 所需的其他所有内容共享上下文窗口:系统提示词、对话历史、其他技能的元数据以及实际的用户请求。

基本前提:Claude 本身已经很聪明。 只需添加 Claude 还不知道的内容。对每条信息都要提出质疑:"Claude 真的需要这个说明吗?" 和 "这段内容的 token 成本值得吗?"

优先使用简洁的示例而非冗长的解释。

给予恰当的自由度

根据任务的脆弱性和可变性来匹配具体程度:

高自由度(基于文本的指令):当存在多种有效方法、决策取决于上下文,或通过启发式方法指导时使用。

中等自由度(带参数的伪代码或脚本):当存在首选模式、可接受一定程度的变化,或配置会影响行为时使用。

低自由度(特定脚本、少量参数):当操作容易出错且脆弱、一致性至关重要,或必须遵循特定顺序时使用。

可以把 Claude 想象成在探索一条路径:悬崖边的狭窄桥梁需要具体的护栏(低自由度),而开阔的田野则允许多条路线(高自由度)。

三、生成的Skill有哪些组成部分

每个技能都包含一个必需的 SKILL.md 文件和可选的捆绑资源:

skill-name/
├── SKILL.md (required)
│   ├── YAML frontmatter metadata (required)
│   │   ├── name: (required)
│   │   └── description: (required)
│   └── Markdown instructions (required)
└── Bundled Resources (optional)
    ├── scripts/          - Executable code (Python/Bash/etc.)
    ├── references/       - Documentation intended to be loaded into context as needed
    └── assets/           - Files used in output (templates, icons, fonts, etc.)
什么是SKILL.md

每个SKILL.md包含:

  • 头部元数据(YAML 格式):包含 name(名称)和 description(描述)字段。这些是 Claude 判断何时使用技能的唯一依据,因此清晰、全面地描述技能的功能和使用场景非常重要。
  • 主体内容(Markdown 格式):关于如何使用该技能的说明和指引。只有在技能被触发后才会加载(如果被触发的话)。
可选的捆绑资源
脚本 (scripts/)

可执行代码(Python/Bash 等),适用于需要确保可靠性或经常重复编写的任务。

  • 何时使用:当同一段代码需要反复编写,或需要确定性的可靠执行时
  • 举例scripts/rotate_pdf.py 用于 PDF 旋转操作
  • 优点:节省 token、结果确定、可能直接执行而无需加载到上下文
  • 说明:Claude 仍可能需要读取脚本以进行修改或适配特定环境
参考资料 (references/)

文档和参考材料,按需加载到上下文中,用于指导 Claude 的工作流程和思考方式。

  • 何时使用:当 Claude 工作时需要查阅的文档资料
  • 举例:财务架构文档 references/finance.md、公司保密协议模板 references/mnda.md、公司制度 references/policies.md、API 规范 references/api_docs.md
  • 适用场景:数据库模式、API 文档、专业领域知识、企业政策、详细操作指南
  • 优点:让 SKILL.md 保持简洁,只在 Claude 需要时才加载
  • 最佳实践:如果文件很大(超过 1 万字),在 SKILL.md 中添加 grep 搜索模式
  • 避免重复:信息应该只放在 SKILL.md 或参考文件的其中一处,不要两边都有。详细信息优先放在参考文件中,除非真的是技能核心——这样既能保持 SKILL.md 简洁,又能让信息易于查找而不会占满上下文窗口。SKILL.md 只保留关键的操作说明和流程指引;详细的参考资料、架构图和示例都移到参考文件里。
资源文件 (assets/)

无需加载到上下文的文件,主要用于 Claude 产生的最终输出内容中。

  • 何时使用:技能需要在最终成果中用到的文件
  • 举例:品牌素材 assets/logo.png、PowerPoint 模板 assets/slides.pptx、HTML/React 脚手架 assets/frontend-template/、字体文件 assets/font.ttf
  • 适用场景:模板文件、图像、图标、样板代码、字体、需要复制或修改的样例文档
  • 优点:把输出用的资源和说明文档分开,让 Claude 可以使用这些文件而不占用上下文空间
技能中不应包含的内容

技能应仅包含直接支持其功能的核心文件。不要创建无关的文档或辅助文件,例如:

  • README.md
  • INSTALLATION_GUIDE.md(安装指南)
  • QUICK_REFERENCE.md(快速参考)
  • CHANGELOG.md(变更日志)
  • 等等

技能只应包含 AI 智能体执行任务所需的信息。不应包含创建过程的附加说明、安装测试步骤、用户使用文档等辅助内容。添加额外的文档文件只会造成混乱和干扰。

四、渐进式展开设计原则

技能使用三级加载系统来高效管理上下文:

  1. 元数据(名称 + 描述) - 始终在上下文中(约100字)
  2. SKILL.md 正文 - 当技能触发时(<五千字)
  3. 捆绑资源 - 根据 Claude 需要(无限制,因为脚本可以在不读入上下文窗口的情况下执行)
渐进式展示模式

保持 SKILL.md 主体内容精简,控制在 500 行以内,避免上下文过度膨胀。接近这个限制时,应将内容拆分成独立文件。拆分内容时,务必在 SKILL.md 中引用这些文件,并明确说明何时查阅,确保技能使用者知道这些文件的存在及其使用时机。

核心原则: 当技能支持多种变体、框架或选项时,SKILL.md 中只保留核心工作流和选择指引。将各变体的具体细节(模式、示例、配置)移至独立的参考文件。

五、Skill创建流程

技能创建包括以下步骤:

  1. 通过具体示例理解技能
  2. 规划可重用的技能内容(脚本、参考资料、资源文件)
  3. 初始化技能(运行 init_skill.py)
  4. 编辑技能(实现资源并编写 SKILL.md)
  5. 打包技能(运行 package_skill.py)
  6. 基于实际使用进行迭代

按顺序遵循这些步骤,除非有明确理由说明某步骤不适用才可跳过。

步骤 1:通过具体示例理解技能

仅当技能的使用模式已经非常清楚时才跳过此步骤。即使在处理现有技能时,这一步骤仍然很有价值。

要创建有效的技能,需要清楚理解该技能将如何被使用的具体示例。这种理解可以来自用户直接提供的示例,或经过用户反馈验证的生成示例。

例如,在构建图像编辑器技能时,相关问题包括:

  • "图像编辑器技能应该支持什么功能?编辑、旋转,还有其他吗?"
  • "你能给出一些这个技能如何使用的示例吗?"
  • "我可以想象用户会提出'去除这张图片的红眼'或'旋转这张图片'之类的请求。你还能想到这个技能的其他使用方式吗?"
  • "用户会说什么来触发这个技能?"

为避免让用户不知所措,避免在单条消息中提出太多问题。从最重要的问题开始,根据需要跟进以提高效率。

当对技能应支持的功能有了清晰认识时,即可结束此步骤。

步骤 2:规划可重用的技能内容

要将具体示例转化为有效的技能,需要通过以下方式分析每个示例:

  1. 考虑如何从零开始执行该示例
  2. 识别在重复执行这些工作流程时哪些脚本、参考资料和资源文件会有帮助

示例:在构建 pdf-editor 技能来处理"帮我旋转这个 PDF"之类的查询时,分析显示:

  1. 旋转 PDF 每次都需要重写相同的代码
  2. 将 scripts/rotate_pdf.py 脚本存储在技能中会很有帮助

示例:在设计 frontend-webapp-builder 技能来处理"给我做个待办事项应用"或"做个仪表板追踪我的步数"之类的查询时,分析显示:

  1. 编写前端网页应用每次都需要相同的样板 HTML/React 代码
  2. 将包含样板 HTML/React 项目文件的 assets/hello-world/ 模板存储在技能中会很有帮助

示例:在构建 big-query 技能来处理"今天有多少用户登录了?"之类的查询时,分析显示:

  1. 查询 BigQuery 每次都需要重新发现表结构和关系
  2. 将记录表结构的 references/schema.md 文件存储在技能中会很有帮助

要确定技能的内容,需要分析每个具体示例,创建要包含的可重用资源清单:脚本、参考资料和资源文件。

步骤 3:初始化技能

到这一步,就该真正创建技能了。

仅当正在开发的技能已经存在,需要进行迭代或打包时才跳过此步骤。在这种情况下,继续下一步。

从零开始创建新技能时,始终运行 init_skill.py 脚本。该脚本会方便地生成一个新的技能目录模板,自动包含技能所需的一切,使技能创建过程更加高效和可靠。

用法:

scripts/init_skill.py <技能名称> --path <输出目录>

该脚本会:

  • 在指定路径创建技能目录
  • 生成带有正确前言信息和待办事项占位符的 SKILL.md 模板
  • 创建示例资源目录:scripts/references/ 和 assets/
  • 在每个目录中添加可以自定义或删除的示例文件

初始化后,根据需要自定义或删除生成的 SKILL.md 和示例文件。

步骤 4:编辑技能

在编辑(新生成或现有的)技能时,请记住该技能是为另一个Claude实例使用而创建的。包含对Claude有益且不明显的信息。考虑哪些程序性知识、领域特定细节或可重用资源能帮助另一个Claude实例更有效地执行这些任务。

4.1 学习经过验证的设计模式

根据技能需求,查阅以下有用的指南:

  • 多步骤流程:参见 references/workflows.md 了解顺序工作流程和条件逻辑
  • 特定输出格式或质量标准:参见 references/output-patterns.md 了解模板和示例模式

这些文件包含了有效技能设计的成熟最佳实践。

4.2 从可重用的技能内容开始

要开始实现,从上面识别的可重用资源开始:scripts/references/ 和 assets/ 文件。请注意,此步骤可能需要用户输入。例如,在实现 brand-guidelines 技能时,用户可能需要提供品牌资源或模板存储在 assets/ 中,或提供文档存储在 references/ 中。

添加的脚本必须通过实际运行来测试,以确保没有错误且输出符合预期。如果有许多类似的脚本,只需测试代表性样本即可确保它们都能工作,同时平衡完成时间。

不需要用于该技能的任何示例文件和目录都应删除。初始化脚本会在 scripts/references/ 和 assets/ 中创建示例文件来演示结构,但大多数技能不需要所有这些文件。

4.3 生成 SKILL.md文件

编写准则: 始终使用祈使句/不定式形式。

  • 前言信息

编写包含 name 和 description 的 YAML 前言:

  • name:技能名称
  • description:这是技能的主要触发机制,帮助 Claude 理解何时使用该技能。
    • 包含技能的功能和使用时机的具体触发条件/上下文。
    • 将所有"何时使用"的信息都包含在这里 - 不要放在正文中。正文只在触发后才加载,因此正文中的"何时使用此技能"部分对 Claude 没有帮助。
    • docx 技能的描述示例:"全面的文档创建、编辑和分析功能,支持修订追踪、评论、格式保留和文本提取。当 Claude 需要处理专业文档(.docx 文件)时使用,包括:(1) 创建新文档,(2) 修改或编辑内容,(3) 处理修订追踪,(4) 添加评论,或任何其他文档任务"。

不要在 YAML 前言中包含任何其他字段。

  • 正文

编写使用该技能及其捆绑资源的说明。

六、效果展示

cursorclaude code对应的skills目录下新建 skill-creator 文件夹并将上述SKILL.md放在该文件夹下,在cursorclaude code中通过 /skill-creator唤起,例如在cursor中的效果是:
我想要生成一个为我拟定文章题目的Skill

skill-creator-desc

使用效果:

skill-creator-effect

生成后在skills目录下可以看到:

tech-article-title-generator

在cursor中可以使用:

tech

如果你已经使用过Skill,看到这里其实已经能明白:我实现的这个 skill-creator,本质上就是 开源的Skill Creator,只不过在这里对其做了一次翻译和封装。

通过这种方式,一方面可以更直观地理解Skill的设计思路,另一方面也能在实践中加深对其使用方式和边界的认识。

一些好用的Skills

下面是一些我觉得很好用的开源Skill是,分享给大家。

Claude Skills 资源列表

名称 用途 下载链接
docx 用追踪修改、批注和格式化功能,轻松创建、编辑和分析 Word 文档。 https://github.com/anthropics/skills/tree/main/skills/docx
pdf 提取文本、表格、元数据,合并与标注 PDF 文件。 https://github.com/anthropics/skills/tree/main/skills/pdf
pptx 读取、生成和调整幻灯片、布局与模板。 https://github.com/anthropics/skills/tree/main/skills/pptx
xlsx 电子表格操作:公式、图表、数据转换。 https://github.com/anthropics/skills/tree/main/skills/xlsx
Markdown to EPUB Converter 将 Markdown 文档和聊天摘要转换为专业的 EPUB 电子书文件。 https://github.com/smerchek/claude-epub-skill
MCP Builder 指导你用 Python 或 TypeScript 创建高质量的 MCP(模型上下文协议)服务器,轻松将外部 API 和服务集成到 LLM 中。 https://github.com/ComposioHQ/awesome-claude-skills/blob/master/mcp-builder
prompt-engineering 教你那些经典的提示工程技巧和模式,包括 Anthropic 的最佳实践和智能体说服原则,让你的提示效果直接拉满! https://github.com/NeoLabHQ/context-engineering-kit/tree/master/plugins/customaize-agent/skills/prompt-engineering
Skill Creator 手把手教你打造高效的 Claude 技能,通过专业领域知识、工作流和工具集成。 https://github.com/ComposioHQ/awesome-claude-skills/blob/master/skill-creator
software-architecture 实现了包括 Clean Architecture、SOLID 原则以及全面的软件设计最佳实践在内的设计模式。 https://github.com/NeoLabHQ/context-engineering-kit/tree/master/plugins/ddd/skills/software-architecture
article-extractor 从网页中提取完整文章内容和元数据。 https://github.com/michalparkola/tapestry-skills-for-claude-code/tree/main/article-extractor
Canvas Design 通过设计哲学和美学原则,为海报、设计和静态作品创作精美的 PNG 和 PDF 视觉艺术。 https://github.com/ComposioHQ/awesome-claude-skills/blob/master/canvas-design
Image Enhancer 通过提升分辨率、清晰度和锐度,优化图像和截图质量。 https://github.com/ComposioHQ/awesome-claude-skills/blob/master/image-enhancer
Theme Factory 一键为幻灯片、文档、报告和 HTML 首页等文件应用专业字体和配色主题,提供 10 种预设风格。 https://github.com/ComposioHQ/awesome-claude-skills/blob/master/theme-factory

结语

从本质上看,Skills 仍然属于上下文工程的一部分,其核心目标在于缓解上下文长度受限和Token消耗过快的问题。同时,它也继承了优秀系统提示词所具备的设计原则——清晰、简洁、结构化,只不过是以文件系统目录结构的形式。

希望本文的分享,能够对大家理解 Skills 的设计理念,以及在实际场景中的应用方式,提供一些参考与帮助。

点击下载本文中的SKILL.md

 

 

 

posted @ 2026-03-06 16:06  CharyGao  阅读(9)  评论(0)    收藏  举报