2.SKILL全详解:全面解析SKILL

什么是 Skills

Skill就是扩展Agent能力的技能包,他的本质是按需加载的SOP模块。通俗的说,Skill就是一套能够让AI按照既定计划执行任务的工具包和资源包。是某个任务的说明书。

Skill的核心特性就是:

  • 可发现: AI能够根据用户指令自动判断是否需要调用该Skill
  • 按需加载:只在需要时加载,不会占用太多的token数
  • 模块化: 包含元数据,指令函数,资源文件等完整的结构

Skill的本质:按需加载的prompt提示词

从直观上理解,SKILL的本质其实就是增强版的、按需加载的prompt提示词。 我们从下面比较一下它和传统的提示词工程有什么区别:

传统prompt: 单次问答,你问什么,模型就回答什么。每次对话,所有内容都一次性塞进上下文中,可复用性极低。

SKILL的方式:一本"工具书",既包含了指令,还附带工具(脚本)和参考资料(文档)。按需加载,渐进式披露,一次便携,可在不同项目,甚至不同Agent中反复调用。

MCP, SKILL和TOOLs的区别

很多人都搞不懂mcpskilltools的区别,经常混用,下面我们来理清一下这几种技术的区别:

概念 本质 特点 适用场景
Prompt 一次性指令 临时、简单、无结构 一次性的简单任务,问什么答什么
Tool 单一功能接口 原子化操作 执行具体动作(如查天气、发消息)
Skill 完整任务 SOP 模块化、可发现、按需加载 复杂的多步骤任务
MCP 数据/动作来源 提供 API 接口 扩展 AI 能调用的外部工具

由上表可知,prompt适用于一次性简单的任务,你问什么,模型就回答什么。而tool是原子化的操作,适用于一些比较简单的任务,比如写文件, 发消息等操作。而mcp是为Agent提供了统一的数据接口和外部工具,比如说调用第三方服务(比如高德, 墨迹天气等数据接口), 而SKILL能够执行复杂的多步骤任务,比如完成文章插图生成,PPT制作等等。

那么有小伙伴可能就会问了,那skill也可以完成取数据的任务呀?是不是就没有mcp什么事儿了?

回答: skill虽然能够完成取数据的任务,但是这儿有一个合适不合适的问题,就比如虽然瑞士军刀也能够切菜,但是大家却没有这么干的!

SKILL的结构组成

我们先来看一下skill的组成:

bash 复制代码
skill-name/
├── SKILL.md           # 核心文件:定义技能指令、元数据(必须)
├── scripts/           # 可执行脚本(可选)
│   ├── init_skill.py
│   └── validator.sh
├── references/        # 外部知识与规范(可选)
│   ├── REFERENCE.md
│   └── api-schema.json
└── assets/            # 静态资源(可选)
    ├── template.html
    └── diagram.png

SKILL.md

这是整个SKILL的灵魂,是Agent的大脑和说明书。决定了AI决定是否调用该SKILL,以及如何执行任务。

它是由两部分组成,元数据正文指令。

其中元数据位于文件顶部,用---包裹,这部分始终加载在系统的提示词中,用于AI的路由决策。

比如元数据:

latex 复制代码
---
name: translate-skill 
description: 将用户提供的文本逐行翻译成英文,保留原格式(如空行、缩进),输出逐行对照或纯译文。适用于代码注释、日志、配置文件等多行文本的翻译场景。
---

正文指令:元数据下方的内容,这是渐进式加载的第二层内容,只有当AI判断和技能相关时才会完整读入。

它需要清晰的步骤,规则,示例,以及如何调用下方的scirpts/references/的具体指令。

比如举个例子:

latex 复制代码
# 角色定义

你是一位专业翻译专家,擅长将中文(或其他语言)翻译为地道、自然的英文。

## 触发条件
当用户明确要求"逐行翻译"、"逐句翻译成英文"、"把下面每行翻成英文"或类似指令时,自动加载本技能。

## 核心工作流程

1. **接收输入**:从用户消息中提取待翻译的多行文本。
2. **逐行处理**:
   - 以换行符 `\n` 分割文本,保留每一行的**原始顺序**。
   - 对**每一行**独立进行翻译,翻译为英文。
   - **保留空行**:如果某行是空行,译文也输出空行。
   - **保留前导/尾随空格**:保留每行原有的缩进(如空格或制表符),以维持格式对齐。
3. **输出格式**:
   - 默认输出**纯译文**(仅英文,不附带原文),行数与原输入完全一致。
   - 若用户要求"双语对照",则按 `原文 → 译文` 的格式逐行输出(原文和译文各占一行,或用分隔符)。

## 翻译规则

- **准确性优先**:确保每行译文准确传达原意,不增删内容。
- **风格统一**:保持全篇英文风格一致(正式/口语,根据原文风格调整)。
- **术语一致**:若同一术语在多行重复出现,保持译法统一。
- **代码/标记保留**:如果行中包含占位符(如 `{name}`)、代码变量或特殊标记,**直接保留原样**,不翻译这些部分。

## 输出示例

### 用户输入:
你好,世界!
这是第二行。
(空行)
最后一行。

### AI 输出(纯译文):
Hello, world!
This is the second line.

The last line.

reference

该文件夹下面是Agent的外置大脑,供AI阅读和理解的。 比如公司的详细规范说明,API文档,历史案例或者公司的规章制度等。

Agent的上下文是非常宝贵的,references/里的内容不会在skill激活时就自动塞进AI的大脑,相反,AI会先读取SKILL.md的轻量指令,当任务进行到特定的步骤的时候,SKILL.md就会指示AI:**请读取references/xxx.md来获取详细的规则。**此时AI才会调用read工具,将该文件内容加载到上下文中学习。

举个例子,还是上面的翻译skill。 如果上面的body中的翻译规则中有这么一句话:

latex 复制代码
在翻译之前,先通读一下`references/translator_rules.md` 中的翻译规则,再执行翻译。

那么Agent在翻译之前,就会先读取这个translator_rules.md

scripts

该文件夹下存放的是AI的机械手臂,负责操作和执行。

比如说独立可运行的代码文件(*.sh, *.py, *.js)等,它解决的是AI能动手做什么的问题。

注意: AI完全不会将scripts/下的代码读入自己的大脑(因为太占Token而且没有必要),它只会通过内置的bash工具启动脚本程序,脚本运行完成之后,读取结果。

比如parse_excel.py, convert_pdf_to_md.py, xxx

怎么写好SKILL

  • 写好description

    因为description是 AI 决定是否调用该 Skill 的唯一路由依据 。只有写好了description, AI才会路由到该skill

  • 开头说清楚,做什么,为什么,怎么做

    开头需要给出正面示例和反面示例,还有适用判断,是决定写好skill的另一标准。

  • 多解释为什么,而不要用商量的口吻

    不要用必须等词语,而是多用因为这样做的好处...,让AI理解为什么要这样做。

  • 给出改之前和改之后的对比

    这部分是让 AI 清楚知道"改什么"和"改成什么",给出具体示例比写必须好一万倍!

相关推荐
AI品信智慧数智人1 小时前
AIGC虚实融合新玩法!虚拟数字人+真实场景重构企业宣传视频生产力✨
人工智能
数聚天成DeepSData1 小时前
企业知识库 RAG 数据准备与文档清洗:Dify、RAGFlow、扣子选型指南
开发语言·人工智能·机器学习·自然语言处理·sentinel·cocos2d
为你学会写情书1 小时前
Agent 开发:主流 Skills 推荐
agent
statistican_ABin1 小时前
2026 FIFA 世界杯比赛与球队数据探索性分析
人工智能·python·数据挖掘·数据分析
阿黎梨梨1 小时前
从敲下回车到文字逐字出现:AI 流式输出的前端必修课
vue.js·人工智能
丘丘用户思思澪1 小时前
LangChain Agent 完全指南
人工智能·langchain
花生了什么事o1 小时前
Function Calling:LLM 是怎么学会调工具的
agent
开源量化GO1 小时前
最新AI量化学习路径,从交易想法走到条件和动作
人工智能·python
zhayujie1 小时前
如何设计一个 Agent 友好的 CLI 工具
ai·大模型·agent·cli·harness