目录

一、前言

二、Skills 介绍

2.1 Skills 是什么

2.2 为什么需要 Skills?它能解决什么问题?

2.3 Skills 工作原理

2.4 Skills 与其他能力协作关系

三、Skills 环境搭建

3.1 OpenCode 本地环境搭建

3.1.1 安装ndoejs

3.1.2 使用npm安装OpenCode

3.1.3 效果测试

3.1.4 opencode 基本使用技巧

3.2 OpenCode 配置大模型

3.2.1 前置准备

3.2.2 进入模型配置窗口

四、Skills 获取与基本使用

4.1 获取Skills

4.2 基于Skills目模板使用过程

4.2.1 配置Skills使用模板

4.2.2 使用Skills开发前端网页

4.2.3 使用Skills 做数据处理

五、开发自己的Skills

5.1 Skills 编写规则

5.1.1 Skills 模板规则编写说明

5.2 开发编写周报Skills

5.2.1 创建相应的工程开发目录

5.2.2 编写SKILL.MD

5.2.3 效果验证

5.3 使用魔法创建Skills

5.3.1 给出明确的需求

5.3.2 效果验证

六、写在文末


一、前言

Agent Skills 是继 MCP 后 Anthropic 推出的又一个 Agent 领域的行业标准。它的成长路线和 MCP 也非常像,25 年 10 月份发布时只有 Anthropic 自家产品支持,后来 Cursor、Codex、Opencode、Gemini CLI 等产品看到了 Skills 的优势于是纷纷开始支持。再后来社区开始涌现大量的开源 Skills 以及 Skills 开放市场,当下大家已经默认 Skills 成为了又一个扩展 Agent 能力的标准实践。

简单来说,Skills 的作用就是将那些重复性的、专业的流程进行打包封装。当你需要使用某种能力时,不再需要像过去那样每次都去查阅手册或重新输入冗长的提示词,而是像调用工具一样直接使用。

二、Skills 介绍

2.1 Skills 是什么

Skills 是将人类在某个领域的“专业方法论 + 执行流程 + 工具资源”打包成一个可复用、可调用、可共享的标准化能力模块,供 AI 智能体(Agent)自动执行。可以把它理解为:

  • 给 AI 的 “岗位培训手册”

  • 或者 “数字员工入职包”

  • 甚至是 “AI 能力胶囊”

举个生活的例子:我会打网球,当球飞过来,我拿起球拍跑位,在合适的时机、用合适的力度击球,让球准确落在对方场地不出界,这一整套操作逻辑,就叫打网球“技能”。

2.2 为什么需要 Skills?它能解决什么问题?

下表出多个维度介绍了Skills的能力模型

传统方式的问题 Skills 如何解决
提示词不稳定:每次都要重写,效果波动大 ✅ 将最佳实践固化为 SKILL.md,确保一致性
Token 浪费严重:每次对话都塞入长 prompt ✅ 渐进式披露(Progressive Disclosure):只在触发时加载完整指令
无法执行复杂操作:如读写文件、调 API、跑脚本 ✅ 支持绑定 Python/Bash 脚本、工具调用
重复劳动无法自动化 ✅ 一次创建,无限次调用,支持共享/变现
幻觉率高:纯文本推理易出错 ✅ 关键逻辑由脚本在沙盒中执行,结果更可靠

2.3 Skills 工作原理

Skills 最大的设计亮点,是采用了渐进式披露机制。它不会一次性加载所有内容,而是分层、按需调用:

1)Level 1:元数据层(启动时加载)

• 只读取 name 和 description

• 每个 Skill 大约 100 tokens

• 让系统知道「具备哪些可用能力」

2)Level 2:核心指令层(任务触发时加载)

• 当任务匹配时,读取 SKILL.md 正文

• 通常不超过 5000 tokens

• 描述主要流程、操作要点和约束条件

3)Level 3:资源层(按需加载)

• 脚本、模板、参考文档等

• 仅在执行阶段读取,不进入上下文

• 理论上没有 token 限制

可以理解为:系统只在需要时打开相应的「技能模块」,让上下文始终保持最轻量、最高效。 对比传统 Prompt 而言,Skills 则是模块化 Prompt + 上下文调度系统。

通过这种机制,Skills 解决了众多实际问题:

• 上下文窗口的成本问题:在复杂任务中可降低 40%-60% 的上下文占用

• 知识的可复用性:Skills 文件可一次创建、共享、复用、更新

• 执行的确定性:提供 SOP 工作流模板,减少理解偏差

下面这张图,形象描述了Skills 在执行时的核心流程

2.4 Skills 与其他能力协作关系

在使用Skills 过程中,通常还会涉及到很多与其他AI能力的交互,如下:

  • Skills 和 Agent 的关系

    • Agent 从架构层面可以归为基于模型和资源层之上的应用层。在 Agent 之上可以定义 System Prompt、引用外部知识库、MCP 等外部工具。但如何引用、能够进行标准化的给到 Agent,实际过程我们更好关注的是问题解决。因此将其组合,利用 Skills 的方式进行包装为一个技能。Agent 协助做拆解、规划、执行与反思,而 Skills 能更好的帮我们在拆解和执行上做更细粒度的标准化拆解,可定义为提供能力与服务中间层。

  • Skills 和 MCP 的关系

    • 实际技能模板纳入了解决特定场景问题需要的工具和外部能力,这些能力可以是通过 MCP 的方式接入。我们可以理解为通过 Skills 定义对 MCP 能力进行组装和编排。

  • Skills 和 Rules 的关系

    • 在 Skills 中通过引用 Rules,给 AI 行为提供约束和指导,确保 AI 能够按照既定的风格规则进行规范化输出。

  • Skills 和 RAG 的关系

    • 在 Skills 定义中会更加清楚地说明具体知识库的应用规则,给出更加准确的知识库检索流程与应用规范。让 AI 是有目的的查询。

三、Skills 环境搭建

目前,很多AI工具都支持对Skill的配置和使用,下面基于本地搭建OpenCode 演示如何快速使用Skills

3.1 OpenCode 本地环境搭建

3.1.1 安装ndoejs

Node.js 要求:≥ 18(强烈推荐 20 LTS) ,这个安装比较简单,就不再赘述了,安装完成后,可以使用下面的命令查看

3.1.2 使用npm安装OpenCode

打开 Windows 的 CMD (命令提示符),输入以下命令并回车

# 安装opencode
npm i -g opencode-ai
# 验证安装
​​​​​​​opencode --version

效果如下:

安装完成后,可以在本地用户的目录下看到opencode的目录

3.1.3 效果测试

新建一个空文件夹,然后切换进入后,输入opencode,看到下面的效果,说明基于nodejs环境配置opencode就成功了

可以在对话框打个招呼,opencode安装完成后,内部会有内置的大模型,所以可以对用户的输入进行响应

  • 默认的内置大模型效果不是很理想,实际使用的时候,还需要根据需求配置外部的大模型,后面会说明

3.1.4 opencode 基本使用技巧

为了方便后续更好的操作opencode ,下面列举一些opencode 窗口的使用说明

  • opencode 的一些操作是基于命令方式交换的

如何查看内置的大模型呢,直接在对话框输入 /model ,跳转到下面的窗口,可以看到内置的几个免费的大模型

下面给出了常用的操作命令,方便后续的学习和使用

命令类别

命令

功能说明

连接与设置

/connect

新增LLM提供商(如Anthropic、OpenAI)

/models

列出并切换可用的AI模型

/themes

切换终端界面的主题

/help

显示帮助对话框

对话管理

/new

开始一个新的对话

/sessions

列出所有历史对话并切换

/compact

压缩当前对话内容,以节省上下文窗口

/export

将会话记录导出到文件

/share

生成当前对话的分享链接

编辑与撤销

/undo

撤销上一条 AI 消息及其带来的所有文件更改

/redo

重做已撤销的更改

/editor

打开外部编辑器

项目与代理

/init

初始化项目,扫描并生成 AGENTS.md 文件,帮助AI理解项目结构

/agents

切换或管理AI代理(如 Plan/Build 模式)

/review

审查未提交的代码更改

/mcp

管理模型上下文协议(Model Context Protocol)

其他

/exit

退出 OpenCode 应用程序

3.2 OpenCode 配置大模型

内置的大模型很多情况下不能很好的满足使用,下面参考下面的步骤配置自己的大模型。

3.2.1 前置准备

为了下面在OpenCode 中顺利配置大模型,这里以deepseek,和智普AI为例,因此需要先分别登录到deepseek和智普AI开发平台,获取apikey,因为后续配置大模型的时候,最核心的就是这个apikey,智普AI开发平台地址:https://open.bigmodel.cn/usercenter/proj-mgmt/apikeys ,在下面获取自己的apikey

3.2.2 进入模型配置窗口

直接在对话框输入 /connect ,跳出下面的窗口

选择/connect这一项,跳出下面的一个搜索框

比如在这里我们输入deepseek

然后将你的apikey输入进去即可

再次回到主页,输入 /models,就能看到deepseek的推理模型被我们配置进去了

上面是以deepseek的配置为例,智普大模型的配置也可以参考同样的操作配置即可

最后,可以测试下,可以看到,当模型切换后,就使用了上述配置的智普GLM大模型进行了问题回答

四、Skills 获取与基本使用

Skills 环境搭建完成后,接下来就可以开始使用Skills 辅助完成一些你需要的功能了,比如设计网页,绘图,写报告,做PPT等,下面将进行完整的演示。

4.1 获取Skills

去哪里获取Skills 呢,下面提供了一些常用的获取Skills 的地方

anthropic官⽅仓库:https://github.com/anthropics/skills
Skills社群⽹站:https://skillsmp.com/zh
优秀开源集合:https://github.com/ComposioHQ/awesome-claude-skills
精选skills库:https://github.com/JackyST0/awesome-agent-skills 
视频制作skill:https://github.com/remotion-dev/skills
youtube视频剪辑skill:https://github.com/op7418/Youtube-clipper-skill
⼤师帮你创建skill的skill:https://github.com/GBSOSS/skill-from-masters
notebookLM skill:https://github.com/PleasePrompto/notebooklm-skill
markdown发布到X skill:https://github.com/wshuyi/x-article-publisher-skill
AI 视频产品 Vidu Skills:https://www.vidu.cn/
agent-skills.md包含 6000 多个好⽤的实⽤技能: https://agent-skills.md/
Skillstore: https://skillstore.io/zh-hans 
Reddit 社区推荐的技能合集:https://www.skillsdirectory.com/
agentskills.me: https://agentskills.me/
Vercel 官⽅仓库:https://github.com/vercel-labs/agent-skills
开发者 Antfu 维护的技能库:https://github.com/antfu/skills 
skill收藏库:https://github.com/ZhanlinCui/Ultimate-Agent-Skills-Collection
skillsbot:https://www.skillsbot.cn/

以anthropic官⽅仓库为例,进入之后,下载里面的压缩包

进入到这个git地址链接后,里面有个skill目录,点击去可以看到里面有一些可以直接拿来使用的skills文件

我们将其下载下来,放到上面创建的那个skill目录下

放进去之后,使用上面相同的问题提问,再次验证一下,可以看到,此时就检测到有我们刚刚获取的一些skills技能了

4.2 基于Skills目模板使用过程

有了Skills模板之后,下一步就可以基于这些模板进行开发或使用了,有两种使用的方法

4.2.1 配置Skills使用模板

本地使用Skills模板开发有下面两种配置方式。

1)全局使用

参照上一步的说明,将下载好的Skills模板放在用户盘目录下

放进去之后,在全局的命令行窗口下,询问有哪些可以使用的Skills

  • 可以看到,已经能够识别出系统中有哪些可用的Skills了

2)当前项目使用

有些情况下,只需要在某个项目中使用模板skills,就可以在项目目录下,将你需要的那个Skills目标拷贝进去即可,如下,本地的某个项目目录下,依次创建 .opencode 目录 -> skills 目录,最后拷贝某个Skills 模板进去即可

4.2.2 使用Skills开发前端网页

在上面的步骤中,我们下载的Skills模板中有一个前端设计网页的Skills,接下来使用它做一个网页设计,给出下面的提示词

帮我设计一个企业内部的员工管理系统应用页面,能够对员工的基本信息进行维护管理,要求:风格简洁使用,背景色尽量稳重,如果有不确定的地方及时找我确认

输入提示词后可以看到,它将自动找到这个做网页设计的Skills模板,然后基于这个模板开始设计

中间会弹出一些需要本人确认的操作

最后,打开生成完成的页面,效果如下,整体还是能够满足要求的

4.2.3 使用Skills 做数据处理

在上述的Skills模板中,还提供了一个对excel数据进行分析处理的模板,基于这个模板,我们可以对常用的excel数据进行处理,在本地有一个如下格式数据的excel

我的需求是,基于这个字段将一定时间范围的数据筛选出来,并且保存到一个新的excel中,给出如下提示词:

F:\网盘\12305\kafka视频\Redis\tiktok_statements_transactions_202501.xlsx 将这个表中,根据create_date字段进行筛选,筛选出时间小于2025-12-29 12:48:00 的数据,然后保存到一个新的excel中

按照预期,opencode可以找到模板Skills中的那个做excel数据分析的Skills模板

执行完成后,在原始的excel同级目录下生成了一个过滤数据后的新的excel

打开excel,可以看到,正是我们需要的数据

五、开发自己的Skills

基于别人开发好的Skills模板进行使用是比较快捷的方式,有些情况下也需要自己定制Skills,下面来介绍一下如何开发属于自己的Skills,Skills编写参考文档:https://agentskills.io/specification

  • 这个文档中比较详细的介绍了如何开发一个属于自己的Skills

5.1 Skills 编写规则

开发Skills需要遵循一定的格式要求,比如在下载的模板中随便打开一个,在下面这个Skills模板中,是一个比较完整但是相对复杂点的目录结构

5.1.1 Skills 模板规则编写说明

Skills 的模板目录下,至少包含SKILL.md文件:

skill-name/
├── SKILL.md          # Required: metadata + instructions
├── scripts/          # Optional: executable code
├── references/       # Optional: documentation
├── assets/           # Optional: templates, resources
└── ...               # Any additional files or directories

SKILL.md格式如下:

  • SKILL.md文件必须包含 YAML frontmatter 后跟 Markdown 内容。

目录名称

是否必须

约束

name

是的

最多 64 个字符。仅限小写字母、数字和连字符。不得以连字符开头或结尾。

description

是的

最多 1024 个字符。非空。描述该技能的作用以及何时使用它。

license

许可证名称或对捆绑许可证文件的引用。

compatibility

最多 500 个字符。指示环境要求(目标产品、系统包、网络访问等)。

metadata

附加元数据的任意键值映射。

allowed-tools

该技能可以使用的以空格分隔的预先批准的工具列表。 (实验性)

在规则编写模板中,namedescription是两个非常重要的元素,下面简单对其做一下说明。

1)name

  • 必须为 1-64 个字符

  • 只能包含 unicode 小写字母数字字符 (a-z) 和连字符 (-)

  • 不得以连字符 (-)

  • 不得包含连续的连字符 (--)

  • 必须与父目录名称匹配

正面好的案例

name: pdf-processing
name: data-analysis
name: code-review

无效的案例

name: PDF-Processing  # uppercase not allowed
name: -pdf  # cannot start with hyphen

2)description

  • 必须为 1-1024 个字符

  • 应该描述该技能的用途以及何时使用它

  • 应包含帮助代理识别相关任务的特定关键字

好的案例

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.

不好的案例

description: Helps with PDFs.

基于name和description最小的规则编写

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

在Skills的编写中,还有很多的元素,可以参考上述的文档中的规则说明,有选择的使用。

5.2 开发编写周报Skills

接下来,我们有一个实际的需求场景,编写一个Skills生成每周的工作周报,参考下面的流程

5.2.1 创建相应的工程开发目录

如下,创建一个空的项目工程,参考上面的步骤,依次创建:

.opencode -> skills -> skill的工程名 -> SKILL.md

5.2.2 编写SKILL.MD

1)添加元数据

在 weekly-report-generator ⽬录下创建 SKILL.md ⽂件,编写下面的元数据

  • name 最好做到见名知意

  • description 描述你的Skills核心能力

---
name: weekly-report-generator 
description: ⾃动⽣成项⽬周报,从 git 提交、issue、todo ⽂件和⽤⼾输⼊中提取信息,⽣成 专业的 HTML/PDF 周报
---

2)添加指令

在 SKILL.md 中编写指令,将如下的完整指令内容粘贴进去

--- 
name: weekly-report-generator 
description: ⾃动⽣成项⽬周报,从 git 提交、issue、todo ⽂件和⽤⼾输⼊中提取信息,⽣成 专业的 HTML/PDF 周报
---


# 指令:
你是⼀个项⽬周报⽣成助⼿。你的任务是从多种数据源收集本周的项⽬进展,并⽣成结构化的周报。

## 核⼼流程
1. **收集数据**
     - 询问⽤⼾本周的时间范围(默认:本周⼀到周⽇)
     - 读取项⽬ git log,提取本周的提交记录
     - 检查是否有 issue 或 todo ⽂件,提取相关进展
     - 检查项⽬⽬录中是否有 problems.md/json、growth.md/json、knowledge.md/json ⽂件
     - 如果项⽬中没有上述⽂件,询问⽤⼾是否有额外需要添加的内容

2. **处理数据**
     - 使⽤ scripts/git-analyzer.py 分析 git 提交,提取关键信息
     - 使⽤ scripts/todo-parser.py 解析 todo/issue,整理完成情况
     - 使⽤ scripts/user-content-parser.py 解析项⽬中的⽤⼾内容⽂件(problems、growth、knowledge)
     - 使⽤ scripts/data-aggregator.py 聚合所有数据,⽀持 --project-dir 参数指定项⽬⽬录
     - 参考 references/data-extraction.md 了解详细的数据提取⽅法

3. **组织周报结构**
     - 参考 references/report-structure.md 了解周报的标准结构
     - 将数据组织成以下模块:
     - 数据统计(提交数、参与⼈数、完成事项等)
     - 本周进展(功能开发、问题修复、技术改进)
     - 本周遇到的问题
     - 本周个⼈成⻓
     - 相关知识分享
     - 下周计划
     - ⻛险与问题

4. **⽣成报告**
     - 参考 references/template-filling.md 了解模板填充逻辑
     - 使⽤ assets/report-template.html 作为模板
     - 将结构化数据填充到模板中
     - ⽣成 HTML 格式的周报⽂件:weekly-report-YYYY-MM-DD.html
     - 使⽤ scripts/html-to-pdf.py 将 HTML 转换为 PDF
     - ⽣成 PDF 格式的周报⽂件:weekly-report-YYYY-MM-DD.pdf

## 周报内容说明

⽤⼾需要提供以下内容(⽀持三种⽅式):

**⽅式⼀:在项⽬中提供⽂件(推荐)**
- **本周遇到的问题**:在项⽬根⽬录创建 `problems.md` 或 `problems.json` ⽂件
- **本周个⼈成⻓**:在项⽬根⽬录创建 `growth.md` 或 `growth.json` ⽂件
- **相关知识分享**:在项⽬根⽬录创建 `knowledge.md` 或 `knowledge.json` ⽂件

JSON 格式需符合 user-input.json 中的结构定义。Markdown 格式需包含相应的标题和内容。

**⽅式⼆:通过 user-input.json ⽂件提供**
- 在 user-input.json 中定义 problems、growth、knowledge 字段

**⽅式三:对话提供**
- 如果项⽬中没有提供⽂件,按规则询问⽤⼾输⼊

内容说明:
- **本周遇到的问题**:开发过程中遇到的技术难题、阻塞问题等,包含问题描述、类型、解决⽅案、
经验教训
- **本周个⼈成⻓**:学到的技术、能⼒提升、经验总结,包含类别、内容、影响
- **相关知识分享**:值得记录的技术知识点、最佳实践、学习资源,包含标题、内容、资源链接

## 使⽤说明

⽤⼾可以直接说:"帮我⽣成本周的周报",或者提供具体的时间范围。

## 注意事项

- 如果项⽬不是 git 仓库,跳过 git log 分析
- 如果没有 issue 或 todo ⽂件,提醒⽤⼾⼿动输⼊关键进展
- 需要安装 Chrome 或使⽤浏览器⼿动⽣成 PDF
- 同时输出 HTML 和 PDF 两种格式

3)添加指令中的依赖文件

在上述的指令中,还涉及到对一些外部文件的依赖,比如脚本等,按照格式要求,添加进去

5.2.3 效果验证

打开新窗口,验证一下,可以看到上面的这个Skills就加载进去了

下面使用一下这个Skill,输入提示词:生成周报

  • 通过下面的输出过程不难发现,Skills在运行过程中,严格按照SKILL.md文件中的要求依次往下执行任务,最终会输出一份符合要求的周报文件内容

5.3 使用魔法创建Skills

通过上面的Skills编写过程可以发现,编写Skills仍然还是存在一定成本的,甚至有相当的学习成本,在这种情况下,就可以借助官方提供的魔法Skills帮我们快速创建属于自己的Skills了。

  • 下面这个就是官方提供的用于创建Skills的工具包

5.3.1 给出明确的需求

在使用官方提供的这个skill-creator 技能创建你自己的skills之前,你需要想好自己的需求,并能通过自然语言进行清晰的描述,比如下面是一个我自己的完整需求描述:

我想创建一个skill,需求场景是这样的,很多开发者进到一个公司后,拿到新项目不知道如何快速了解当前这个项目,比如:项目结构,用到的技术栈,项目目录结构是做什么的,有哪些重要的组件、依赖包、工具类,代码编写规范等,如果不了解这些情况,就无从下手开发新功能,目前我暂时只能想到这些,我需要你和我共创并完善这个skill,将创建好的skill放在当前目录下即可 .opencode/skills 目录下

打开本地目录窗口,输入上面的提示词,注意提前选择这个skills

生成skills过程

中间可能会涉及到需要手动确认的操作

最终,在新场景的目录下,生成了需要的Skills

最后,可以看到这个新创建的Skill就加载进来了

5.3.2 效果验证

接下来,找一个实际项目,让这个Skill为我们生成相关的文档说明,进入到某个项目目录下,输入下面的提示词

生成完成后,可以看到在当前项目目录下,就输出了一个项目分析文件

打开可以看看效果,已经按照要求生成了详细的分析报告说明

六、写在文末

本文通过较大的篇幅详细介绍了Skills的使用,从环境搭建到配置规则,最后,通过几个实际案例详细介绍了如何自己编写定制化的Skills,更深入的可以继续在此基础上研究,本篇到此结束,感谢观看!

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐