codecamp

Agent Skills 什么是智能体技能?

智能体技能是一种轻量、开放式的格式,可依托专业知识与工作流为AI智能体拓展能力。

从本质上来说,一项智能体技能就是一个包含SKILL.md文件的文件夹。该文件至少需包含元数据(名称和描述),以及指导智能体完成特定任务的操作指引。智能体技能还可整合打包脚本、模板和参考资料等内容。

my-skill/
├── SKILL.md          # 必选文件:操作指引+元数据
├── scripts/          # 可选文件:可执行代码
├── references/       # 可选文件:相关文档资料
└── assets/           # 可选文件:模板、各类资源

技能的工作原理

智能体技能采用渐进式信息披露的方式,高效管理语境信息,具体分为三个阶段:

  1. 发现阶段:智能体启动时,仅加载所有可用技能的名称与描述,仅获取能判断该技能是否适用的基础信息即可。
  2. 激活阶段:当接收到的任务与某一技能的描述相匹配时,智能体将该技能SKILL.md文件中的完整操作指引载入语境。
  3. 执行阶段:智能体依照操作指引执行任务,同时可根据实际需求,按需加载相关引用文件或运行配套的可执行代码。

这种方式既能保障智能体的运行速度,又能让其根据任务需求获取更全面的语境信息。

SKILL.md 文件说明

每一项智能体技能的核心都是SKILL.md文件,该文件由YAML前置元数据Markdown格式的操作指引两部分构成,示例如下:

---
name: pdf-processing
description: 提取PDF文件中的文本和表格、填写表单、合并文档。
---


## PDF处理技能
## 技能适用场景
当用户需要处理PDF文件时,可使用本技能……


## 文本提取方法
1. 使用pdfplumber工具提取文本……


## 表单填写方法
……

SKILL.md文件顶部的前置元数据包含以下必填项

  • name:技能的简短唯一标识
  • description:技能的适用场景说明

文件的Markdown主体部分为实际的操作指引内容,对其结构和表述形式无任何特殊限制。

这一简洁的文件格式具备三大核心优势:

  • 自文档化:技能的开发人员或使用者可直接阅读SKILL.md文件,清晰了解该技能的功能与使用方法,便于对技能进行审计核查和优化改进。
  • 可扩展性:技能的复杂程度可灵活调整,既可以是简单的纯文本操作指引,也可拓展为包含可执行代码、各类资源和模板的复杂技能包。
  • 可移植性:技能的本质就是一组文件,因此易于编辑修改、进行版本管控和分享传播。

后续操作步骤

  • 查阅格式规范文档,深入了解智能体技能的完整格式要求。
  • 为你开发的智能体添加技能支持功能,搭建兼容智能体技能的客户端。
  • 前往GitHub平台查看智能体技能的示例项目。
  • 阅读技能编写的最佳实践指南,掌握高效编写实用技能的方法。
  • 使用官方参考库验证技能的有效性,并生成提示语XML文件。
Agent Skills 概述
Agent Skills 智能体技能格式规范
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }