Agent Skills:让 AI Agent 变身“领域专家”的秘密武器

转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/0ff91a86.html


前言

你好,我是测试蔡坨坨。

在之前的文章中,我们聊过 MCP(Model Context Protocol),它像是一条管道,为大模型连接了外部数据。但大家在实操中肯定发现了一个痛点:如果我要让 AI 遵循极其复杂的业务规范(比如财务报销、代码审计),把这些规矩全塞进 Prompt 提示词里,上下文窗口(Context Window)分分钟就会爆炸,模型反应也会变慢甚至开始“胡言乱语”。

有没有一种更优雅的方式,能让 AI 像新员工入职一样,通过查阅“岗位手册”来即插即用不同的专业技能?

Anthropic 最近正式发布的 Agent Skills 开放标准,正是为了解决这个内核痛点。

本篇,我们就来彻底拆解这个让 AI 变身“专家”的黑科技。

什么是 Agent Skills?

通俗来讲,Agent Skills 是专门为大模型准备的可复用、基于文件系统的专业能力包。

在过去,给模型下任务需要手动提供所有背景;而有了 Agent Skills,你可以将特定领域的知识(如工作流、最佳实践)打包成独立的文档夹。大模型只有在确定需要这项技能时,才会去“翻阅”对应的手册。

这套设计非常精妙,目前 VSCode、Cursor 等主流工具都已经陆续跟进支持。

核心机制:渐进式披露(Progressive Disclosure)

这是 Agent Skills 最具魅力的设计,它通过一个精密的三层加载结构来节省 Token 并提高效率:

  • 第一层:元数据层(Metadata)—— 始终加载
    模型启动时只加载技能的名称(Name)和描述(Description)。这就像一份轻量级的目录,模型通过它判断当前任务是否匹配某个技能。

    1
    2
    3
    4
    ---
    name: pdf-processing
    description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
    ---
  • 第二层:指令层(Instructions)—— 按需加载
    只有当目录匹配成功,模型才会读取 SKILL.md 中的具体操作指南(如规则、示例)。即使你装了 100 个技能,也不会在对话开始时就撑爆上下文。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # PDF Processing

    ## Quick start

    Use pdfplumber to extract text from PDFs:

    ```python
    import pdfplumber

    with pdfplumber.open("document.pdf") as pdf:
    text = pdf.pages[0].extract_text()
    ```

    For advanced form filling, see [FORMS.md](FORMS.md).
  • 第三层:资源层(Resources & Scripts)—— 深度加载
    这是最深的一层,包含具体的参考文档(Reference)和执行脚本(Script)。只有在涉及具体指令时,才会去读取具体的手册。这就相当于在按需加载的指令层基础上又做了一次按需加载。

    Reference 和 Script 的加载方式其实不太一样,Reference是被读取的,Agent 会把文件中的内容放到模型的上下文中,以供回答时参考;而 Script 是被执行的,Agent 根本不会去看代码的内容,它只关心代码的执行结果(当然前提是你要把代码的执行方法说清楚,如果不清楚,Agent 还是有可能去通过看一下代码的,确保脚本能执行下去)。

    1
    2
    3
    4
    5
    6
    pdf-skill/
    ├── SKILL.md (main instructions)
    ├── FORMS.md (form-filling guide)
    ├── REFERENCE.md (detailed API reference)
    └── scripts/
    └── fill_form.py (utility script)

“技能” vs “工具”:手与脑的区别

很多人会把 Skills 和 Tools 混为一谈,其实它们的定位非常明确:

维度 Tools(工具/MCP) Agent Skills(技能)
本质 可执行的功能(API、数据库查询) 打包的专业知识与行为模式
形象比喻 AI 的“手”,负责做事 AI 的“大脑/培训”,负责思考怎么做
优势 跨平台执行能力强 Token 经济性极佳,大幅减少上下文消耗

PS: 如果你需要 AI 去操作具体系统,选工具;如果你需要 AI 学习某种判断逻辑或领域知识,选技能。

如何手动创建一个 Agent Skill?

创建一个技能就像整理文档夹一样简单:

  1. 新建文档夹:文档夹名即技能名。
  2. 编写 SKILL.md:这是核心,必须包含 YAML 格式的元数据(名称和描述)和详细指令。
  3. 添加可选资源
    • /scripts:放入 Python 等可执行脚本。
    • /references:放入 API 文档、Schema 或规章制度。

实战示例:服务端 API 测试专家

通过 Agent Skills,你可以将复杂的后端校验逻辑从单纯的“工具调用”升华为“领域专家思考”:

  1. 技能结构(文件系统组织):

    • SKILL.md(核心逻辑/大脑):定义了完整的服务端测试工作流与判定标准。例如:“1. 首先读取 /references 中的 API 文档以构建正确的请求参数。2. 调用 /scripts 中的请求脚本执行接口调用。3. 根据响应进行判断:若返回 500 错误,则调用日志查询脚本进行分析;若返回数据缺失字段,则对比 /references 中的数据 Schema 规范进行校验。”
    • /references(资源层):包含 API 定义文档(Swagger/OpenAPI)数据库表结构(Schema) 以及 性能指标阈值(SLA),为构建请求和验证响应提供依据。
    • /scripts(执行层):包含执行实际操作的 Python 脚本,例如:发送 HTTP 请求的客户端脚本、连接服务器提取实时日志的脚本,以及查询数据库的脚本。
  2. 它是如何解决服务端测试痛点的?

    • 解决“大脑(思考)”与“手(操作)”的配合:在服务端测试中,发送一个接口请求是 Tool(手),但判断“这个返回结果是否符合业务逻辑、是否需要触发链路追踪分析”则是 Skill(脑)。Agent Skills 负责打包这些专业知识与行为模式

    • 应对“海量接口文档”导致的上下文爆炸:如果把成百上千个接口的定义全部塞进 Prompt,AI 会反应变慢。利用 “渐进式披露” 机制,AI 在启动时只知道这是一个“服务端测试技能”。只有当你提到具体的“用户登录接口”时,它才会去 /references 中精准读取该接口的定义。

    • 生成结构化、专业级的测试报告:凭借技能包中定义的逻辑与规范,AI 能够自动将测试结果组织成一份清晰的审计报告,而无需人工重新整理和归纳。

      服务端测试审计报告模板示例:

      1. 测试基本信息:接口名称、测试环境、执行时间。
      2. 断言验证结果:包括状态码、数据结构(对比/references中的Schema)、业务字段准确性、数据库一致性等校验。
      3. 性能核心指标:响应耗时、SQL效率(对比SLA)、缓存命中率分析。
      4. 异常深度分析:自动提取错误,并结合日志脚本进行初步链路追踪。
      5. 最终结论与建议:给出明确的通过/不通过判定,并提供改进建议。

进阶:如何应对大规模技能库?

虽然技能很香,但研究表明,当技能库(Skill Library)超过一定规模(如 50-100 个)时,模型的选择准确率会因“语义干扰”而大幅下降。

更优雅的方案是:层次化路由(Hierarchical Routing)

不要把所有技能平铺在一起,而是先按领域(如财务、代码、文案)进行一级分类,再在二级分类中选择具体技能,这样可以有效恢复大规模系统的准确性。

综上

通过 Agent Skills,我们不再需要构建臃肿的提示词,而是为 AI 提供了一套可无限扩展的“知识插件库”。

这种模块化设计,让 AI Agent 在保持高效的同时,具备了处理极其复杂任务的能力。

如果你也想让你的 AI 代理从“只会聊天”进阶到“领域专家”,Agent Skills 绝对是你不容错过的利器!

希望这篇文章能帮你快速上手 Agent Skills。