乐于分享
好东西不私藏

【AI 白话原理】Skill 是什么

【AI 白话原理】Skill 是什么

AI 原理合辑

大模型的 Skills 已经不新鲜了

随便一查就能有答案,「技能」「经验包」「说明书」,这些概念当然其实也不难理解,但是我想从我们日常使用AI的场景去理解

比如通常我们想让 AI 去开发一个工具,比如说 公众号管理

我们会进行这样的对话

帮我开发一个公众号管理工具

目的有两个

1.公众号文章数据变化

2.粉丝数据变化

OK,我们可能需要抓取数据

我们使用官方的API 还是自己爬

自己爬吧,每天爬取一次
好的,我尝试下爬虫是否可以正常获取数据

尝试中...

模拟点击抓取失败,建议走官方API

真笨啊

我看到请求粉丝的接口是

https://xxx,你去尝试调用

请求没跑通,浏览器拦截了接口

net::ERR_BLOCKED_BY_CLIENT

我要做的是自动化

为什么会被拦截,想想怎么处理

好的,是 Codex 操作浏览器受限了

我将写个采集程序控制专用浏览器

...以下省略无数轮对话...

在你花了大量时间,消耗了无数Token 之后,最后当然也是可以顺利完成

但是你会发现,不止你一个人有这种工具的需求

但是大家都一样,一轮轮地对话,方案对齐,无效试错

明明需求一样,但是大家仍然都是重复花费大量精力和Token 去重复做一件事

有没有一种办法,可以已经落地成功的决策,全部固化保存下来

让有需求的人,可以快速复用这套成熟方案?

比如把 我上面的和 AI 磨合出来的字段设计、爬取逻辑、存储方式、稳定流程 ,这些 决策结果 固化下来,下次不用再吵一遍架

这便是 Skill 核心逻辑

让别人跳过 「探索-试错」烧Token的阶段

让别人更「稳定」「高效」「省钱」「省时间」地快速得到工具

用这个 weixin-skill 帮我爬取我的公众号数据

OK,已经爬取成功

文章阅读量 100w+

粉丝 100w+

我理解,这其实就是一种蒸馏

什么是蒸馏? → 蒸馏

和小模型的对话 通常十分费劲,而如果我们用顶尖模型去探索出成功方案之后,也就是蒸馏出 Skill,再让 小模型 照着做,那这就显得简单性价比更高

艾玛,一键复用!

上面我们从日常开始去 理解了 skill

那 skill 具体是什么样呢?怎么去把我们对话的

其实简单来说 Skill 无非就是 一套提示词

只不过它具体的形态就有所不同

  • 一份 Markdown 可以是 Skill

  • 一份 Markdown + 脚本 可以是Skill

  • 一份 Markdown + 脚本 + 模板 也可以是Skill

不管目录多复杂,内容多大

核心都是那份 Markdown,也就是 SKILL.md

脚本 或者 模板,都是为 SKILL.md 服务

—— 在 SKILL.md 注明什么时候用什么 脚本 或 模板

而 SKILL.md 的内容,无非就是把「流程」「处理方法」保存下来

比如这样我上面的工具 SKILL.md

SKILL.md

1. 简介

当用户想要微信公众号数据时,自动抓取公众号,清洗并提取内容。

2. 触发条件

用户明确要求“抓取”、“爬取” 公众号

3. 执行工作流 

1.让用户扫码登录

2.自动调用后台脚本 `scripts/crawler.py `。

3.等待脚本返回 结果

4.如果返回成功,将 JSON 中的 `title`、`author` 以精美的 Markdown 格式排版,并友好地呈现给用户

然后Skill文件夹的结构是

/skills/wechat-data-handler/

├── SKILL.md   #说明书

└── scripts/

    ├── crawl_wechat.py #已经调通核心爬虫脚本

    └── save_to_db.py  # 数据库写入脚本

这个太简单的话

我们来看看 归藏的PPT Skill 都有什么东西

别看东西多,那也不是一次性生成的,人家迭代了五次,踩了无数次坑才出来的

你想想要是每个人重头弄,那得多麻烦,有些细节还不了解

那 Skill 已经包含了完整的处理流程和方法的话

而 AI 是怎么使用Skill 的?

如果你了解 AI 是怎么携带记忆的话,你应该就可以轻松理解

Agent 其实就是 所有的Skill 和你的对话内容 一起发给 大模型(当然,这是背后做的)

你以为你发送的只有一句话

帮我爬取我的公众号数据

OK,已经爬取成功

文章阅读量 100w+

粉丝 100w+

其实真正发送给大模型的是

[SKILL 1.md]

[脚本 1]

[模板 1]

[SKILL 2.md]

[脚本 2]

[模板 2]

帮我爬取我的公众号数据

OK,已经爬取成功

文章阅读量 100w+

粉丝 100w+

那你就有问题了

“难道每次对话都需要把 [所有Skill + 我的指令] 发给大模型? ”

是的,因为大模型是没有记忆的,必须每次对话都完整告诉它,当然这些不需要你做,是Agent 背后完成的

不懂可以看这个,AI 是如何携带记忆

“那如果有很多Skill,岂不是发送内容体积爆炸了??”

对,不过这里涉及到 Skill 的一个优化机制

渐进式加载

Skills 允许 Agent 采用 L1 → L2 → L3 级别的渐进式、按需加载机制

  • L1:初始化时,大模型只读取 SKILL.md 里的名称和简介,让 AI 知道有什么技能可以用

  • L2:只有当用户任务与该技能匹配时,Agent 才会触发读取工具,加载该 Skill 详细的工作步骤和规范

  • L3:在执行中,如果需要,才会去调用 脚本 或者 素材

就这样解决了上下文体积爆炸的问题

而生成 Skill 本身也很简单,当然不需要你手动写(都AI 时代了!!)

有 Skill-creator 这个 Skill!!! 

比如我已经和 AI battle 很多轮,完成了工具开发,我直接让它基于我们的内容 生成 skill

OK了, 那这便是 Skill 的全部内容了

可以帮我们省时间省精力省钱的一个玩意

所以当我们开始一个新项目的时候,应该先去问AI 有没有什么 Skill 支持,从而可以快速实现

(完)