如果每次都要提醒 Agent:“先看现有分类,查一手资料,正文写完还要构建检查”,问题未必出在你不会写 Prompt。更可能是这套重复流程应该有自己的说明书。
在支持 Agent Skills 的运行时里,Skill 是一组可复用的任务说明和配套资源。例如,主文件 SKILL.md 可以写何时使用这项流程、要先读取什么、按什么顺序操作、如何判断完成;旁边还可以放参考文档、模板或脚本。Agent 看到技能的名称和用途后,在适合的任务中加载它。
它像一份工作手册,不是游戏里的技能点。
Skill 能改变流程,不会变出新权限
Skill 可以提醒 Agent 使用哪个工具、怎样处理错误、输出要包含哪些字段。它本身不一定执行代码,也不会自动获得邮件、文件系统或 GitHub 权限。真正的能力来自运行时实际提供的工具、环境与授权。
这个区别很实用:若手册写着“发送通知”,但当前运行环境只有草拟工具,正确结果应是留下草稿或报告受限;不能因为说明书写了动作,就假装动作已经发生。
把一件重复工作写成 Skill
假设你常让 Agent 准备一篇技术博客文章,可以先写一个很小的目录:
1 | publish-technical-post/ |
SKILL.md 不用写成小说,关键是让流程可执行、可核对:
1 | --- |
这只是示意结构。Skill 的字段与发现机制要按实际平台文档配置。OpenAI 当前 Skills 指南采用目录加 SKILL.md manifest 的形式,并允许配套文件;其他 Agent 框架可能有自己的加载约定。
写得好不好,看失败时它会不会误导
一份有用的 Skill 至少要回答四个问题:
- 什么时候用? 描述触发情形,避免每个任务都加载一大篇说明。
- 需要什么输入? 缺少主题、目标读者或授权时,应该补充信息还是停止?
- 怎么判断做完? “写完了”太模糊;构建通过、页面已查看、线上可访问是不同状态。
- 失败怎么办? 是重试同一任务、保留现场、请求确认,还是停止?
最容易犯的错是把一串口号叫作 Skill:“准确、专业、认真、有创造力”。这些词缺少动作和证据。把“认真”改成“每个外部技术事实附官方来源;遇到版本差异标出适用范围”,Agent 才知道要做什么。
Skill 也要像代码一样维护。平台能力会变,工具名称会变,过时的工作手册会比没有手册更危险。每次流程失败,都可以检查是模型没遵守、指令写得含糊、还是必要工具根本没提供,再修改对应一层。
如果 Skill 是操作手册,下一个问题就是:手册里提到的文件、工单和外部服务,要怎样用一致的方式接进 Agent?下一篇讲 MCP。
延伸阅读: