跳至内容

如何使用 Agent Skills

发布时间
最近更新

收听收听本文

Agent Skills 是使用 LLM 最有效的方法之一。它能以可重复的方式,为要完成的任务提供合适的上下文。

最棒的是?

各家公司都在为你编写这些技能,你只需在 workflow 中使用它们。本指南将介绍如何利用这些技能,编写真正可用的功能。

什么是技能?

“技能”是一个包含 Markdown 文件的文件夹,用于说明如何完成特定任务。主技能文件必须命名为 SKILL.md,文件内容可以自行定义,只要 frontmatter 包含名称和描述字段即可。(还有其他可选的 frontmatter 字段,可在此查看。

建议主 SKILL.md 文件不超过 500 行。

此文件夹中还可以包含其他信息,供 SKILL.md 文件引用,但仅在适当时载入上下文。这些信息应存放在以下文件夹中:

  1. scripts/ - 智能体可运行的可执行代码。智能体 可运行的可执行代码。
  2. references/ - 需要时可作为补充文档使用的更多 Markdown 文件。
  3. assets/ - 智能体可使用的静态资源。

技能有什么特别之处?

使用 AI 时,最大的问题之一是上下文膨胀。上下文膨胀是指提供给 AI 的上下文(即信息)过多,导致它难以完成任务。

想象一下,只给初级开发者一项特定功能的准确文档,没有任何无关内容。读完后,他们实现该功能的成功率会很高。

再想象一下,让这位初级开发者阅读所有文档,然后从文档中的一小部分实现特定功能。成功率会低得多。

LLM 的行为也是如此。

早期方法,例如 MCP,尝试通过向模型加载大量结构化上下文来解决这个问题。虽然比完全没有上下文更好,但仍难以稳定完成任务。

技能则不同。

默认情况下,只有 frontmatter 中的名称和描述会载入上下文窗口。这几乎不占用上下文,却能让 LLM 知道有哪些可用技能。判断某项技能有用时,便会将 SKILL.md 载入上下文窗口。之后,仅在必要时才会载入 scripts/、references/ 和 assets/ 文件夹中的其他文件。

那么,该如何使用这些技能?

skills.sh

根据所用的 LLM 界面,可以下载并存放到对应应用的合适位置。例如:

技能文件夹位置
Cursor
.cursor/skills/
Claude Code
.claude/skills/
OpenCode
.opencode/skills/


再次强调,技能只是包含文件的文件夹,因此将它们复制粘贴到这些目录中即可正常运行。

另一种方式是使用 skills.sh

这是 Vercel 创建的 Agent Skills 目录,可按使用频率发现技能。还可以使用他们开发的 CLI 工具,将这些技能添加到项目或全局用户目录中。

为此,运行命令 npx skills add <owner/repo>,它会引导你完成整个流程。这条命令本质上就是复制粘贴,但速度更快。

使用技能

安装完成后(通过 skills.sh 或复制粘贴),使用起来非常简单。无论使用哪种编辑器,它都应自动在认为有帮助时使用相应技能。理论上,将技能放到正确位置后,就无需再操心了。

但是,在撰写本文时,它并不总能在恰当的时机使用技能。因此,如果知道某个时刻应该使用某项技能,就告诉 LLM。

例如,我安装了 ElevenLabs 的语音转文字技能。如果想让 Claude 使用它,可以发送以下提示词:

使用 语音转文字 技能,在此项目中实现一个简单示例。使用以下音频:https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3

它一次就完成了下面这个应用。

Tadas App

当然,这个 UI 还有很大改进空间,但 ElevenLabs 的核心逻辑是可靠且可用的。只用一句话就实现了。

强烈建议在项目中使用 Agent Skills。它能为 LLM 提供针对特定任务的合适上下文,这些内容由最初创建工具的人精心整理。

如果在项目中使用 ElevenLabs,可通过以下命令安装我们的技能:

npx skills add elevenlabs/skills

相关内容

用高质量 AI 音频创作