Skills

参考文章:Skills 是什么?如何用于 Agent 开发?
Skills的本质是重新组织 Prompts

  • Skills对比传统的 Prompt 减少了发送给大模型的内容,节省了token。
  • Skills的产生也来源于提示词的优化,以及对于那些优秀的提示词的一种复用和共享

核心结构

Skills的目录结构如下,Skill.md是必须的文件。

```plaintext
my-Skill.zip
 └── my-Skill/
     ├── Skill.md
     └── resources/

另外我们也可以给Skill提供一些额外的能力,例如:我们可以给他提供一些 脚本、资源

.trea/skills/my-skill/
├─── SKILL.md       # 主要说明(必填)
├─── scripts/       # 辅助脚本(可选)
├─── examples/      # 参考实现(可选)
└─── resources/     # 模板和其它资产(可选)

然后我们可以在SKILL.md中写上

步骤2:在做某事情之前,运行当前目录下的scripts目录中的xxx.py脚本进行某种操作。

编写一个Skill

一个Skill.md主要包含两个部分:

  • 元数据(YAML Frontmatter)
  • 正文(描述技能的具体行为)

元数据

---
name: 我的技能
description: 这个技能用于做什么
version: 1.0.0
author: 你的名字
trigger:
  - 关键词触发
  - 意图匹配
---

不同平台支持的字段可能不同,常见的有:

  • name:技能名称
  • description:简短描述
  • version:版本号
  • author:作者
  • trigger:触发条件(如关键词、正则表达式、意图等)
  • permissions:需要的权限(如读取文件、网络请求等)

通常我们只需要编写 namedescription 即可。

正文

描述技能的具体行为。可以包含:

  • 使用说明:教用户如何使用这个技能。
  • 指令或逻辑:用自然语言或伪代码描述技能在触发后应该执行的动作。有些平台允许嵌入脚本(如 Python、JavaScript),也可能在 resources/ 中存放脚本并在 Skill.md 中调用。
# 我的技能

## 功能
这个技能可以根据用户输入的内容,自动生成一份待办清单。

## 使用方式
用户说:“帮我生成一个购物清单”,技能会返回一个 Markdown 格式的清单。

## 实现逻辑
1. 解析用户输入中的关键词(如“购物”、“工作”等)。
2. 从 `resources/templates/` 中加载对应的清单模板。
3. 生成清单并返回给用户。

## 示例
**用户**:帮我生成一个旅行清单  
**技能**:好的,这是您的旅行清单:
- 护照
- 充电器
- 相机

Skill与RAG

RAG本质上也是一种信息注入机制,和Skill类型,但是目的不同:

Skill   → 注入"怎么做"(操作规范、流程)
RAG     → 注入"知识内容"(业务数据、文档库)

RAG 和 Skill 是同一层次的东西,都在 LLM 推理前注入 Prompt。Skill 给方法,RAG 给数据,Tool 负责执行。
说一个真实的例子,用户问"把我们公司 Q3 销售数据生成 Word 报告"

RAG 检索
  → 从公司文档库找到 Q3 销售数据.csv 的内容
  → 注入 Prompt:"以下是相关数据:销售额 300万,同比+15%..."

Skill 检索
  → 匹配到 docx Skill
  → 注入 Prompt:"生成 Word 文档请遵循以下规范:..."

LLM 结合两者
  → 知道数据内容(来自 RAG)
  → 知道怎么生成文档(来自 Skill)
  → 生成代码调用 Tool 执行

Skills相关下载地址