Skip to content
Chun-Chieh's Blog
Go back

agent skills笔记

Edit page

Table of contents

Open Table of contents

1.skill简介

skill是一种轻量级开放格式,可复用按需加载,用于扩展AI智能体的能力,使其能够执行特定的任务,类似于说明书,agent可以直接调用。skill分为项目skill和全局skill,全局skill会在每个项目中调用,项目skill,尽在当前项目调用。和prompt区别,prompt是agent需要根据用户输入的指令,自己去执行的任务,而skill是agent已经准备好的任务,用户直接调用即可。非常适合重复且规范的工作。

比如说处理客户投诉,prompt需要每次输入

提取核心问题-判定情绪等级-匹配对应的安抚话术-以 JSON 格式输出 

但是封装成skill的话直接调用即可,不需要每次输入。

调用【客户投诉分析技能】,处理内容:【快递延误 3 天,客服联系不上】

和memory区别,memory主要是记录使用者的信息,比如偏好、历史记录等。和agents.md区别,agents.md是项目级行为说明文件,通常只绑定特定代码仓库或目录。主要涉及项目规范、架构说明、约定。

2.skill格式

2.1 skill结构

一项技能是一个目录,目录内至少包含一份 SKILL.md 文件:

skill-name/
├── SKILL.md          # Required: metadata + instructions
├── scripts/          # Optional: executable code
├── references/       # Optional: documentation
├── assets/           # Optional: templates, resources
└── ...               # Any additional files or directories
Note

SKILL.md 文件必须包含 YAML 前置元数据(在’---‘之间填写,frontmatter),后跟 Markdown 正文内容(body content),body content 是该技能的具体实现,包括步骤、示例、常见问题等。

frontmatter

FieldRequiredConstraints
nameYes最大 64 字符。仅允许小写字母、数字、连字符 -;不能以 - 开头、不能以 - 结尾。
descriptionYes最大 1024 字符,不能为空。描述该技能的功能、适用场景。
licenseNo许可证名称,或者指向配套许可证文件。
compatibilityNo最大 500 字符。说明运行环境要求:目标产品、依赖系统软件、是否需要网络等。(现大多数skill不需要)
metadataNo自定义键值对,用来存放额外扩展信息(字符串键 → 字符串值)
allowed-toolsNo使用空格分隔字符串,填写该技能允许调用的工具列表(功能尚处于实验阶段)。

最小必填示例:

---
name: skill-name
description: A description of what this skill does and when to use it.
---

选填字段示例:

---
name: pdf-processing
description: Extract PDF text, fill forms, merge files. Use when handling PDFs.
license: Apache-2.0
metadata:
  author: example-org
  version: "1.0"
---

2.2 name description详细说明

name field

关联校验

比如说要做一个skill,创建了一个名叫mj-skill的文件夹,里面skill.md文档的name字段必须也是mj-skill。

description field

good example:
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.
bad example:
description: Helps with PDFs.

2.3 body content

刚刚讲的name,description这些是frontmatter,接下来讲一下body content.

body content位于前置元数据(frontmatter)之后,用markdown编写技能指令,格式无限制,可以撰写任何能够帮助智能代理高效完成任务的内容。

推荐包含以下板块:

Note

如果 SKILL.md 内容篇幅较长,建议拆分至外部引用文件中。

Tip

name和description建议一共 100 tokens左右,body content建议不超过5000 tokens,主文件 SKILL.md 建议控制在 500 行以内。详尽的参考资料请拆分至独立文件存放。

3.子目录

技能目录除必需的 SKILL.md 文件外,可存放任意文件与子目录。

scripts/
存放可供agent执行的可运行代码。脚本应当满足以下要求:

支持的编程语言取决于agent的具体实现,常用语言包括 Python、Bash、JavaScript。

references/
存放agent可按需读取的补充文档:

单个参考文档内容尽量聚焦单一主题。agent按需加载这类文件,文档体量越小,上下文资源占用越低。

assets/
用于存放静态资源:

Note

在技能内引用其他文件时,请使用相对于技能根目录的相对路径。文件引用尽量仅为一级层级(相对于 SKILL.md),避免多层嵌套的链式引用。

总结

一个skill.md文件包含两部分,frontmatter和body content。frontmatter里面包含name,description,license等字段,其中name和description是必填项;body content内容太多时,建议将body content拆分成多个文件,每个文件对应一个功能模块。

参考

https://www.runoob.com/vibe-coding/skills-agent.html
https://agentskills.io/specification


Edit page
Share this post:

Previous Post
如何写好skills
Next Post
《菜根谭》选段分享