📌 项目地址agentskills/agentskills | ⭐ 19,604 颗星 | 🔧 Python | 📜 Apache-2.0

问题的本质:提示词不是一段文字,是一个模块

我同时用 Claude、Copilot、GPT-4o 三个工具。每个工具需要类似的提示词来执行周报生成、数据库查询、审批流程。同一套逻辑,我要维护三份,格式不同,上下文长度限制不同。一旦改了逻辑,必须手动同步,总会漏一个。

这不是工具的问题,是提示词的管理方式出了问题。一段文字扔进上下文,无法复用、无法测试、无法版本控制。

Agent Skills 是什么:一个文件夹加一份说明书

README 里明确说,Agent Skills 是一种轻量、开放格式,用于扩展 AI 代理的能力。一个 skill 就是一个文件夹,必须包含一个 SKILL.md 文件。这个文件包含元数据(最少需要 namedescription)以及指令,告诉代理如何执行特定任务。还可以捆绑脚本、参考资料、模板等。

my-skill/
├── SKILL.md          # Required: metadata + instructions
├── scripts/          # Optional: executable code
├── references/       # Optional: documentation
├── assets/           # Optional: templates, resources
└── ...               # Any additional files or directories

它不是 SDK,不是库,不是 API。是一套文件夹命名约定和内容规范。产出物就是一个能放在 Git 仓库里的目录。

渐进式加载:只加载你需要的技能描述

很多人把整本操作手册塞进系统提示词,对话一开始就消耗大量 token。Agent Skills 采用 progressive disclosure(渐进式展开),分三阶段:

  1. Discovery:启动时,代理只读取每个技能的 namedescription。这两个字段通常加起来不到 100 个 token。挂 100 个技能,上下文几乎不受影响。
  2. Activation:当任务匹配某个技能描述时,代理读取完整的 SKILL.md 指令到上下文中。
  3. Execution:代理按照指令执行,可选地执行捆绑的代码或加载引用的文件。

只有当前用到的技能才进入上下文。挂 100 个技能,只有 1 个激活占用 token。

写一个管用的 SKILL.md 的两个常见错误

我看了官方示例仓库(https://github.com/anthropics/skills)和社区讨论,发现两个高频问题

错误1:元数据写得太宽

有人把 description 写成“帮助代理进行代码审查”。代理可能只检查缩进和命名风格。正确写法是“审查 Python PR 中的数据泄露风险、未捕获异常、SQL 注入点”。元数据是激活开关,越精确,代理越能在任务匹配阶段正确激活。

错误2:指令没有验收条件

一个“数据清洗”的技能,只写“清洗数据”。代理可能只去重和填充空值。正确写法应该给出具体步骤和输出格式要求。比如:

  1. 检查缺失值,超过 50% 空值的列直接丢弃
  2. 处理重复行,保留第一条
  3. 标准化日期格式,统一为 YYYY-MM-DD

每一步给出明确的输出要求,代理执行完后能判断是否做对。

还有一个容易被忽略的点:依赖声明。如果 scripts/ 里有一个脚本需要 pandas 2.0,必须在 SKILL.md 里注明,或者把 requirements.txt 放进 references/ 目录。否则代理执行到一半卡住。

跨产品复用:写一次,多个工具可用

这个格式由 Anthropic 开发并开源。官方维护了一个 Client Showcase 页面,列出所有兼容的产品和工具。你不用为 Claude 写一套配置,再为 Copilot 写另一套。标准化文件夹让跨产品复用成立。

目前生态中有不少知名 agent 客户端已经支持。

19604 个星说明了什么

不是代码酷炫,是这个格式把“提示词”从一段文字变成了可管理、可追溯、可复用的组件。标准化文件夹结构 + 渐进式加载 + Git 版本控制,击中了两个真实痛点:跨工具同步成本高、上下文浪费。

唯一的问题:写好一个技能,比写好一段提示词难。你得想清楚流程,写清楚边界,测试清楚结果。但这本来就是工程工作,不是提示工程。如果你现在就想上手:

  • 规范文档,几分钟看完格式细节
  • 示例仓库 挑一个贴近自己工作的技能克隆下来改
  • 有问题去 Discord 问,社区活跃
这篇文章对你有帮助吗?

发表回复