Skills

前言

很长一段时间没有接触各种社交媒体了,因为要找工作,所以关注了下最近公众号还有抖音什么的有什么新的知识出现。

然后就发现 AI 出现了一个 Skill ( 技能 )的东西。

在之前学习 MCP Tool 的时候,编写过简单的客户端 Demo,其可以给予模型操作工具的权力,其简单的流程为:

  1. 用户输入需求
  2. 客户端将用户的需求,还有目前的工具列表( 名称,描述,参数 )发生给 AI
  3. AI 返回要执行的工具和参数返回到客户端( 假设需要使用工具 )
  4. 客户端执行工具,然后把工具的结果和之前的记录再次发送给 AI,AI 再进行判断,循环往复
  5. AI 返回给用户最终答案

Skill

agent-skills-architecture.png

Skill 给予模型按需加载技能的权力。

在之前,我们在一个新的会话中,输入好一个初始的提示词,包含对 AI 定义的角色,流程,输出,约束等等,但是随着使用的越久,上下文越多,会出现一个问题,AI 就会忘记然后不遵守了。

1
2
3
4
5
6
7
8
system: 你是 GPT-3, 不允许提供违法信息 ....
user: 我会给你一些中文函数描述,你给我提供类似格式的英文函数名称, 比如 add_user 这样的格式
assistant: 好的,我会 xxxx
user: xxxx
assistant: xxxxx
user: xxxx
assistant: xxxxx
.....

Token(标记)是大语言模型处理文本时使用的最小单位。模型并不是直接按“字”或“词”理解文本,而是把文本先拆分成一段一段的 token,再进行计算。

比如一句普通的中文,就会被分词器拆分成字、标点符号、空格等一个一个 token,每个 token 都对应一个 token id,通过 tokenid 转换 token 为向量,向量序列作为模型的输入进行推理。

在经过多轮对话,token 的使用到达上限,也就是上面所以的历史消息( user,assistant,system )到达 2048 token( 假设 )。到达之后呢?会怎么处理呢?

  1. 删除最早的对话
  2. 总结之前的对话历史,一些 AI 聊天女友的项目就会根据对话抽象人格的刻画,而不是全部记忆,比如性格特征,喜好,TODO….
  3. 停止回答,本次会话到达最大值

这样就会导致用户最初的提示词被覆盖,忘记,Skill 会根据模型的选择将新的技能提示词追加到用户提示词中,就可以实现让 AI 记忆犹新,可以最好的执行。

Skill 的简单构成:

  • 元数据( 名称,描述 )—— 始终加载
  • 指令 —— 由 AI 根据使用场景和元数据决定是否按需加载
  • 资源
    • 子指令( xxx.md )
    • 可执行脚本( scripts/xxxx )—— 通过 bash 直接运行,脚本提供确定性操作而不消耗上下文,也就是不是类似与 mcp tool 需要有复杂参数
    • 资源 ( 参考材料,如数据库模式、API 文档、模板或示例)
1
2
3
4
5
6
pdf-skill/	
├── SKILL.md (main instructions) SKILL 文档, 主文档,包含元数据
├── FORMS.md (form-filling guide) 子技能列表文档,
├── REFERENCE.md (detailed API reference)
└── scripts/
└── fill_form.py (utility script)

其简要流程如下:

  1. 用户输入需求
  2. 客户端将用户的需求,还有目前的 Skill 元数据列表( 名称,描述 )发送给 AI
  3. AI 根据用户的需求和 Skills 元数据, 选择需要加载的技能( 假设需要 )
  4. 客户端会读取需要加载的技能详情( SKILL.md ),然后注入到用户的提示词中,再次发送给 AI
  5. AI 根据详细的提示词做出决策,后续则返回或者加载其他的技能文档,循环往复

至于编写,现在 AI 客户端都直接提供 Skill 编写的功能了,直接告诉 AI 让 AI 给辅助编写。

结语

Skills 的出现可以让 AI 客户端的使用更加的方便,以前如果想用 AI 编写 pocsuite 脚本,我需要在一个提示词中编写:

  • 角色
  • Pocsuite 基础模板
  • Pocsuite 各种漏洞检测方案,Pocsuite 格式
  • 示例
  • 约束

那么现在呢?

完全可以这样,清清楚楚的,明明白白的。

1
2
3
4
5
6
7
8
pocsuite-skill/
SKILL.md
templates/
信息泄露.py
命令执行.py
....
examples/
....

当然,这里说的也只是对于 AI 客户端,如果是直接使用代码,直接放到 system prompt 会更方便,针对不同的函数和功能选择不同的系统提示词。

参考链接


Skills
https://liancccc.github.io/2026/03/08/技术/AI/Skills/
作者
守心
发布于
2026年3月8日
许可协议