📌 项目地址:agentskills/agentskills | ⭐ 19,604 颗星 | 🔧 Python | 📜 Apache-2.0
问题的本质:提示词不是一段文字,是一个模块
我同时用 Claude、Copilot、GPT-4o 三个工具。每个工具需要类似的提示词来执行周报生成、数据库查询、审批流程。同一套逻辑,我要维护三份,格式不同,上下文长度限制不同。一旦改了逻辑,必须手动同步,总会漏一个。
这不是工具的问题,是提示词的管理方式出了问题。一段文字扔进上下文,无法复用、无法测试、无法版本控制。
Agent Skills 是什么:一个文件夹加一份说明书
README 里明确说,Agent Skills 是一种轻量、开放格式,用于扩展 AI 代理的能力。一个 skill 就是一个文件夹,必须包含一个 SKILL.md 文件。这个文件包含元数据(最少需要 name 和 description)以及指令,告诉代理如何执行特定任务。还可以捆绑脚本、参考资料、模板等。
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(渐进式展开),分三阶段:
- Discovery:启动时,代理只读取每个技能的
name和description。这两个字段通常加起来不到 100 个 token。挂 100 个技能,上下文几乎不受影响。 - Activation:当任务匹配某个技能描述时,代理读取完整的
SKILL.md指令到上下文中。 - Execution:代理按照指令执行,可选地执行捆绑的代码或加载引用的文件。
只有当前用到的技能才进入上下文。挂 100 个技能,只有 1 个激活占用 token。
写一个管用的 SKILL.md 的两个常见错误
我看了官方示例仓库(https://github.com/anthropics/skills)和社区讨论,发现两个高频问题。
错误1:元数据写得太宽
有人把 description 写成“帮助代理进行代码审查”。代理可能只检查缩进和命名风格。正确写法是“审查 Python PR 中的数据泄露风险、未捕获异常、SQL 注入点”。元数据是激活开关,越精确,代理越能在任务匹配阶段正确激活。
错误2:指令没有验收条件
一个“数据清洗”的技能,只写“清洗数据”。代理可能只去重和填充空值。正确写法应该给出具体步骤和输出格式要求。比如:
- 检查缺失值,超过 50% 空值的列直接丢弃
- 处理重复行,保留第一条
- 标准化日期格式,统一为 YYYY-MM-DD
每一步给出明确的输出要求,代理执行完后能判断是否做对。
还有一个容易被忽略的点:依赖声明。如果 scripts/ 里有一个脚本需要 pandas 2.0,必须在 SKILL.md 里注明,或者把 requirements.txt 放进 references/ 目录。否则代理执行到一半卡住。
跨产品复用:写一次,多个工具可用
这个格式由 Anthropic 开发并开源。官方维护了一个 Client Showcase 页面,列出所有兼容的产品和工具。你不用为 Claude 写一套配置,再为 Copilot 写另一套。标准化文件夹让跨产品复用成立。
目前生态中有不少知名 agent 客户端已经支持。
19604 个星说明了什么
不是代码酷炫,是这个格式把“提示词”从一段文字变成了可管理、可追溯、可复用的组件。标准化文件夹结构 + 渐进式加载 + Git 版本控制,击中了两个真实痛点:跨工具同步成本高、上下文浪费。
唯一的问题:写好一个技能,比写好一段提示词难。你得想清楚流程,写清楚边界,测试清楚结果。但这本来就是工程工作,不是提示工程。如果你现在就想上手: