给 AI 装“技能”:Agent Skills 完全指南

给 AI 装“技能”:Agent Skills 完全指南svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     

你的 AI 助手终于可以不只是“会说话”,而是真正“会做事”了

想象一下这个场景:

:帮我处理一下这张发票 PDF,把里面的金额、日期、发票号提取出来。

通用 AI:我无法直接读取 PDF 文件,但你可以把内容粘贴给我……

装了“发票处理技能”的 AI:(自动识别任务 → 调用专用脚本 → 输出结果)

字段 值 发票号码 INV-2024-0123 价税合计 12,800.00 销售方 XX科技有限公司

这就是 Agent Skills 的魅力——它让你的 AI 从“只能聊天”进化到“能动手干活”。

2025年12月18日,Anthropic 将 Agent Skills 正式发布为开放标准。一套标准化的文件夹规范,让 agent 像装 App 一样加载专业技能。标准一出,行业跟进速度惊人——Microsoft 在 VS Code 和 GitHub 里直接集成,OpenAI 在 ChatGPT 和 Codex CLI 里采用了几乎一模一样的架构,Cursor、Goose 等编码工具也纷纷跟进。截至 2026 年初,Atlassian、Figma、Canva、Stripe、Notion、Zapier 等厂商都已经为自家平台构建了相应的 skills。


一句话定义:Agent Skills 是一套标准化格式,用于将 AI 指令、脚本和资源打包成可复用、可发现的模块。

如果你用过 AI 编程助手,可能遇到过这样的问题:今天让 AI 帮你生成了一份符合公司规范的 PPT,明天换了一个对话,AI 就“忘”了这些规范,你得从头再说一遍。Skills 解决的就是这个问题——它把“这件事该怎么做”的知识固化下来,让 AI 每次都能按同一套标准执行。

它和 MCP 是什么关系?

很多第一次接触 Skills 的人会问:“不是已经有 MCP 了吗?” 这两个概念确实容易混淆,但定位完全不同:

MCP 解决的是「模型能用什么」;Skills 解决的是「模型该怎么用」。

打个比方:

  • MCP 是“工具箱”——它给 AI 接上了手和眼,让 AI 能够连接数据库、调用 API、读写文件
  • Skills 是“操作手册”——它告诉 AI,拿到这个工具后应该按照什么流程、什么标准去用

两者是互补关系,不是替代关系。一个强大的 Agent = 通用模型 + MCP 连接外部工具 + Skills 提供操作流程。

核心设计:渐进式披露

Skills 最精妙的设计是渐进式披露(Progressive Disclosure)——它把信息分成三层,按需加载:

层级 内容 何时加载 大小限制 第一层:元数据 name + description 始终在上下文中 ~100 词 第二层:SKILL.md 正文 详细指令、流程说明 技能被触发时 < 500 行(推荐) 第三层:附加资源 脚本、参考文档、模板 按需加载 无限制

这意味着:即使你有 100 个 skills 安装在系统中,AI 启动时也只加载它们的元数据(每个 skill 仅 30-50 个 tokens),只有当某个 skill 被判定为“相关”时,才会加载它的完整内容。这种设计既保证了能力丰富,又避免了上下文窗口被撑爆。


每个 Skill 就是一个文件夹,包含一个必需的 SKILL.md 文件和若干可选的资源文件:

my-invoice-skill/ # 技能根目录 ├── SKILL.md # 【必需】核心定义文件 ├── scripts/ # 【可选】可执行脚本 │ └── extract_invoice.py ├── references/ # 【可选】参考文档 │ └── field_mapping.md └── assets/ # 【可选】静态资源 └── output_template.xlsx 
SKILL.md 文件结构

SKILL.md 采用 YAML Frontmatter + Markdown 正文 的双层结构:

--- name: invoice-extractor # 必需:技能唯一标识(小写字母+连字符,最长64字符) description: 从 PDF 发票中提取关键字段。当用户需要“解析发票”或“提取账单信息”时使用。 license: MIT # 可选:许可证声明 compatibility: 需要 python3 及 PyPDF2 # 可选:运行环境要求 allowed-tools: Bash(python:*) # 可选:授权使用的工具 --- 

关于 licenselicense: MIT 表示该技能以 MIT 开源许可证发布,任何人都可以免费使用、修改和分发。如果只是个人或公司内部使用,这行可以删除或改为 Proprietary

Frontmatter 之后是 Markdown 格式的技能说明,包括角色定位、核心流程、输出格式、异常处理和示例对话。接下来我们就看一个完整的示例。


以下是一个可直接运行的完整 Skill,它封装了一个 Python 脚本,用于从 PDF 中提取发票信息。

1. SKILL.md
--- name: invoice-extractor description: 从 PDF 发票中提取关键字段(发票号、日期、金额、销售方等)。当用户需要“解析发票”、“提取发票信息”或“识别 PDF 中的账单数据”时使用。 compatibility: 需要 python3 及依赖库 PyPDF2、pdfplumber allowed-tools: Bash(python:*) --- # 发票信息提取技能 角色 你是一名专门处理财务文档的数据提取助手。你的任务是调用指定的 Python 脚本,从用户提供的发票 PDF 中提取结构化数据。 核心流程 1. 确认文件路径:获取用户要处理的 PDF 文件路径。 2. 执行提取脚本:运行以下命令调用核心逻辑。 bash python scripts/extract_invoice.py --pdf 
     
    
       <用户提供的文件路径>
         --output invoice_result.json 
       
  1. 读取结果:命令执行成功后,读取生成的 invoice_result.json 文件。
  2. 呈现给用户:将 JSON 内容转换为易于阅读的 Markdown 表格。
  • 提取状态:明确告知用户解析是否成功。
  • 数据表格:使用 Markdown 表格展示提取到的字段。
示例输出表格
字段 值 发票号码 INV-2024-0123 开票日期 2024-03-15 价税合计 12,800.00 销售方名称 XX科技有限公司 购买方名称 YY贸易有限公司
  • 若脚本执行失败,请将错误信息原文告知用户,并建议检查 PDF 是否清晰可读或是否为扫描件。
  • 若 JSON 中 success 字段为 false,直接向用户显示 error 字段的内容。

用户:帮我提取 D:/发票/3月办公费.pdf 里的发票信息。

助手
好的,我现在使用发票提取技能处理该文件。
(内部执行:python scripts/extract_invoice.py --pdf "D:/发票/3月办公费.pdf" --output invoice_result.json




处理完成,提取结果如下:

字段 值 发票号码 开票日期 2024-03-10 价税合计 3,580.00 销售方名称 晨光文具股份有限公司 购买方名称 上海XX信息技术有限公司

2. scripts/extract_invoice.py

脚本需要遵循标准化接口结构化输出的规范,这样才能被 AI 可靠地调用:

python #!/usr/bin/env python3

scripts/extract_invoice.py

import argparse import json import sys import os

def main():

parser = argparse.ArgumentParser(description="提取 PDF 发票信息") parser.add_argument("--pdf", required=True, help="发票 PDF 文件路径") parser.add_argument("--output", default="invoice_result.json", help="输出 JSON 文件路径") args = parser.parse_args() # 检查输入文件是否存在 if not os.path.exists(args.pdf): result = {"success": False, "error": f"文件不存在:{args.pdf}"} with open(args.output, "w", encoding="utf-8") as f: json.dump(result, f, ensure_ascii=False, indent=2) print(json.dumps(result, ensure_ascii=False)) sys.exit(1) # ========== 在这里调用你的实际提取逻辑 ========== # 以下为模拟数据,请替换为真实的 PDF 解析代码 try: extracted_data = { "发票号码": "", "开票日期": "2024-03-10", "价税合计": "3,580.00", "销售方名称": "晨光文具股份有限公司", "购买方名称": "上海XX信息技术有限公司" } result = {"success": True, "data": extracted_data} except Exception as e: result = {"success": False, "error": f"解析失败:{str(e)}"} # ============================================= # 输出结果到 JSON 文件 with open(args.output, "w", encoding="utf-8") as f: json.dump(result, f, ensure_ascii=False, indent=2) # 同时向 stdout 打印结果,方便 AI 直接读取 print(json.dumps(result, ensure_ascii=False)) 

if name == “main”:

main() 

关键规范:脚本输出必须是 JSON 格式,且必须包含 success 布尔字段。这样 AI 才能正确判断执行结果。日志输出请使用 sys.stderr,避免污染 stdout。


部署位置

Skills 可以放在两个位置:

位置 路径示例 作用范围 项目级 项目根目录/.claude/skills/ 仅当前项目可用,可随代码提交 用户级 ~/.claude/skills/ 所有项目均可用
.claude/skills/ ├── invoice-extractor/ │ ├── SKILL.md │ └── scripts/ │ └── extract_invoice.py └── another-skill/ └── SKILL.md 
调用方式

Skills 支持两种调用方式:

  1. 自动触发:AI 根据 description 字段自动判断是否使用该技能。当用户说“帮我提取发票”时,AI 会自动加载 invoice-extractor 技能。
  2. 手动调用:部分工具支持直接输入 / 加技能名来调用(如 /invoice-extractor)。
常用工具

工具 说明 skill-creator Anthropic 官方提供的元 Skill,能引导你一步步生成完整的 Skill 文件 OpenSkills 开源工具,可将 Skills 系统引入 Cursor、Windsurf 等其他 AI 编码工具

结合大量开发者的实践经验,以下是几个关键建议:

✅ 应该做的
  1. description 写清楚“何时用”:这是 AI 判断是否触发 skill 的唯一依据,务必包含触发场景关键词。
  2. 脚本输出必须是 JSON:AI 只能可靠地解析结构化数据。
  3. 示例对话写一个:在 SKILL.md 中加入 示例 段落,能显著提升 AI 执行的准确度。
  4. 大文档放到 references/:SKILL.md 正文推荐不超过 500 行,详细的参考文档放到 references 目录,在需要时用链接引用。
  5. 解释“为什么”而不只是“做什么”:现代 AI 理解原理后能更好地应对边缘情况。
❌ 需要避免的
  1. 指令塞太多:一次性把全部细节都写进 SKILL.md 正文,会导致 AI “晕掉”——信息过载反而降低执行质量。
  2. 忽略安全校验:脚本中避免直接拼接用户输入执行 rm -rf 等危险命令,建议做路径白名单校验。
  3. 日志污染 stdoutprint(“正在处理…”) 这类日志会混入 JSON 输出,导致 AI 解析失败。

Agent Skills 让 AI 从“泛泛而谈”走向“专业做事”。它把领域知识、操作流程和执行脚本打包成一个可复用的模块,让 AI 每次都能按同一套高标准完成任务。

MCP 给 AI 装上了手脚,Skills 教会了 AI 怎么走路。

一个精心编写的 Skill,就像一份传承下来的“老师傅秘籍”——新人(AI)拿到它,就能立刻按最高标准干活。

现在,去创建你的第一个 Skill 吧!你会发现,让 AI 真正“会做事”,其实只需要一个文件夹和一个 Markdown 文件。

小讯
上一篇 2026-04-19 11:33
下一篇 2026-04-19 11:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/266174.html