手把手写一个自定义 Agent Skill
我先不说技术,说个我天天看的场景——外贸团队里,一个新来的跟单员,要接手 200 个 WhatsApp 客户,回复询盘、跟进报价、催尾款。没 SOP 之前,每个人回的话五花八门,丢单都不知道怎么丢的。后来我们定了一套流程…
一个 Agent Skill,就是给 AI 配一本标准操作手册
我先不说技术,说个我天天看的场景——外贸团队里,一个新来的跟单员,要接手 200 个 WhatsApp 客户,回复询盘、跟进报价、催尾款。没 SOP 之前,每个人回的话五花八门,丢单都不知道怎么丢的。后来我们定了一套流程,把话术、时机、禁忌全写下来,新人照着做,成交率肉眼可见地稳住了。
AI Agent 也是一样。它聪明,但没边界,你得给它一本“操作手册”,告诉它:做什么、不做什么、先干嘛后干嘛。这本手册,就是一个 Agent Skill,存放于一个叫 SKILL.md 的文件。我们自用的 Sellenca 销售副驾驶已经跑着十几个这样的技能,其中一个专门处理“客户说太贵了”,严格按照我们自己的销售方法论回话,而不是让 AI 放飞自我去乱打折。
如果你想让 AI 真正帮你干活,而不是光陪聊,第一个最重要的动作就是——学会写自己的 Skill。
拆开 SKILL.md 看看,其实就是两样东西:一张“标签”,一份“步骤清单”
任何一个 Agent Skill,本质就是一个 markdown 文件,分两大部分:前头是标签(frontmatter),后头是指令。
- 标签里有两个字段:name(技能名字)和 description(描述,决定了什么时候该触发这个技能)。
- 指令部分,就是一行行的步骤、约束、输出格式,必须写得像 Checklist,而不是散文。
举个最典型的翻车案例:很多人给 description 写的是「帮助写邮件」。结果 AI 一看到“邮件”俩字就触发,客户问一句“收到邮件没”,它也跑出来写邮件,这就乱套了。改法很简单,把触发条件写清楚:
| description 写法 | 后果 |
|---|---|
| 帮助写邮件 | 任何提到邮件的场景都可能触发,误伤率高 |
| 当用户需要给已经报过价的客户写一封跟进邮件,且上一次联系是三天前未回复时使用 | 只在特定业务节点触发,精准不乱跑 |
你看,这不是技术活,是业务活。你得清楚“什么时候,AI 该出手”。这一步,除了你,没人能替你定义。
五步走,写出你的第一个自定义技能
我们自己总结了一套土方法,叫“五步开发流程”,你可以直接套用。仓库里的一个技能 five-step-dev 就是干这个的:引导一个不会写技能的人,按这五步把技能做出来。步数不多,但每一步都有实实在在的动作,不是空谈。
第 1 步:建一个技能目录,里面放 SKILL.md
随便起个目录名,比如 product-consult-reply(产品咨询回复)。在里面建一个 SKILL.md 文件,这就是你技能的全部。
第 2 步:写好 frontmatter——尤其是 description
用这段格式,照着改:
- name: 产品咨询回复
- description: 当用户在 WhatsApp 上第一次问一款产品的价格、MOQ 或规格,且没有历史报价记录时,使用此技能生成回复。
这里是最容易出错的地方,记住两条铁律:
- description 必须写清“什么时候用”,而不是“干什么的”;
- 可以用排除法:“不要在没有问价格的时候使用”。
第 3 步:写指令正文,用步骤化、约束化的语言
不要写:“你需要友好地回复客户,并介绍产品。” 这种 AI 会给你编出花来。要写成:
- 首先确认客户问的是哪款产品,从产品库中查找编号;
- 如果编号存在,给出 FOB 报价、MOQ、交货期;
- 如果产品不存在,回复一句标准话术,引导客户发图片确认;
- 约束:绝不随意报没有的价格,绝不承诺库存;
- 输出格式:英文,不超过 80 个词,结尾带一个开放性问题。
这就有了操作感,不是玄学。
第 4 步:如果技能需要额外的参照物,打包进去
比如你有标准的报价模板、话术清单、图片路径,全部丢进技能目录里。指令里可以直接引用文件名:“参照 price-list-2025.md 中的报价。” 这样技能拿到的信息就是完整的。
第 5 步:测试它,并且配 evals
找一个典型询盘,输入给你的 AI Agent,看它回的有没有毛病。最好准备 3-5 个 case:一个是标准问价、一个是含糊问价、一个是恶意压价(测试约束是否生效)。每改一次技能,都重跑这些 case,保证不退化。这个我们就叫 evals——不做 evals,技能用着用着就偷偷变味了。
如果你懒得从零搭建,可以直接到 365Skill · Agent 技能仓库 里翻我们公开的那些技能,每个都带上了 evals 示例,拿去改改就能用。
实战案例:写一个“五步走复盘”的技能
除了 five-step-dev,我们还做了一个 five-step-retro,用来每周复盘运营动作。它的 instruction 很简单,就几段话,逻辑是:按五个维度(投放、内容、询盘转化、复购、异常事件)依次提问,收拢成一条条得失总结,最后生成一张 action items。没有技术含量,纯业务框架。但是挂上 Agent 后,复盘会议直接从两小时缩成 20 分钟——因为 AI 提前把该问的问了,答案都结构化地摆在那儿。
这个技能的前端 description 是:“当用户试图对过去一周的销售运营效果进行复盘时使用。如果用户没有提‘复盘’或‘周报’,不要触发。” 就这一句话,避免了 AI 在闲聊时乱入。
你的业务里肯定也有类似的固定动作:老客户生日维护、大货出货前验货清单、达人建联跟进……这些全都可以变成一个个 Skill,反复跑,省心省力。
三个常见坑,踩过的人才知道疼
除了前面说的 description 太泛,还有两个容易忽略的:
- 指令写成散文:没有编号步骤、没有约束、没有输出格式。AI 得到的是自由度,不是能力。
- 没有验证机制:技能上线后,业务变了(比如报价改了、产品下架了),但没有人更新指令,也没跑 evals。等发现时,可能已经给客户发了一周的错误信息。建议每月至少跑一次 evals。
---
常见问题
为什么我写好了 SKILL.md,AI 却根本没触发这个技能?
大概率是 description 写得不对。检查是否写清了触发条件,而不是功能说明。应写“当用户要做 X 时使用”,而不是“本技能用于 X”。同时,如果 description 与其他技能过于重叠,AI 也容易选错。
一个技能能不能调用其他工具或 API?
可以,但这不是由 SKILL.md 单独决定的,要看你的 Agent 平台有没有配置相应工具。SKILL.md 只负责给指令,具体调接口是 Agent 框架的事。你只要在指令里写“调用 XX 工具获取结果”,Agent 能听懂就行。
技能上线后,团队其他人改了我的指令,效果变差了怎么办?
所以一定要保留 evals。在效果变差时,第一件事就是回归原有的测试用例集。如果用例没反映新业务,先补用例,再改指令。不改测试就改指令,等于蒙眼调参。
---
在你打算自己动手写技能之前,不如先看看成熟的 AI 销售副驾驶是什么样子。我们在 Sellenca · WhatsApp AI 销售副驾驶 里已经预置了大量经过实战校验的技能,从报价、催单到异议处理,都是我们自己的外贸团队真金白银试出来的。你可以注册一个 7 天免费试用(无需信用卡),看看一个跑通的技能到底能帮业务省多少力气。如果你更希望为你的业务定制一组专属技能,直接约我的免费咨询聊聊。