乐于分享
好东西不私藏

一个文件,让 AI 记住你的工作流:手把手教你做 Skill

一个文件,让 AI 记住你的工作流:手把手教你做 Skill
AI SKILL GUIDE
★★★★★
教AI记住你的工作流
一个文件,让 Agent 自动跑完整条流水线
🚀
若愚
工具箱 · VOL.03
每次让 AI 干同一件事都要从头交代?我把公众号的完整流程写进了一个 Skill,现在一句话出封面、出标题、出排版。20 分钟,你也能做出第一个。
#Skill
#Agent
#工具箱
NO.
003
教程
GRADE
S
VALID FOR ONE READ
ADMIT ONE 🎟
01
引子:每次让 AI 干活都要从头交代
/ 为什么需要 Skill

你有没有这种时刻:每次让 AI 干同一件事,都要从头交代一遍背景、步骤、注意点。今天写完,明天它全忘了。

我有个公众号。每发一篇文章,要走六个环节:找热点、写稿、去 AI 味、配图、检查、排版。每个环节我都得跟 AI 说一遍怎么做。

后来我把这些步骤写进了一个文件——Skill。现在我说一句话,AI 自动跑完六个环节,连封面和推文标题都给我生成好。

这篇文章拆的就是这个过程。你跟着做,20 分钟能出自己的第一个 Skill。

02
Skill 是什么
/ 目录结构

一个文件夹,里面放一个 SKILL.md。就这么简单。

Skill 不产出内容,它只负责告诉 AI:什么场景触发我、我依赖什么、按什么顺序干活、什么不该管。等于给 AI 一份岗位说明书。

templates/ 不是必须的。你完全可以从一个 SKILL.md 起步,跑通后再加脚本和模板。我后面要讲的案例——gzh-factory,就是从一个文件长到四个文件的。

03
SKILL.md 长什么样
/ frontmatter + 指令体
frontmatter:让 AI 认得你

SKILL.md 分两部分:frontmatter(头部元数据) + 指令体。

...markdown

---

name: my-skill

description: 一句话说明这个 skill 干什么、

什么时候触发。写清楚触发场景,

AI 才知道什么活该派给你。

agent_created: true

---

description 是关键中的关键。AI 靠它判断“用户这句话要不要唤起我”。写模糊了就永远触发不了,写太宽了就会乱抢活。

三要素:干什么(能力)+ 什么时候触发(场景)+ 什么时候别触发(边界)。缺一不可。

gzh-factory 的 description 写了四个触发场景,还专门加了一句“单环节请求不触发本 skill”——后者帮你把活推给子 skill,别什么都自己扛。

指令体:四块搭骨架
...markdown

# 我的技能名

## 依赖清单

列出每一步要用的工具/脚本/路径。

## 工作流(X 步)

第一步…第二步…第三步…

每步写清楚:输入、动作、产出。

## 模式

交互模式停在哪里问用户;全自动模式什么时候用。

## 边界

什么不该管、依赖缺失怎么降级。

四块缺一不可。依赖清单是安全网,工作流是发动机,模式是方向盘,边界是刹车。少一块,AI 要么卡死要么乱跑。

04
五步做出你的第一个 Skill
/ 以 gzh-factory 为例

拿我做的 gzh-factory 走一遍。

1
确定边界:最容易犯的错是贪大。一个 skill 只管一条主流程。gzh-factory 只管“从选题到可粘贴的 HTML”,发布动作明确写进边界。
2
写 SKILL.md:步骤要具体(“用 ImageGen 生成,保存到 images/”),坑要写进去(“img 属性用 ASCII 引号”),用户确认点要标清。
3
加模板和脚本:跑通后把重复代码固化成 templates/ 文件。关键:模板要参数化,改 CONFIG 就出新产出。
4
装进 Agent:用户级放 ~/.workbuddy/skills/,项目级放 {workspace}/.workbuddy/skills/。丢进去就行,没有注册命令。
5
触发使用:对话里说一句触发词,看是否唤起。触发不了八成是 description 太宽或太窄,改完重存即可。
05
打包分享给别人
/ zip 解压即用

Skill 就是文件夹,打包成 zip 就能发。

...python

import zipfile, os

src = '/path/to/my-skill'

out = 'my-skill.zip'

with zipfile.ZipFile(out, 'w', zipfile.ZIP_DEFLATED) as zf:

for root, dirs, files in os.walk(src):

for f in files:

full = os.path.join(root, f)

arc = os.path.relpath(full, os.path.dirname(src))

zf.write(full, arc)

对方收到后解压到 ~/.workbuddy/skills/ 即可。前提是对方也得装好你的依赖——SKILL.md 的依赖清单要写全。

一个坑:模板里的中文文件名在 zip 里容易乱码。打包前把模板文件名改成英文最省事;非要中文,解压时要用 metadata_encoding='gbk'。

06
我踩过的坑,你不用再踩
/ 五条经验
1
description 不写触发场景 = 装了等于没装。AI 不会读心,得告诉它什么话该接。我第一个版本没写触发词,喊了三句没反应。
2
工作流写虚词 = AI 现场乱编。把“生成配图”改成“用 ImageGen 生成,保存到 images/”,确定性提升一个量级。
3
不写边界 = skill 越长越胖。gzh-factory 早期想包发布,后来砍掉,专注“到可粘贴 HTML 为止”,反而跑得更稳。
4
不写坑 = 每次重踩。把踩过的坑固化进 SKILL.md,AI 以后自动避雷。图不显示半小时才发现是引号问题,写进 skill 后再没复发。
5
模板不参数化 = 每次重写。封面脚本第一个版本文案写死在代码里,改十几行。改成 CONFIG 区后只改三行。
07
写在最后
/ 本质是经验沉淀

Skill 的本质不是代码,是经验沉淀

你干过一遍的活,把步骤和坑写下来,AI 以后每次都按你的方式干,不用你重复交代。我从写公众号这件事里提炼出了 gzh-factory:八步流水线、三个模板脚本、五个坑。这些以后都属于 AI 的肌肉记忆,不再占我的脑子。

你手上有没有反复做的工作流?打开一个文本文件,从 SKILL.md 开始写。20 分钟后,你的第一个 skill 就能跑起来。

所有模板和完整 SKILL.md 我打包好了,文末附下载。改改名字和步骤,就是你的。

我是若愚,你的 AI 搭子。专注 AI 实战、工具箱和开源项目。公众号内容沉淀在个人知识库,欢迎去后台回复 "Skill" 领取本文 gzh-factory 完整打包文件。

如果你觉得今天这篇有收获,欢迎转发给也在折腾 AI 的朋友。点赞·在看·星标三连,我们下篇见。

点赞
在看
星标

THANKS FOR READING ✂

/