当前位置: 首页 > news >正文

Skill安全系列之Skill基础

前言

在总结Skill中的相关风险前,我们先通过一篇的内容来看下什么是Skill,对其有一个初步的认识。

什么是Skill

Skill翻译为技能的意思,在AI邻域中,Skill就是一个技能,比如给Agent一个A技能,那我们就需要拥有一个A技能的Skill,相当于赋能,而Skill的本质就是将提示词写到md文件中供Agent调用。

这个提示词相当于我们的经验,我们把一件事的流程和经验写好后存到md文件中,相当于告诉Agent怎么去做这个事,同时,Skill也支持脚本的调用,比如在md中指明处理某个细节时去调用某某脚本,把脚本放到对应目录下即可。

SKill有什么用

Skill一定程度上相当于工作流,比如dify、n8n的工作流,对于一些任务可以用工作流,但用Skill也可以实现,当然并不是所有工作流能实现的都可以用Skill实现,这里举例为了方便理解。

那Skill有什么用呢,可总结下面3点:

1、重复内容不必每次都说,比如让AI写周报,我们可能有格式要求、保存时的文件类型要求、语气要求等等,这些写的时候这些要求要告诉它,下周写的时候为了准确,还要再告诉它一遍,会重复冗余,此时可以将这些要求形成Skill,后续无需再额外说明,直接调用Skill即可。

2、技能更新时,如果多处使用不必每一处都进行说明,比如还是AI写周报,可能每周的周报都是单独一个会话,方便后期复盘总结,但存储格式要修改,例如excel要改为md,此时每个会话都说明一遍会很繁琐,使用SKILL时,只需修改SKILL内容即可,相关会话会自动用最新版。

3、例如还是写周报,如果开启了新会话,则之前周报的要求还得重说一下,但如果有了Skill,直接调用Skill即可。

可以看出需要统一要求时、或者动作重复时、经常做时,可以做成Skill,这里需要注意的是工具就可以搞定的,比如图片之间格式转换,图片压缩等,这个直接使用工具即可,没有必要做成Skill。

另外,一个技能只需要做一件事即可,不建议将多个事情都写到一个Skill中,要避免“万能”Skill,否则不方便维护和优化,Agent也容易出错。。

SKILL有什么优势

Skill之所以流行,是因为大家发现它存在很多方便的地方:

1、相比传统提示词,全量塞给模型会占用上下文空间,而SKILL可以按需加载。

2、传统提示词上下文就是唯一的工作空间,所有的输入信息、处理信息、输出信息都堆积在一个聊天框,而SKILL相当于让文件系统成为了智能体的外部记忆和工作台。

3、传统提示词相当于单个任务,如果需要和其它任务配合,它是不知道其它提示词是什么,而SKILL可以构建协同工作流,多个技能互相配合,各司其职。从而完成更复杂的任务。

4、迭代积累和维护更方便,不论多少会话,都是从SKILL.md读取规则,改完全局生效,且文件支持版本管理,可以持续迭代和优化。

Skill示例

下面来看下一个Skill的基本结构:

一个技能就是一个文件夹(文件夹用小写字母和连字符-),里面有一个SKILL.md的文件(SKILL用全大写),SKILL.md的基本架构如下:

--- name:weekly-report description: 生成周报,当用户要求撰写周报、工作总结、工作汇报等内容时使用 --- 步骤:1. 确认用户本周完成了哪些任务2. 按表格格式输出:任务|进度|备注3. 语气亲和,像同事之间汇报工作4. 将文件保存为Markdown格式,并存储到当前目录

name:技能的名称,和文件夹名保持一致。

description:技能的简介,说清楚技能是做什么的,什么时候用。公式就是:description = 功能定义 + 触发场景/ 触发词

—之间内容相当于元数据,叫做YAML前置信息,智能体启动时会进行查看,以此来判断要调用哪个技能,—之后就是技能正文,正文要说明具体操作步骤、规则等内容。只有当确定了要调用哪个技能后,正文部分才会被读取。

这里关键就是description的编写,一定要描述清楚其功能和触发场景,否则智能体不知道要不要调用该技能。编写技能描述时,可参考如下规则:

一个不好的description,可能导致智能体无法精准识别,加载了一个错的技能,结果浪费时间,消耗了Token。也可能出现智能体识别不出来,认为用户需求自己就可以解决,无需调用SKILL,也导致浪费时间白白消耗Token。

1、一定要遵循公式description = 功能定义 + 触发场景/ 触发词,

2、写描述时,不要用人称代词,以陈述句直接描述功能即可,比如“你可以用该技能来识别PDF并生成统计表格”,这种就可以直接写为“识别PDF并生成统计表格”。

3、同时描述不要写太长,建议50-200个字。

4、反向触发词,当技能装的越来越多,可能某个任务有多个技能都可以处理,此时可以在描述中规定界限,即什么情况下不要触发该技能。

另外就是确定做一个Skill时,自己要很熟悉这个技能的整个流程,不如很难写出稳定的技能,同时写Skill前应该先确认相关信息,如下:

1、问题:确定要解决什么问题。

2、场景:谁在什么时候用。

3、输入:需要输入哪些信息。

4、输出:技能需要产生什么。

5、规则:有哪些相关的约束。

6、禁止清单:绝对不能做什么。

按需加载

SKILL的按需加载机制,也叫做渐进式披露:

启用即加载:智能体启动时,会将技能的YAML前置信息加载上,随后用户发指令后,大模型会根据指令内容来决定使用哪个技能。

用到再加载:当确定使用某个技能后,此时智能体会去加载这个技能的正文内容,并进行执行。

必要时再加载:当技能复杂时,可能不止一个SKILL.md文件,可能还有一些关联文件,比如references目录下放的md参考文档,scripts目录下放的py脚本文件,assets目录下放的图片、pdf等静态资源。这些关联文件可能是在触发到具体任务时才需要使用,不触发就不使用,所以是必要时再加载。

具体怎么触发可以在SKILL.md中说明,比如需要XXX时,就调用scripts/test.py文件进行处理,这里路径说明时建议使用从技能根目录出发的相对路径,且只引用一层即可。不要出现A引用B,B又引用C的嵌套引用,可能会导致智能体混乱不知道要做什么,也会加大Token开销。

和MCP区别

在智能体中会涉及到一些概念,如下:

提示词:用户给AI下发的指令。

大模型:智能体的大脑,负责思考、推理和下达指令。

上下文:智能体处理当前任务时所要处理的信息集合。

工具:智能体能调用的相关工具,比如内置工具、扩展工具。

技能:写给智能体看的具体的任务操作手册。

MCP:外部工具接入智能体时的统一对接标准。

这里Skill和MCP容易搞混,总结一句话就是Skill是告诉智能体具体怎么做,MCP让各种外部工具接入到智能体,便于智能体去调用。

SKILL使用的一些技巧

1、虽然智能体启动只加载技能的元数据,但如果SKILL过多,则也会占用上下文空间,官方建议上限是安装20~50个技能,如果元数据是中文,则理论汉字占空间更多,需要进一步减少。所以可以根据需求来关闭一些技能。

同时采用分层管理,比如常用的技能可以放全局目录,项目具体用到的技能,可以放到项目技能目录下,避免智能体启动加载所有SKILL。

2、SKILL.md文件最好控制正文长度,可以进行拆分,不同功能放到关联文件中,建议长度在5000个token内,中文在3800字内,避免正文内容太大,占用上下文。

3、技能一旦被使用,它的内容就会存在于当前会话的上下文,连续使用多个复杂技能,对上下文占用是巨大的,可以适当开启新会话来避免该情况。

总结

所以,Skill装的其实就是自己的经验,以文本和代码形式给到智能体供其调用。

以上就是Skill安全系列之Skill基础,感谢阅读。

小枣信安:专注AI安全,包括但不限于大模型安全、智能体安全、机器人安全、AI赋能网络安全等,欢迎一起学习。

http://www.jsqmd.com/news/1105878/

相关文章:

  • leecodecode【面试150】【2026.6.26-7.1打卡-java版本】
  • 前端转大模型:页面开发到 AI 产品工程师,从方案设计到上线检查
  • 遗传算法实操调参与收敛性诊断实战指南
  • 卡梅德生物技术快报|酒酿酵母过表达工程化开发:tRNA 翻译调控抗逆菌株全流程量化方案
  • 絮絮叨叨一点工作的东西
  • 通达信缠论自动化分析:3步实现智能K线识别与交易信号生成
  • 2x2键盘+PIC32MZ实现多功能控制的嵌入式方案
  • CSDN Markdown编辑器使用指南
  • iSpaRo 2025|月球基地布线,机器人“胳膊不够长”怎么办?
  • about my Grade 7 students [2026.07.01]
  • RK3568平台开发系列讲解(调试篇)静态分析 C 程序函数调用关系图
  • 直播缺主播、成本高?启智数字人直播,济南商户低成本长效获客
  • AI 辅助:设计模式在生产中的边界:策略模式不是消灭 if else
  • PyPDF2与pdfplumber:PDF文件处理
  • 【极简监控专栏·番外随笔】零收益、挂考试,我为什么还要耗时一年建起这座“技术高塔”?
  • AOSP 13 分屏源码分析
  • 国内洗发水OEM/控油去屑洗发水代工/草本洗发水代工哪个源头厂家好?
  • # 03. 让 Agent 更聪明:System Prompt 的分层设计
  • 《传世无双》2026年7月最新官网下载:新手全阶段副本挑战指南
  • AI率爆表怎么办?10款AI智能降重工具实测(含免费降ai率工具)真实避坑指南
  • 深圳钣金外壳定制厂家产品优势
  • 从“能跑“到“能打“:我把Shell脚本踩过的坑,攒成了这篇避坑指南
  • AI工程化中Harness性能优化实战与调优方法论
  • LangChain 调用 Qwen 与 Ollama 的环境变量笔记
  • 从0到1:企业级AI项目迭代日记 Vol.58|一个工单解决的事,不值得等一个发版周期
  • JWT与Session+Cookie认证方案选型实战指南
  • 等保测评核心:高危漏洞、高危端口与弱口令的实战防护指南
  • 编程学习工程化:让服务解释编译错误而不是代写答案
  • 无法使用dbeaver、navicat连接opengauss
  • 华为HCCDA-AI认证题库解析与AI开发实战指南