Agent Skills:从入门到进阶

什么是 Agent Skills

Agent 是任务的执行者。它负责理解用户目标、制定计划、调用工具,并根据执行结果继续判断下一步。

Tool 是 Agent 可以使用的动作。例如读取文件、运行 Python、调用搜索接口、移动文件或生成图片。

Skill 则是一套任务方法。它会告诉 Agent,在某种场景下应该如何组织步骤、如何调用工具,以及如何判断任务是否完成。

例如,文件读取工具只能让 Agent 打开一份 Excel 表格,但它并不知道应该分析哪些指标。

财务分析 Skill 则可能规定:

先识别报表类型和会计期间,再检查数据单位和异常值,然后计算盈利能力、偿债能力和现金流指标,最后按照统一格式输出结论。

换句话说,Tool 解决的是"能不能执行",Skill 解决的是"应该怎样执行"。

一个 Skill 通常不仅包含文字指令,还可能包含脚本、模板、行业规范和参考资料。

例如,一个企业网站设计 Skill 可能包括网站需求调查表、页面结构模板、品牌设计规范、SEO 检查清单和页面检测脚本。

这些内容共同组成了一套可复用能力。

Agent Skills 最重要的价值,不是让模型凭空获得新的智力,而是让模型在特定任务中表现得更加稳定、专业和一致。

在 OpenCode 中安装 Agent Skill

安装OpenCode

OpenCode 是一款开源的 AI 编程智能体,可以在终端、桌面客户端或者 IDE 中使用。它不仅能够回答代码问题,还可以读取项目文件、修改代码、运行命令和协助完成开发任务。除了自身的编程能力,OpenCode 还支持安装 Agent Skills。通过 Skill,我们可以为 OpenCode 添加特定任务的工作流程。

Agent Skills不是一个专有的技术,它可以适配在不同的AI工具里面,例如Claude/ OpenCode / codex等

复制代码
官方推荐使用安装脚本:

curl -fsSL https://opencode.ai/install | bash

安装完成后,检查是否成功:

opencode --version

也可以通过 npm 安装:

npm install -g opencode-ai

配置模型

输入models,当前我这边选择的智谱glm-4.7

下载skill&仓库

安装好 OpenCode 或其他支持 Agent Skills 的智能体后,就可以从官方仓库、社区平台和开源项目中查找现成的 Skill。

下面按照用途对常见资源进行整理。

|------------------------|---------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 官方与综合资源资源 | 说明 | 地址 |
| Anthropic 官方 Skills 仓库 | Anthropic 维护的官方 Agent Skills 示例仓库,适合学习标准目录结构和开发方式 | https://github.com/anthropics/skills |
| Skills 社区网站 | Agent Skills 社区导航站,可以按分类查找和发现 Skills | Agent Skills Marketplace | Claude & Codex Skills | SkillsMP |
| Awesome Claude Skills | 社区整理的优秀 Claude Skills 合集,适合集中查找开源项目 | https://github.com/ComposioHQ/awesome-claude-skills |

|----------------------|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| 视频制作类 Skills资源 | 说明 | 地址 |
| Remotion 视频制作 Skills | 基于 Remotion 的视频生成与制作能力,适合自动生成程序化视频 | https://github.com/remotion-dev/skills |
| YouTube 视频剪辑 Skill | 用于 YouTube 视频处理和自动剪辑的 Skill | https://github.com/op7418/Youtube-clipper-skill |
| Vidu Skills | AI 视频生成产品 Vidu 提供的视频创作能力 | Vidu AI - Vidu AI - 全球领先的AI内容生产平台 |

|--------------------|-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| Skill 开发辅助工具资源 | 说明 | 地址 |
| Skill from Masters | 一个帮助用户创建新 Skill 的 Skill,可用于生成和优化 Skill 结构 | https://github.com/GBSOSS/skill-from-masters |

在 OpenCode 中使用 Skill

下载 Skill 后,需要把它放到 OpenCode 能够识别的目录中。OpenCode 支持两种安装方式:项目级安装全局安装

项目级 Skill 只在当前项目中生效,适合保存项目专用的开发规范、代码审查规则或业务流程。

将 Skill 文件夹放到项目根目录下的:

复制代码
.opencode/skills/

其中:

SKILL.md:Skill 的核心定义文件,必须存在;

references/:参考文档,可选;

scripts/:自动化脚本,可选;

assets/:模板、图片或其他资源,可选。

一个 skills 目录中可以同时保存多个 Skill,但每个 Skill 都必须放在独立文件夹中。OpenCode 会从当前目录向上查找到 Git 项目根目录,并识别其中符合结构要求的 Skills。

全局 Skill 可以在所有项目中使用,适合代码审查、文档生成、文件整理等通用能力。OpenCode 官方同时支持项目级 .opencode/skills/ 和用户级 ~/.config/opencode/skills/。

使用skill做企业网站设计

Anthropic 官方的 Agent Skills 仓库。其中包含一个名为 frontend-design 的 Skill,目录位置是:

复制代码
anthropics-skills/
└── skills/
    └── frontend-design/
        └── SKILL.md

这个 Skill 专门用于设计和开发网页、落地页、仪表盘、Web 应用以及前端组件。它强调根据具体项目选择配色、字体和布局,生成具有明确视觉风格的界面,避免常见的模板化"AI 风格"。

将 frontend-design 安装到 OpenCode,将完整的 frontend-design 文件夹复制到当前网站项目的:

.opencode/skills/

复制代码
bxg-test/
├── .opencode/
│   └── skills/
│       └── frontend-design/
│           └── SKILL.md
└── 其他项目文件

OpenCode 启动时会发现该 Skill 的名称和描述。当用户的任务与前端设计相关时,Agent 可以按需加载完整的 SKILL.md

复制代码
请使用 frontend-design Skill,为"智联云科技"设计并开发一个企业官网。

企业业务:
为中小企业提供 AI 客服、知识库和办公自动化解决方案。

目标用户:
企业负责人、数字化部门负责人和客服团队管理者。

网站目标:
清楚展示产品价值,引导用户预约产品演示。

页面内容:
1. 首页
2. 产品能力
3. 解决方案
4. 客户案例
5. 关于我们
6. 联系我们

视觉要求:
专业、可信、具有科技感,但不要使用常见的蓝紫渐变模板。
需要形成有辨识度的字体、配色和布局系统。

技术要求:
使用 HTML、CSS 和 JavaScript。
支持桌面端和移动端。
先输出简短的设计方案,再开始生成代码。

可以明确要求使用 frontend-design,可以降低 Agent 忽略该 Skill 的概率。也可以不指定,这个时候模型会自己去本地仓库查找匹配符合的skill。

使用 Anthropic 官方 frontend-design Skill 完成企业网站设计的流程是:

下载 Anthropic Skills 仓库;找到 skills/frontend-design;复制到 .opencode/skills/;启动 OpenCode;提供企业网站需求;指定 frontend-design Skill;确认设计方案;生成并运行网站;继续检查和优化

frontend-design Skill 的重点,不只是帮助 OpenCode 写出网页代码,而是引导它根据真实业务作出有目的的设计选择,让最终网站减少模板感并形成自己的视觉特点

如何会造自己的Skills

创建 Skill 并不复杂。最基础的 Skill,本质上就是一个文件夹,加上一份名为 SKILL.md 的说明文件。

先确定 Skill 要解决什么问题

在创建之前,先想清楚:

哪项工作会重复发生,而且每次都有相似的处理步骤?

例如:

  • 自动生成工作周报;
  • 按固定标准审查代码;
  • 根据企业规范编写产品文案;
  • 整理会议纪要;
  • 分析销售数据;
  • 检查网站的页面质量。

一次性的简单任务,直接写提示词即可。只有需要反复使用,并且存在相对固定流程的任务,才值得做成 Skill。

本节以"自动生成周报"为例,创建一个名为 weekly-report 的 Skill。

二、创建 Skill 文件夹

在项目根目录创建:

复制代码
.opencode/
└── skills/
    └── weekly-report/
        └── SKILL.md

OpenCode 会扫描这些目录,并发现其中符合规范的 Skill。

三、编写 SKILL.md

在 weekly-report 文件夹中创建 SKILL.md

复制代码
---
name: weekly-report
description: 根据用户提供的任务记录、项目进展和问题清单生成结构化工作周报。当用户要求写周报、总结本周工作、整理项目进展或制定下周计划时使用。
---

# 自动周报

## 工作流程

1. 收集用户提供的本周工作记录。
2. 删除重复、无关和过于琐碎的信息。
3. 按照项目或工作主题进行分类。
4. 区分已完成、进行中和下周计划。
5. 提取工作成果、问题风险和需要协助的事项。
6. 信息不足时先询问用户,不得自行编造。
7. 按照规定格式生成周报。

## 输出格式

# 本周工作总结

## 一、本周核心成果

## 二、项目进展

## 三、问题与风险

## 四、下周计划

## 五、需要协助的事项

## 注意事项

- 使用简洁、专业的表达。
- 不要把计划中的工作写成已经完成。
- 尽量体现工作结果,而不是只罗列执行动作。
- 未提供的数据不得猜测或编造。

一份 SKILL.md 主要由两部分组成。

第一部分是顶部的 YAML 信息:


name: weekly-report

description: ...


第二部分是下面的具体执行规则。

其中,name 和 description 是必填字段。name 必须和文件夹名称一致,只能使用小写字母、数字和连字符;description 应同时说明 Skill 能做什么,以及什么情况下应该使用。

四、添加脚本和参考资料

简单 Skill 只需要 SKILL.md。任务复杂后,还可以继续添加其他目录:

weekly-report/

├── SKILL.md

├── references/

├── scripts/

└── assets/

它们分别适合保存:

references/:公司周报规范、字段说明和写作要求;

scripts/:收集 Git 记录、处理任务数据的脚本;

assets/:固定周报模板、示例文件和其他资源。

Agent Skills 的开放规范允许 Skill 将脚本、参考资料和模板与核心说明一起打包。

不过,不要一开始就创建大量文件。先用最简单的 SKILL.md 验证流程,确定有必要后再增加资源。

五、在 OpenCode 中测试 Skill

在项目目录启动 OpenCode:

opencode

然后输入:

复制代码
请根据下面的工作记录生成本周周报:

1. 完成用户登录模块开发;
2. 修复支付页面在移动端的显示问题;
3. 与产品经理确认下个版本需求;
4. 数据导出功能还没有完成,接口存在性能问题。

也可以明确指定:

自动创建 Skill 的"魔法 Skill"

当 Skill 越来越复杂时,完全手写容易出现目录不规范、描述不准确、流程遗漏等问题。为此,Anthropic 官方 Skills 仓库提供了一个特殊的 skill-creator

它本身也是一个 Skill,但它的作用是帮助我们创建、修改、测试和优化其他 Skills,所以也可以称为"创建 Skill 的 Skill"或 Meta-Skill

一、什么是 skill-creator

普通 Skill 用来完成某项具体任务,例如:

复制代码
frontend-design
→ 设计和开发前端页面

pdf
→ 处理 PDF 文件

weekly-report
→ 整理并生成工作周报

skill-creator 不直接处理某项业务,它会先了解我们希望创建什么能力,再帮助完成以下工作:

复制代码
分析 Skill 的使用场景
→ 确定名称和触发描述
→ 规划执行流程
→ 创建目录和 SKILL.md
→ 补充脚本、模板或参考资料
→ 使用测试任务验证效果
→ 根据测试结果继续优化

官方版本不仅能够从零创建 Skill,也可以修改已有 Skill、优化触发描述,并通过测试任务评估 Skill 的表现。

二、安装 skill-creator

在下载的 Anthropic 官方 Skills 仓库中,找到:

复制代码
skills-main/
└── skills/
    └── skill-creator/

需要复制整个 skill-creator 文件夹,而不是只复制其中的 SKILL.md

将它安装到 OpenCode 当前项目:

复制代码
当前项目/
└── .opencode/
    └── skills/
        └── skill-creator/
            ├── SKILL.md
            ├── scripts/
            ├── references/
            └── 其他配套文件

三、让它创建一个新 Skill

安装完成后,在项目目录启动 OpenCode:

复制代码
opencode

然后可以直接提出需求:

复制代码
请使用 skill-creator,帮我创建一个自动生成工作周报的 Skill。

为了让生成结果更加准确,最好同时提供任务背景:

复制代码
请使用 skill-creator,帮我创建一个 weekly-report Skill。

这个 Skill 用于把用户提供的本周工作记录整理成正式周报。

需要完成以下工作:

1. 按照项目整理工作内容;
2. 区分已完成、进行中和下周计划;
3. 提取工作成果、风险和需要协助的事项;
4. 删除重复和无关信息;
5. 信息不足时向用户提问,不得自行编造;
6. 使用中文 Markdown 输出。

请将 Skill 创建到当前项目的
.opencode/skills/weekly-report 目录。

比起只说"帮我创建一个周报 Skill",这种写法明确了输入、处理流程、输出格式和保存位置,更容易生成可直接使用的结果。

四、skill-creator 会做什么

收到需求后,skill-creator 通常会先分析几个关键问题:

  • 这个 Skill 解决什么问题?
  • 用户会在什么情况下调用它?
  • 哪些表达应该触发它?
  • 输入内容是什么?
  • 最终需要输出什么?
  • 哪些步骤必须执行?
  • 是否需要脚本、模板或参考资料?
  • 如何验证它是否工作正常?

如果信息不完整,它可能会先向用户提问。例如:

复制代码
周报是否有固定模板?

是否需要读取 Git 提交记录?

这个 Skill 是个人使用,还是团队共同使用?

生成后是否需要保存为文件?

完成需求分析后,它会生成类似下面的结构:

复制代码
.opencode/
└── skills/
    └── weekly-report/
        ├── SKILL.md
        ├── references/
        ├── scripts/
        └── assets/

对于简单 Skill,可能只创建一个 SKILL.md;只有确实需要时,才会增加脚本、参考资料或模板。

该工具会在执行中询问用户问题,然后持续补充内容生成skill

五、检查生成的 Skill

自动生成并不代表可以直接投入使用。首先应打开生成的 SKILL.md,重点检查顶部信息:

复制代码
---
name: weekly-report
description: 根据任务记录和项目进展生成结构化工作周报。当用户要求编写周报、总结本周工作、整理项目进度或制定下周计划时使用。
---

name 应与文件夹名称一致:

复制代码
文件夹:weekly-report
name:weekly-report

description 需要同时说明两件事:

复制代码
这个 Skill 能做什么
+
什么情况下应该使用

然后检查正文是否写清楚:

  • 输入信息要求;
  • 完整执行步骤;
  • 信息不足时的处理方法;
  • 输出格式;
  • 禁止编造等限制;
  • 是否需要用户确认;
  • 任务完成的判断标准。

六、测试新 Skill

创建完成后,可以立即使用一条真实任务进行测试:

复制代码
请根据以下内容生成本周周报:

1. 完成用户登录模块开发;
2. 修复移动端支付页面显示问题;
3. 与产品经理确认下个版本需求;
4. 数据导出功能仍在开发,当前存在性能问题。

正常情况下,weekly-report Skill 应将内容整理为:

复制代码
本周核心成果
项目进展
问题与风险
下周计划
需要协助的事项

还需要测试它的触发边界。

应该触发:

复制代码
帮我整理本周工作并生成周报。

也应该触发:

复制代码
汇总一下本周项目进度和下周计划。

不应该触发:

复制代码
帮我润色这一句话。

如果相关任务没有触发,可能是 description 写得太窄;如果无关任务也触发,则可能是描述范围太宽。

七、继续让 skill-creator 优化

第一次生成的 Skill 往往只是初稿。完成测试后,可以继续告诉 skill-creator 存在哪些问题:

复制代码
请继续使用 skill-creator 优化 weekly-report Skill。

目前存在以下问题:

1. 输出内容过于像流水账;
2. 没有突出工作成果;
3. 经常把计划写成已完成;
4. 没有单独整理风险事项。

请修改 SKILL.md,并重新设计测试任务。

也可以要求它优化 Skill 的触发描述:

复制代码
这个 Skill 在"总结项目进展"时没有被正确触发,
请优化 description,但不要让普通的文本总结任务误触发它。

skill-creator 的官方流程强调先创建草稿,再准备测试提示,通过实际结果评价和持续修改,而不是一次生成后就结束。

八、使用时需要注意什么

skill-creator 可以降低 Skill 开发门槛,但不能完全替代人工判断。

创建完成后,仍然需要确认:

  • Skill 的范围是否过大;
  • 触发描述是否准确;
  • 是否包含不必要的复杂步骤;
  • 脚本是否会修改或删除文件;
  • 是否使用了当前 Agent 不支持的工具;
  • 是否会访问敏感信息;
  • 是否经过真实任务测试。

尤其是包含脚本、外部接口、批量文件操作或高成本模型调用的 Skill,正式使用前必须检查权限和执行逻辑。

skill-creator 的价值并不是完全替我们决定业务流程,而是把创建 Skill 的过程标准化。

我们负责提供真实需求和判断结果是否正确;它负责整理目录、编写初稿、设计测试和辅助迭代。这样就可以把原本需要手动完成的 Skill 开发工作,变成一次由 Agent 协助完成的工程流程。

Agent Skills 核心机制剖析:什么是渐进式披露

当系统中安装了很多 Skills 时,Agent 为什么能够找到正确的 Skill,又为什么不会一次性读取所有内容?

答案就是 Agent Skills 的核心机制------渐进式披露。

渐进式披露的意思是:Agent 不会在任务开始时把所有 Skill 的完整内容都交给模型,而是先提供少量信息,确认某个 Skill 与当前任务相关后,再逐步加载详细指令和资源。

整个过程可以概括为:

复制代码
发现 Skill
→ 读取元数据
→ 判断任务是否匹配
→ 加载 Skill 指令
→ 按需读取资源
→ 调用工具完成任务

假设我们在 OpenCode 中安装了很多 Skills:

如果 Agent 每次启动时,都把这些 Skill 的完整内容加载给模型,会出现两个问题。

第一个问题是浪费上下文。

每个 Skill 的 SKILL.md 可能包含数百甚至数千字,还可能附带参考文档、脚本和模板。如果全部加载,模型的上下文窗口很快就会被占满。

第二个问题是干扰模型判断。

用户只是要求分析一份数据,但模型同时看到了网页设计、视频生成、文件整理等大量无关规则,反而可能降低执行准确性。

因此,Agent Skills 不会一次性加载所有内容,而是采用"先少后多、按需加载"的方式。

Agent 启动后,会扫描指定的 Skills 目录。

例如 OpenCode 的项目级目录:在这个阶段,Agent 并不会读取所有 Skill 的完整正文,而是先收集它们的基本信息。

第二阶段:读取元数据

每个 SKILL.md 顶部通常都有一段元数据:

复制代码
---
name: data-analysis
description: 分析 CSV、Excel 等结构化数据,生成统计结果、图表和分析结论。当用户要求分析数据、发现趋势或生成数据报告时使用。
---

ame 用于标识 Skill,description 用于告诉 Agent:

这个 Skill 能做什么;

哪些任务应该使用它;

用户可能会怎样表达需求。

在用户正式提出任务之前,模型通常只需要看到这些元数据。

第三阶段:匹配用户任务

假设用户提出:

请分析这份销售数据,找出收入下降的原因。

Agent 会把用户需求与当前可用 Skills 的描述进行比较。

它可能发现:

复制代码
data-analysis
→ 与分析销售数据高度相关

web-search
→ 当前任务不一定需要

frontend-design
→ 与当前任务无关

因此,Agent 会选择 data-analysis Skill。

这个过程有点像查阅目录。

我们进入图书馆时,不会把所有书全部读一遍,而是先通过书名和简介找到最相关的书,再打开阅读具体内容。

Skill 的 description 就承担了"目录"和"索引"的作用。

这也是为什么创建 Skill 时,Description 非常重要。

描述写得太宽,Skill 可能频繁误触发;描述写得太窄,Agent 又可能在需要时找不到它。

第四阶段:加载完整指令

当 Agent 确定需要使用 data-analysis 后,才会加载它的完整 SKILL.md

这部分内容可以称为 Skill 的 Instruction,也就是执行指令。

它告诉 Agent:

应该按照什么顺序执行;

哪些步骤不能遗漏;

什么时候需要向用户提问;

最终结果应该采用什么格式;

哪些行为需要避免。

第五阶段:按需加载资源

一个完整 Skill 除了 SKILL.md,还可能包含:

复制代码
data-analysis/
├── SKILL.md
├── references/
├── scripts/
└── assets/

这些文件不会全部自动放入模型上下文,而是根据任务需要再读取。

复制代码
先加载 SKILL.md
→ 判断需要什么资料
→ 读取 references
→ 运行 scripts
→ 使用 assets
相关推荐
沐泽百川2 小时前
AI 应用上线后怎么排查问题?日志与可观测性应该这样设计
人工智能
在世修行2 小时前
第17篇:晶粒尺寸统计算法 — 从像素到微米的转换
人工智能·计算机视觉·像素转换
万点科技码农2 小时前
2025年7月11日行业热点解读:定制软件开发与AI工作流重构一体化趋势
大数据·人工智能·重构
JL152 小时前
Agent工程-为什么Agent必须有观测和Tracing
服务器·网络·人工智能·安全
用户6954977099492 小时前
第 8 章 vLLM/LMDeploy/Triton 适配 DeepSeek 源码改造
人工智能
波动几何2 小时前
角色生成器character-builder
人工智能
dayuOK63072 小时前
AI Agent市场爆发:从“试一试”到“离不开”,只用了不到一年
大数据·人工智能·ai作画·新媒体运营·aigc·ai写作
茶马古道的搬运工2 小时前
AI 深度技能之-解读Hermes Agent(四)- Hermes Kanban 多 Agent 流水线
人工智能
海外数字观察家2 小时前
马来西亚商贸数字化落地指南:跨境批发、连锁零售首选ERP方案(品未云)
大数据·人工智能·马来西亚进销存系统·马来西亚收银系统·马来西亚erp系统·马来西亚仓库管理系统
珠海西格电力2 小时前
数据采集与治理:零碳园区管理系统的 “生命线”
大数据·人工智能·算法·架构·能源