莫潇羽@无忆研习社(www.wuyi.wiki) 原创内容,转载请注明出处。本文首发于无忆研习社,未经授权禁止任何形式的搬运与洗稿。
如果你最近在关注 AI 工具的动态,一定注意到了一个越来越热门的概念——Agent Skills。这个由 Anthropic 推出、并逐渐被多家厂商采纳的开放标准,正在改变我们与 AI 协作的方式。然而,很多朋友看到"Skills"这个词的时候,脑子里可能还是一团浆糊:这到底是什么?跟我平时写的提示词有什么区别?我一个非技术人员能不能用得上?
别急,今天这篇文章,莫潇羽就从最基础的概念出发,带你一步步拆解 Agent Skills 的结构与原理,并且手把手教你如何创建属于自己的第一个 Skill。文章会尽可能写得通俗,即便你完全没有编程经验,跟着做也能轻松上手。
莫潇羽在研究和使用 Agent Skills 的过程中发现,很多中文资料要么讲得太浅只停留在概念层面,要么太技术化让普通人望而却步。所以这篇文章的目标很明确:既要把原理讲透,也要把操作讲清,让你看完之后真的能自己动手做出来。
在正式开始之前,先说一下这篇文章的内容地图。我们会先用一个生活中的比喻来理解 Skills 到底是什么,然后深入它的文件结构和核心运行原理,接着通过一个从零到一的实操案例来掌握创建流程,再聊聊怎么安装别人做好的 Skill、有哪些好用的 Skill 值得推荐,Skills 和 MCP 的区别,最后分享一些来自实战的最佳实践和调试技巧。内容比较长,建议收藏起来慢慢看。
一、用一个比喻理解 Agent Skills
在聊技术细节之前,我们先用一个特别直观的比喻来理解 Agent Skills 是什么。
想象你是一家餐厅的老板,你请了一位非常聪明的厨师。这位厨师什么菜系都懂一点,但如果你希望他每天都能稳定地做出符合你餐厅风格的菜品,你会怎么做?你大概率会给他一套标准化的操作规范:先炒什么、后放什么、油温控制在多少度、盐放几克、摆盘用什么样式。这套规范里可能还会附带一些工具说明(比如必须用某型号的炒锅),以及一些独家材料(比如你家秘制的辣椒酱配方)。
Agent Skills 和这个场景几乎一模一样。AI(比如 Claude)就是那个聪明的厨师,它本身能力很强,但你希望它在某些特定任务上能按照你的标准和流程来执行。于是你把你的流程、配方、工具和材料打包成一个"技能包"交给它——这就是一个 Skill。
用更技术一点的语言来描述:Agent Skills 是一种模块化的能力扩展机制,通过标准化的文件夹结构,将指令、脚本和资源打包在一起,让 AI 在需要的时候自动加载并执行。 它的官方定义来自 Anthropic 发布的 Agent Skills 开放标准(agentskills.io),目前已经被 Claude Code、VS Code Copilot、Cursor、OpenAI Codex 等多个主流 AI 工具支持。
如果从另一个角度理解,你还可以把 Agent Skills 想象成你给新员工准备的入职培训资料包。一个没有 Skill 的 AI 就像一个刚入职的新人,虽然聪明但对你们公司的具体做事方式一无所知,每次交代任务你都得从头解释一遍。而装了 Skill 的 AI 就像一个已经完成了培训的老员工,你只要说一声"做一下这个",它就知道该按什么流程、用什么标准来完成,不需要你每次都重复交代。
那它跟我们平时写的提示词(Prompt)有什么本质区别呢?说实话,从底层逻辑来看,Skill 的核心还是提示词——毕竟我们跟大语言模型打交道,归根结底都是在用文字下达指令。但 Skills 在工程层面做了非常多的优化,让它远远超越了"把提示词复制粘贴一下"这个层次。
很多人可能会想:"那我把一段精心写好的提示词保存在记事本里,每次复制粘贴给 AI 不也一样?"其实不一样,差别体现在很多方面。首先,你每次手动粘贴的提示词会始终占据上下文窗口的空间,不管当前任务是否需要;其次,手动管理多套提示词很容易出错和混乱;最重要的是,你没法在提示词里附带脚本、参考文件和资源文件,也没法实现按条件自动加载不同的参考资料。这些正是 Skills 在工程层面的优势所在。
这里先提三个最直观的好处:
按需加载,节省资源。 AI 不会一股脑把所有 Skill 的完整内容都读一遍,而是只在需要的时候才加载相关内容,这在 Token 消耗和回答精准度上都有明显提升。
模块化管理,可复用可分享。 一个 Skill 就是一个独立的文件夹,你可以轻松地把它分享给同事、上传到社区,或者从别人那里下载安装,就像安装一个插件一样简单。
自动匹配,无需手动触发。 你不需要每次都告诉 AI"请用某某技能",它会根据你的需求自动判断该调用哪个 Skill。当然,你也可以用斜杠命令(如 /skill-name)来手动触发。
二、Skill 的文件结构:四个关键组成部分
理解了概念之后,我们来看看一个 Skill 在文件层面到底长什么样。这部分是整个 Skills 系统的骨架,搞清楚了它,后面所有的内容都会水到渠成。
一个完整的 Skill,其实就是一个文件夹。这个文件夹有一个固定的结构,由一个必需文件和三个可选的子文件夹组成:
my-skill/
├── SKILL.md (必需)核心文件:元数据 + 指令
├── references/ (可选)参考资料文件夹
│ ├── guide-a.md
│ └── guide-b.md
├── scripts/ (可选)可执行脚本文件夹
│ └── helper.py
└── assets/ (可选)资源文件夹
├── logo.png
└── template.html
接下来我们逐一拆解每个部分。
2.1 SKILL.md —— 一切的核心
每个 Skill 必须有一个名为 SKILL.md 的文件(注意是大写),这是 AI 识别和使用这个 Skill 的入口。这个文件由两部分组成:YAML 前置元数据和 Markdown 正文指令。
YAML 前置元数据,简单理解就是文件最顶部用两组三条横线(---)包裹起来的那几行配置信息。它长这样:
---
name: my-brand-creator
description: 根据品牌规范生成各类营销物料的创意方案。当用户提到需要制作海报、传单、社交媒体配图等物料时使用此技能。
---
这里只有两个字段,但都非常重要:
- name:技能的名称,只能使用小写字母、数字和连字符,最长 64 个字符。这个名字同时也会变成你可以手动调用的斜杠命令(比如
/my-brand-creator)。 - description:技能的功能描述,最长 1024 个字符。这段描述是 AI 判断"什么时候该用这个技能"的核心依据,所以一定要写清楚这个 Skill 能做什么、在什么场景下应该被触发。
三条横线下面,就是 Markdown 格式的正文指令了。这部分可以理解为你给 AI 写的详细操作手册,内容可以包括工作流程、输出格式要求、注意事项、示例等等。比如:
# 品牌物料创意生成器
## 品牌信息
- 品牌名称:XX 餐厅
- 品牌色系:主色 #2D5F2D(森林绿),辅色 #F5E6D3(暖米色)
- 品牌调性:健康、自然、温暖
## 工作流程
1. 确认用户需要的物料类型
2. 根据品牌规范构思创意方案
3. 输出包含主题、文案、视觉描述和尺寸建议的完整方案
## 输出格式
每个方案需包含以下内容:
- 主题名称
- 核心文案(主标题 + 副标题)
- 视觉描述(画面构成、色彩运用、氛围)
- 推荐尺寸
到这里,其实最简单的一个 Skill 就已经创建完成了——只需要一个 SKILL.md 文件就够了。但如果你的需求比较复杂,就需要用到下面的三个可选文件夹。
2.2 references/ —— 参考资料库
references 文件夹用来存放那些"不是每次都需要,但在特定情况下需要被 AI 阅读"的参考文档。
继续用餐厅的例子来说明。假设你的餐厅需要制作的物料种类非常多:常规的有海报、菜单;线下实体物料有餐盒、杯子、员工工服;社交媒体物料有公众号封面、微博配图等等。每种物料的尺寸、配色要求、平台规范都不一样,如果把所有细节都写在 SKILL.md 里面,这个文件会变得特别长。
更关键的问题在于,当你只是想做一个餐盒的设计方案时,AI 并不需要知道公众号封面的规格参数,但如果所有内容都挤在一个文件里,AI 就不得不把无关信息也读一遍,这既浪费 Token,也可能导致信息干扰,影响回答的精准度。
解决方案就是把不同类别的详细规格拆分到 references 文件夹下的独立文件中。比如:
references/
├── physical-materials-spec.md (线下实体物料规格)
└── social-media-spec.md (社交媒体物料规格)
然后在 SKILL.md 的正文指令中加上指引,告诉 AI:如果用户要做线下物料,就去读 physical-materials-spec.md;如果要做社交媒体类的图,就去读 social-media-spec.md。
这样一来,AI 只有在判断确实需要某份参考资料时,才会去加载对应的文件,其他时候完全不会碰它们。这种设计的好处莫潇羽在实际使用中感受非常明显:同样是生成一个实体海报的方案,拆分之后 AI 的输出明显更精准了,因为它的注意力没有被无关信息分散。
2.3 scripts/ —— 可执行脚本库
scripts 文件夹存放的是可以被 AI 直接执行的代码脚本,通常是 Python 或 Bash 脚本。
这个设计解决的是一个很实际的问题:有些任务需要确定性和可复现性。比如生成图片、处理 PDF、操作 Excel 等,每次都让 AI 临时写一段代码来完成,既不稳定也浪费时间。把这些操作封装成写好的脚本,AI 只需要知道"传什么参数进去、会得到什么输出",然后直接调用执行就行了。
举个具体的例子。假设你希望 Skill 不仅能输出创意文案方案,还能直接帮你生成一张符合品牌规范的设计图,那你可以在 scripts 文件夹中放一个调用图片生成 API 的脚本。在 SKILL.md 中告诉 AI:如果用户要求直接生成图片,就把创意方案转化成图片生成的提示词,然后调用脚本来生成。
这里有一个非常值得注意的技术细节:scripts 文件夹里的代码,AI 默认是不读取的。 它只需要根据 SKILL.md 中的指引来执行脚本,不需要去理解脚本里写了什么。这意味着不管你的脚本有多少行代码,都不会占用 AI 的上下文窗口(也就是不消耗 Token)。只有在极少数情况下,比如 SKILL.md 中的指引写得不够清楚导致 AI 不知道怎么用这个脚本时,它才可能会自己去翻看一下代码。
2.4 assets/ —— 静态资源库
assets 文件夹用来存放模板文件、图片、字体、图标等静态资源。这些资源通常是作为脚本的输入或输出模板来使用的。
还是用上面的例子。假设你希望生成的设计图中包含你品牌的 Logo,那就可以把 Logo 图片放到 assets 文件夹里,然后在 SKILL.md 中说明:生成图片时需要把 assets 文件夹中的 Logo 作为参考图传给生成脚本。
到这里,一个完整形态的 Skill 就全部介绍完了。我们来做一个简单的小结:
- SKILL.md(必需):技能的核心文件,包含元数据和指令。
- references/(可选):存放按需加载的参考文档,用于拆分复杂的规格说明。
- scripts/(可选):存放可执行脚本,用于需要确定性操作的任务。
- assets/(可选):存放静态资源文件,如图片、模板、字体等。
莫潇羽@无忆研习社 提醒一句:最简单的 Skill 只需要一个 SKILL.md 就够了,不要一上来就追求完整形态。先从最简单的开始,随着需求的增长再逐步添加其他组件。
三、核心原理:渐进式披露的三层架构
文件结构清楚了,接下来要理解的是 Skills 系统最精妙的设计——渐进式披露(Progressive Disclosure)机制。这个机制是 Skills 区别于普通提示词最核心的技术优势,也是 Anthropic 官方在文档中反复强调的架构设计理念。
3.1 为什么需要渐进式披露
在理解这个机制之前,我们先想一个问题。假设你同时安装了 20 个不同的 Skill,如果 AI 在每次对话时都把这 20 个 Skill 的全部内容都读一遍,会发生什么?
首先,大语言模型有一个叫做"上下文窗口"(Context Window)的限制,你可以理解为 AI 一次能看到和处理的文字总量是有上限的。如果 20 个 Skill 的完整内容一起塞进去,很可能就把上下文窗口撑满了,留给实际任务的空间就所剩无几。其次,大量无关信息的存在会干扰 AI 对当前任务的判断,导致回答不够精准。最后,Token 的消耗也会大幅增加。
渐进式披露就是为了解决这个问题而设计的。它的核心思想是:只在需要的时候,才把需要的信息交给 AI。
3.2 三层加载结构详解
Skills 的渐进式披露分为三个层级,每一层的加载时机和加载范围都不一样。
第一层:元数据层(Metadata Layer)——始终加载
这是最轻量的一层。当 AI 启动或开始一次新对话时,它会读取所有已安装 Skill 的 YAML 前置元数据,也就是每个 SKILL.md 文件顶部那几行 name 和 description。
这些元数据通常只有几十个词,就算你装了几十个 Skill,加在一起也不过几千个 Token。AI 通过这些简短的描述来了解自己"有哪些技能可以用",就像翻阅一本目录一样。这一层是始终存在于 AI 的上下文中的,不会因为你没有使用某个 Skill 就消失。
打个比方,这就好像你作为餐厅老板,贴了一张菜单在厨房墙上——厨师一抬头就能看到有哪些菜可以做,但他不会因此就把每道菜的做法都背一遍。
第二层:指令层(Instruction Layer)——触发时加载
当 AI 根据元数据判断出"当前用户的需求跟某个 Skill 相关"时,它才会去完整加载那个 Skill 的 SKILL.md 文件中的正文指令部分。
比如说,你对 AI 说"帮我做一张促销海报",AI 扫了一眼所有 Skill 的元数据目录,发现有一个 Skill 的描述里提到了"制作海报",于是它判断需要使用这个技能,这时候才会把该 Skill 的完整指令加载进来。而其他 19 个 Skill 的详细指令,依然安静地待在文件里没有被读取。
这一步大概会加载几百到几千个 Token 的内容(官方建议 SKILL.md 的正文部分不要超过 500 行或 5000 词),相比把所有 Skill 都加载进来,节省的资源是非常可观的。
第三层:资源层(Resource Layer)——按需加载
这是最深的一层,包括 references 里的参考文档、scripts 里的脚本和 assets 里的资源文件。只有当 AI 在执行任务的过程中进一步判断需要更详细的信息或者需要执行某个脚本时,才会去加载这些内容。
而且这里还有一个特别精妙的设计:脚本文件(scripts)是"只执行不读取"的。 AI 不需要把脚本代码读进上下文窗口,它只需要按照 SKILL.md 中的指引,把正确的参数传给脚本,然后运行就行了。这意味着脚本文件理论上可以有任意长度,完全不占用 Token。
我们用一张表来总结这三层结构:
|
层级 |
内容 |
加载时机 |
Token 占用 |
|
第一层:元数据 |
name + description |
始终加载 |
约 100 Token/技能 |
|
第二层:指令 |
SKILL.md 正文 |
技能被触发时加载 |
通常 < 5000 Token |
|
第三层:资源 |
references/、scripts/、assets/ |
按需加载(脚本只执行不读取) |
视需求而定(脚本不占用) |
3.3 一个完整的运行流程示例
为了把三层架构串起来,我们用一个实际的场景走一遍完整流程。
假设你安装了一个名为"brand-creator"的品牌物料生成 Skill,它包含 SKILL.md、references/physical-materials-spec.md、references/social-media-spec.md、scripts/generate-image.py 和 assets/logo.png。
第一幕:启动阶段。 当你打开 AI 工具开始对话时,AI 读取了这个 Skill 的元数据,知道了自己有一个"品牌物料生成"的技能。此时只加载了大约 100 个 Token。如果你同时装了其他 19 个 Skill,AI 也只是看了所有 Skill 的名字和简短描述,总共不过两千个 Token 左右。
第二幕:技能触发。 你说:"帮我做一张周六饮料免费的实体海报"。AI 根据"做海报"这个关键意图匹配到了 brand-creator 这个 Skill,于是加载了 SKILL.md 的完整指令,了解到了品牌色系、调性、工作流程等信息。而其他 19 个 Skill 的详细指令依然安静地待在文件里没有被读取。
第三幕:深度资源加载。 AI 进一步分析发现你要做的是"实体"海报,根据指令中的指引,它去加载了 references/physical-materials-spec.md,获取了实体物料的尺寸规格和印刷要求。注意:social-media-spec.md 完全没有被碰过,一个 Token 都没浪费。
第四幕:脚本执行。 AI 发现你的需求不仅是创意方案,还需要直接生成图片。于是它根据品牌规范生成了详细的创意方案,将其中的视觉描述转化为图片生成的提示词,接着调用了 scripts/generate-image.py,把提示词和 assets/logo.png 作为参数传入。脚本在后台运行,AI 全程没有读取脚本代码,零 Token 消耗。
最终结果: 一张配色、尺寸、Logo 位置都完全符合品牌规范的海报图片被生成出来了。整个过程中,每一步都只加载了当前步骤所需的最少信息,这就是渐进式披露的精髓。
3.4 渐进式披露为什么重要
理解了三层架构之后,我们可以更深入地感受一下这个设计为什么如此重要。
从 Token 经济性的角度来看,假设你有 20 个 Skill,每个 Skill 的完整指令平均 3000 Token,加上 references 和 scripts 可能还有几千 Token。如果没有渐进式披露,每次对话都加载全部内容,那就是 6 万甚至 10 万 Token 的上下文消耗,这对于有限的上下文窗口来说是灾难性的。而有了渐进式披露,启动时只加载 20 × 100 = 2000 Token 的元数据,触发时只加载一个 Skill 的 3000 Token 指令,按需时再加载几百到几千 Token 的参考文档,总共可能只用了 5000-6000 Token。
从回答质量的角度来看,上下文窗口中的无关信息越多,AI 的注意力就越分散,回答的精准度就越低。渐进式披露确保了 AI 在处理当前任务时,上下文中只有与任务直接相关的信息,这大大提升了输出质量。
从可扩展性的角度来看,正是因为有了渐进式披露,你才可以放心大胆地安装几十个 Skill 而不用担心性能问题。如果没有这个机制,你可能装三五个 Skill 就已经把上下文窗口撑满了。
四、环境准备:开始之前你需要什么
聊完了原理,我们进入实操环节。在创建 Skill 之前,你需要准备好以下工具。
4.1 代码编辑器
你需要一个代码编辑器来查看和编辑文件。推荐以下两个(任选其一):
- VS Code(Visual Studio Code):微软出品的免费编辑器,功能强大且插件丰富,是目前最主流的选择。下载地址:https://code.visualstudio.com/
- Google 推出的 Project IDX / Antigravity 或其他你习惯使用的编辑器也可以。
如果你完全不想装编辑器,其实用系统自带的文本编辑器(比如 Windows 的记事本、macOS 的文本编辑)也能凑合,只是体验没那么好。
4.2 Claude Code
Claude Code 是 Anthropic 推出的命令行 AI 编程工具,也是目前使用 Agent Skills 最原生、体验最好的平台。你可以把它理解为一个运行在终端里的 AI 助手,它能直接读取你电脑上的文件、执行代码、管理项目。
安装 Claude Code 需要你的电脑上先装好 Node.js 运行环境(建议 18 以上版本)。安装方式很简单,在终端中执行:
npm install -g @anthropic-ai/claude-code
安装完成后,在终端输入 claude 即可启动。首次使用需要登录你的 Anthropic 账号。
需要注意的是,Claude Code 目前需要 Claude Pro 或更高级别的订阅才能使用,请根据你的实际情况确认。
4.3 Skill 的存放位置
Skills 可以存放在两个位置:
- 个人全局目录:
~/.claude/skills/。放在这里的 Skill 在你电脑上的所有项目中都可以使用。 - 项目目录:
.claude/skills/(在你的项目根目录下)。放在这里的 Skill 只在当前项目中生效,适合团队协作时通过 Git 来共享和版本管理。
两个路径选一个就行。如果你只是个人使用,推荐放在全局目录。如果是团队项目,建议放在项目目录下并纳入版本控制。
五、实操第一步:创建最简单的 Skill
现在万事俱备了,让我们从最简单的 Skill 开始。我们以一个轻食餐厅品牌物料创意生成器为例来演示整个过程。
5.1 创建文件夹和核心文件
首先,在终端中执行以下命令来创建 Skill 的目录结构:
# 创建项目级的 Skill 目录(也可以用 ~/.claude/skills/ 作为全局目录)
mkdir -p .claude/skills/brand-creator
然后在 brand-creator 文件夹中创建一个 SKILL.md 文件。你可以用编辑器直接创建,也可以用命令行:
touch .claude/skills/brand-creator/SKILL.md
5.2 编写 SKILL.md 内容
打开刚刚创建的 SKILL.md 文件,写入以下内容:
---
name: brand-creator
description: 根据品牌视觉规范生成各类营销物料的创意方案。当用户提到需要制作海报、菜单、传单、社交媒体配图、实体物料设计等物料时使用此技能。
---
# 品牌物料创意生成器
## 品牌基础信息
- 品牌名称:秋之餐厅
- Slogan:每一口都是自然的味道
- 品牌色系:主色 #2D5F2D(森林绿),辅色 #F5E6D3(暖米色),点缀色 #D4A574(秋叶棕)
- 品牌调性:健康、自然、温暖、精致
- 字体风格:主标题使用圆润的无衬线字体,正文使用清晰易读的宋体或黑体
## 工作流程
1. 确认用户需要的物料类型(海报、菜单、社交媒体配图等)
2. 了解物料的具体用途和核心信息(促销活动、新品上市、节日问候等)
3. 根据品牌规范和物料类型构思 2-3 个不同风格的创意方案
4. 每个方案都需要输出完整的创意说明
## 输出格式
请按以下结构输出每个创意方案:
方案名称:[简洁有力的方案名]
主标题文案:[不超过 10 个字]
副标题文案:[补充说明,不超过 20 个字]
视觉描述:[详细描述画面构成、元素布局、色彩运用、氛围营造]
推荐尺寸:[根据物料类型给出合适的尺寸建议]
适用场景:[说明这个方案适合用在什么地方]
保存文件,一个最基础的 Skill 就创建完成了。
5.3 测试你的第一个 Skill
启动 Claude Code,然后直接问一句:
你有哪些 skill?
如果一切正常,AI 会告诉你它识别到了 brand-creator 这个技能。然后我们来测试一下效果:
帮我做一张秋之餐厅春节促销海报的创意方案
你会看到 AI 开始加载这个 Skill,然后按照你定义的品牌规范和输出格式,给出了几个创意方案。方案中的配色、调性、文案风格都会符合你在 SKILL.md 中设定的规范。
如果你想更进一步地验证 Skill 的按需加载是否真的在工作,可以试着问一些跟这个 Skill 完全无关的问题,比如"今天天气怎么样"或者"帮我解释一下量子计算"。你会发现 AI 在回答这些问题时完全不会触发 brand-creator 技能——它只在元数据层看了一眼描述,判断出当前问题跟品牌物料无关,就略过了。
另一个有趣的测试是改变你的表达方式,看看 description 的匹配灵活度。比如你不说"做海报",而是说"我需要一份宣传材料的创意"或者"帮我想想春节活动的视觉方案",看看 AI 能否正确触发这个 Skill。如果发现某些表达方式下没有被触发,就说明 description 需要优化——加入更多可能的触发词和场景描述。
恭喜你,第一个 Skill 跑通了。虽然目前功能还很简单,但这已经是一个合格的、可以正常工作的 Agent Skill 了。接下来我们逐步升级它。
六、进阶升级:让 Skill 更强大
基础版的 Skill 只能输出文字方案,接下来我们通过添加 references、scripts 和 assets 来逐步增强它的能力。
6.1 添加 references:拆分复杂的规格说明
假设你的餐厅物料种类很多,不同类型的物料有不同的详细规格。我们把这些规格拆分到 references 文件夹中。
首先创建目录和文件:
mkdir -p .claude/skills/brand-creator/references
然后创建实体物料规格文件 references/physical-materials-spec.md:
# 实体物料设计规格
## 海报
- 标准尺寸:60cm × 90cm(竖版)或 90cm × 60cm(横版)
- 分辨率:300dpi
- 出血线:四周各留 3mm
- 安全区域:距边缘至少 10mm 内放置重要内容
- Logo 位置:左上角或右下角,最小高度 30mm
## 餐盒
- 展开尺寸:根据餐盒型号确定
- 正面主图区域不小于 8cm × 8cm
- 必须包含品牌 Logo 和 Slogan
- 配色以暖米色为底,森林绿为点缀
- 文字需考虑弧面变形
## 员工工服
- 胸前 Logo 绣花区域:8cm × 5cm
- 背部图案区域:30cm × 40cm
- 颜色方案:森林绿底色 + 暖米色 Logo
- 需考虑不同面料的印刷效果
再创建社交媒体物料规格文件 references/social-media-spec.md:
# 社交媒体物料设计规格
## 公众号封面
- 首图尺寸:900px × 383px(2.35:1)
- 次图尺寸:200px × 200px(1:1)
- 文字需在手机端清晰可读
- 避免在图片边缘放置关键信息
## 微博配图
- 推荐尺寸:1080px × 1080px(正方形)或 1080px × 1440px(竖版)
- 最多 9 张图
- 首图需要有足够的吸引力
## 短视频封面
- 推荐尺寸:1080px × 1920px(9:16 竖屏)
- 重要信息放在画面中间 60% 的区域
- 文字不超过 15 个字
最后,回到 SKILL.md 文件,在工作流程部分加上指引:
## 参考规格
- 如果用户需要制作线下实体物料(海报、餐盒、工服等),请参阅 references/physical-materials-spec.md 获取详细规格
- 如果用户需要制作社交媒体相关物料(公众号封面、微博配图等),请参阅 references/social-media-spec.md 获取详细规格
这样设置之后,当你说"帮我做一个餐盒的设计方案"时,AI 会自动去加载实体物料的规格文件,而社交媒体的规格文件完全不会被读取。输出的方案会精确包含餐盒的尺寸、Logo 位置、配色等详细信息。
6.2 添加 scripts:让 Skill 能执行操作
目前我们的 Skill 只能输出文字创意方案,如果想让它直接生成图片,就需要添加脚本。
创建 scripts 目录并添加一个图片生成脚本:
mkdir -p .claude/skills/brand-creator/scripts
在 scripts 文件夹中创建一个脚本文件,比如 generate-image.py。这个脚本的具体内容取决于你使用的图片生成服务(比如某个图片生成 API),大致的逻辑是接收提示词和参考图片路径作为输入参数,调用 API 生成图片,然后把生成的图片保存到本地。
脚本的具体实现因人而异,这里给出一个框架示意:
#!/usr/bin/env python3
"""
品牌物料图片生成脚本
用法:python generate-image.py --prompt "图片描述" --reference "logo路径" --output "输出路径"
"""
import argparse
import requests
def generate_image(prompt, reference_path, output_path):
# 这里放你的图片生成 API 调用逻辑
# 比如调用 Stable Diffusion、DALL-E、Midjourney API 等
pass
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--prompt", required=True, help="图片生成提示词")
parser.add_argument("--reference", help="参考图片路径")
parser.add_argument("--output", default="output.png", help="输出文件路径")
args = parser.parse_args()
generate_image(args.prompt, args.reference, args.output)
然后在 SKILL.md 中添加脚本调用的指引:
## 图片生成(可选)
如果用户要求直接生成图片而不仅仅是创意方案:
1. 先完成常规的创意方案输出
2. 将创意方案中的视觉描述转化为适合图片生成模型的英文提示词
3. 使用以下命令调用生成脚本:
```bash
python .claude/skills/brand-creator/scripts/generate-image.py \
--prompt "生成的英文提示词" \
--reference ".claude/skills/brand-creator/assets/logo.png" \
--output "输出文件名.png"
- 脚本会输出生成的图片文件
### 6.3 添加 assets:提供品牌资源
最后一步,把品牌的 Logo 等静态资源放到 assets 文件夹中:
```bash
mkdir -p .claude/skills/brand-creator/assets
# 把你的 Logo 文件复制到这个目录
cp your-logo.png .claude/skills/brand-creator/assets/logo.png
同时在 SKILL.md 中说明资源位置:
## 品牌资源
- 品牌 Logo 文件位于 assets/logo.png,生成图片时需将此文件作为参考传入生成脚本
至此,一个完整形态的 Skill 就搭建完成了。它具备了创意方案输出、按物料类型精准匹配规格、直接调用脚本生成图片、自动带上品牌 Logo 这四层能力。整个结构清晰、分工明确,每一部分都只在需要时才被加载和调用。
七、偷个懒:用 Skill Creator 自动生成 Skill
看到这里,有些朋友可能会想:"这也太麻烦了吧,又是写 Markdown 又是建文件夹的。" 别担心,Anthropic 官方其实提供了一个专门用来创建 Skill 的 Skill——没错,用 Skill 来创建 Skill。
这个工具叫做 skill-creator,它本身就是一个 Agent Skill,安装之后你可以直接用自然语言告诉它你想创建什么样的技能,它会通过一步步的引导和追问来帮你梳理需求,最终自动生成完整的 Skill 文件。
7.1 安装 skill-creator
你可以通过插件市场来安装,在 Claude Code 中执行:
/plugin install example-skills@anthropic-agent-skills
这个命令会安装包含 skill-creator 在内的官方示例技能包。或者你也可以直接从 GitHub 仓库(https://github.com/anthropics/skills)下载 skill-creator 文件夹,手动放到你的 .claude/skills/ 目录下。
7.2 使用 skill-creator 创建技能
安装完成后,打开 Claude Code,直接说你的需求。比如:
我想创建一个技能,能根据我的品牌规范自动生成各种营销物料的创意方案和设计图
也可以用斜杠命令直接调用:
/skill-creator
接下来,skill-creator 会开始引导你回答一系列问题来梳理需求,一些改良版本甚至会用选择题的方式来减少你的输入负担。整个过程只需要用大白话回答问题、做做选择,就能完成一个专业的 Skill 定义。
引导过程中 skill-creator 通常会询问的内容包括:
- 你的技能要解决什么问题
- 预期的输入和输出是什么
- 有没有特殊的规范或格式要求
- 是否需要调用外部工具或 API
- 有没有参考资料需要附带
问完所有问题后,skill-creator 会先给你展示一个方案摘要,确认没问题后就会自动生成完整的 Skill 文件结构,包括 SKILL.md、references、scr