前言
Skill,顾名思义,就是技能的意思。在正式介绍 Skill 之前,可以想象一下骑自行车。这就是”技能(Skill)”的本质 —— 将复杂的、需要逐步推理的任务,封装成一套可以自动执行的流程。
人类其实就是一个超级 Agent。让我们用 AI 的视角重新审视这个过程:人脑 = 大语言模型(LLM)
人类大脑的工作方式,和 Agent 惊人地相似:
现在,我们可以正式定义了:Agent Skill,是一套标准化的能力封装,它将复杂的、需要多步推理和工具调用的任务,打包成一个可以直接使用的”技能包”。
一个 Skill 通常是以一个文件夹的形式存在的,文件夹的目录结构如下:
1 | riding-skill/ |
举个例子
为了给大家一个更直观的展示,这里给大家展示一个小示例:一个「两数相加的 Skill 」
1 | two-numbers-sum/ |
SKILL.md 文件内部主要包含两部分:
元信息(Metadata):告诉 Agent 这个 Skill 是什么,何时使用
name:技能名称
description:对技能功能的描述
操作流程(Steps):告诉 Agent,如何执行这个 Skill
SKILL.md长下面这样:
1 | --- |
add_numbers.py长这个样:
1 | """为便于大家理解,只放了部分核心代码,大家只需要知道,这是一个两数相加的脚本就好""" |
何时使用 Skill
当你的任务满足以下一个或多个特征时,就应该考虑使用 Skill,而不是依赖临时的长提示词或简单的脚本:
- 需要处理本地文件:当 Agent 需要读取、分析、修改或创建本地文件时(如 PDF、Word 文档、Excel 表格、图片、代码等),Skill 可以将这些操作封装成标准流程。
- 任务流程相对固定且可复用:例如,“将一篇 Markdown 文章进行风格优化,并转换为符合公司品牌指南的 PPT”这类任务,涉及多个固定步骤,非常适合封装成一个或多个 Skill。
- 需要集成特定的知识或规范:比如,将公司的“品牌设计指南”、“代码审查规范”或“法务文案要求”封装成 Skill,可以让 Agent 在执行相关任务时自动遵循这些标准。
- 非技术人员希望扩展 AI 的能力:Skill 的创建过程可以通过自然语言完成(借助 skill-creator),这极大地降低了非开发者为 Agent “赋能”的门槛。
- 希望对 AI 的能力进行模块化管理和迭代:随着任务变得复杂,可以将不同的能力拆分成独立的 Skill(如文档读取 Skill、内容分析 Skill、图表生成 Skill),然后像乐高积木一样组合使用。当某个环节需要优化时,只需迭代对应的 Skill 即可。