为什么说 Prompt 不够用了?Agent Skill 才是 AI 应用的核心抽象

609 阅读12分钟

前言

随着大模型能力的持续提升,Agent 已经不再只是对话式 AI,而是逐步演进为能够直接操作真实计算环境的智能执行体。以 Claude Code 为代表的新一代 Agent,可以访问本地文件系统、执行代码、修改项目结构,甚至完成跨领域的复杂任务。这种能力的跃迁,使 Agent 开始真正参与到软件开发、数据处理、内容生产等实际工作流中。

但与此同时,一个问题也愈发明显:模型越强,并不意味着 Agent 在所有场景下都足够专业。

通用 Agent 在面对具体领域任务时,仍然需要大量上下文说明、重复指令和人工引导。不同项目、不同团队往往会各自维护一套隐性流程和经验做法,这些知识既难以复用,也难以规模化共享。结果就是:

  • Agent 能力强,但每次都要重新教
  • Prompt 越写越长,上下文成本越来越高
  • 专业经验沉淀在个人,而不是系统中

为了解决这一问题,我们需要一种新的方式,将人的流程经验、工具使用方式和领域知识,以结构化、可组合的形式交给 Agent。

Agent Skills的诞生

2025 年 10 月,Anthropic 推出了 Agent Skills 能力,在 Claude 网页端、API 以及 Claude Code等产品都可以使用。

Agent Skills 主要解决的问题是把特定的工作流、特定领域的能力打包成可复用的技能包, 在Agent 上可以丰富出更多的应用生态。那些日常工作中琐碎但重复的任务,借助 Skill 的能力可以被高度自动化。

一个非常贴近真实工程场景的例子是 Code Review,在团队协作中,Code Review 本身就是一项耗时且高度依赖经验的流程。通用 Agent 并不了解团队内部的代码规范、设计原则和优化偏好,也无法自然地复现真实开发者的审查思路。

通过将代码规范、Review 规则、常见问题模式以及优化策略沉淀为专门的 Code Review Skill,Agent 就可以按照真实开发流程执行 CR:

  • 识别结构性问题
  • 指出潜在风险
  • 给出符合团队规范的优化建议

刚开始 Agent Skills 这套机制只支持 Claude,后面像 Cursor、codex 都陆续开始支持该能力,因此在 2025 年 12 月,Anthropic 正式将 Agent Skills 发布为开放标准,支持跨平台跨产品复用。

Agent Skills结构剖析

Agent Skills 本质上就是一个文件夹,文件夹的结构如下:

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

下面会详细介绍每个文件的作用,这里以 prompt-engineering-patterns 这个开源的 skill 为例:

  • SKILL.md 文件

    这个文件是每个 skill 必须要有的文件,里面包含这个 skill 的元数据和指令。

    // 元数据
    ---
    name: prompt-engineering-patterns
    description: Master advanced prompt engineering techniques to maximize LLM performance, reliability, and controllability in production. Use when optimizing prompts, improving LLM outputs, or designing production prompt templates.
    ---
    
    // 指令
    # Prompt Engineering Patterns
    
    Master advanced prompt engineering techniques to maximize LLM performance, reliability, and controllability.
    
    ## When to Use This Skill
    
    - Designing complex prompts for production LLM applications
    - Optimizing prompt performance and consistency
    - Implementing structured reasoning patterns (chain-of-thought, tree-of-thought)
    - Building few-shot learning systems with dynamic example selection
    - Creating reusable prompt templates with variable interpolation
    - Debugging and refining prompts that produce inconsistent outputs
    - Implementing system prompts for specialized AI assistants
    
    ## Core Capabilities
    ...
    

    元数据:元数据就是文件中最开始的信息,必须包含 name 和 description 两个字段,用于 Agent 识别,其余字段都是可选的,可参考官网

    指令:指令指的是文件中的正文信息,包含技能使用的详细说明。文档内容格式没有限制,只需要能够让 Agent 理解并有效完完成任务即可,官方推荐指令中应该要包含以下内容:

    • Step-by-step instructions(执行步骤)
    • Examples of inputs and outputs(输入输出示例)
    • Common edge cases(边界情况)
  • scripts/

    scripts 是可选的,目录下包含的是 Agent 可执行的代码,这些代码会在 skill 的执行过程中被调用,就当前这个例子来说,它提供了一个 prompt 自动优化的脚本 optimize-prompt.py ,当用户需要优化 prompt 时会执行这个脚本,这里要注意的是执行脚本不会占用模型上下文

    ## Resources
    
    - **scripts/optimize-prompt.py**: Automated prompt optimization tool
    
  • references/

    references 是可选的,目录下包含的是一些参考资料,Agent 会根据场景需求按需加载,加载reference 时会占用模型上下文,合理的利用 references 能够有效的减少上下文。

    就当前的例子来说,它提供了chain-of-thought.mdfew-shot-learning.md 等提示词优化方案的参考资料,并在 SKILL.md 文件中进行引用说明。

    ## Resources
    
    - **references/few-shot-learning.md**: Deep dive on example selection and construction
    - **references/chain-of-thought.md**: Advanced reasoning elicitation techniques
    - **references/prompt-optimization.md**: Systematic refinement workflows
    - **references/prompt-templates.md**: Reusable template patterns
    - **references/system-prompts.md**: System-level prompt design
    
  • assets/

    assets 是可选的,目录下包含的是一些静态文件,例如图片、html文件、css文件等,Agent 会根据场景需求按需加载,例如示例中的 prompt-template-library.md 文件,作为创建 prompt 的模板文件,加载 assets 会占用模型上下文。

    ## Resources
    
    - assets/prompt-template-library.md: Battle-tested prompt templates
    - assets/few-shot-examples.json: Curated example datasets
    

Agent Skill执行原理

下面是一个完整的流程图。

image.png

skill 采用三级加载系统来高效管理上下文,具体如下:

  • 用户发送 query 后, claude code(cursor)会将所有 skills 的元信息带给大模型,由大模型判断需要使用哪个 skill。
  • 大模型确认使用某一个 skill 后,claude code 才会将 skill.md 的完整信息带给大模型。
  • 大模型根据场景需求按需加载 reference 、assets 和 scripts 资源。

安装Agent Skill

Agent Skill 的安装方式有很多种,这里以 Claude Code 进行介绍。

  • 简单粗暴,直接从 github 上下载 skill 文件。

    image.png

    这里展示的是 Anthropics 官方提供的 skills(github.com/anthropics/…) 。

  • 使用 skill 命令行工具安装

    vercel 近期发布了一个 skill 安装工具 skills,支持一键下载 github 上的开源 skill

    image.png

    image.png

    同时下载的 skill 支持多平台,例如 Claude Code、Cursor、GitHub Copilot 等:

    image.png

  • 官方安装方案

    以 Claude Code 为例,在 Claude Code 中提供了一个新的概念——plugin。

    插件(Plugin)是 Claude Code 中最高级别的扩展机制,用于将command、agent、Skills、hooks、MCP、LSP 等能力打包、版本化、共享和分发

    在 Claude Code 中可以通过 /plugin 命令来安装 plugin,以 Anthropics 官方的 skills 为例,它本身是一个 plugin:

    image.png

    可以先通过 /plugin marketplace add anthropics/skills 这行命令先添加插件市场,然后通过下面两种方案从插件中安装对应的 skills。

    image.png

    现在社区已经提供了可以查看 github 上开源的 skill 的网站—— skillsmp.com ,目前已经集成了 80,948+ 个 skill。

Skill Creator

现在我们已经了解了什么是 agent skill 及其原理,但对于不少开发者来说,首次开发一个标准的 skill 也是有一定难度的,当然现在社区已经有很多非常优秀的开源 skill 可以学习。

为了降低开发 skill 的成本,官方专门提供了一个用来创建标准 skill 的 skill,文档中详细介绍创建 skill 的准则以及步骤,大模型会根据 SKILL.md 中的要求一步步引导开发者并创建 skill。

image.png

安装 skill-creator

npx skills add https://github.com/anthropics/skills --skill skill-creator

使用 skills 命令行工具在全局/项目中安装 skill,安装完之后可以在 .claude/ 目录下进行查看。

创建 skill

下面我会使用 Claude Code 实现一个 code review skill 来学习整个创建过程。

  • 输入指令及要求

    image.png

    Claude Code 发现有一个 skill-creator 的技能可以使用,询问我是否使用。

  • 需求描述

    接下来大模型会读取 skill-creator 并按照要求来引导用户进行信息补充,我们只需要按照提示一步步进行信息补充。

    image.png

    下面是生成完的 SKILL.md,整体效果还是非常好的。

    image.png

  • 调整skill

    基于生成的 skill 进行调整,例如补充 script、references 等,例如在审查范围中只列举了需要审查的点,缺少代码示例以及背景知识介绍:

    image.png

    比如红框中光说不必要的重新渲染,但是却不告诉大模型 React 的渲染机制,不提供重渲染的优化策略和示例,最终的大模型可能就自行发挥,偏离预期。

    为了解决这一问题,我们可以为每一个审查点提供一个具体的 reference.md 文件,包含相关背景知识、错误示例和正确示例等,下面是我简化后的版本:

    ---
    name: react-code-review
    description: 全面的React代码审查工具,主要检查react的最佳实践。当用户需要审查React代码文件或代码片段时使用,提供具体的改进建议和代码示例。
    ---
    
    # React代码审查
    
    ## 概述
    
    这个skill用于对React代码进行全面的审查,主要检查react的最佳实践,审查结果包含具体的代码示例和改进建议。
    
    ## 快速开始
    
    ### 审查流程
    
    1. **获取代码** - 用户提供要审查的React代码文件路径或代码片段
    2. **多维度分析** - 按照审查检查清单进行全面分析
    3. **优化代码** - 根据修改意见优化代码
    
    ### 基本审查命令
    
    用户请求审查时通常的表述方式:
    - "帮我审查这个React组件:`src/components/Header.tsx`"
    - "请对这段React代码进行 code review"
    
    ## 审查范围
    
    完整的代码审查涵盖以下5个方面:
    
    - 条件渲染
    - Effect依赖
    - 状态更新
    - 状态初始化
    - useMemo滥用
    
    ## 使用建议
    
    1. **准备代码** - 确保提供的代码文件可以被访问
    2. **明确目标** - 如需重点审查某个方面,可以特别说明
    3. **上下文信息** - 提供项目相关的背景信息(框架版本、规范等)
    4. **反复迭代** - 根据建议进行改进,可再次审查
    
    ## 限制和注意
    
    - 审查基于代码静态分析,不能检测运行时的所有问题
    - 某些性能问题需要实际测试才能确认
    - 对于复杂的业务逻辑,建议配合单元测试
    
    ## 资源文件
    
    此skill包含以下参考资源文件:
    
    ### references/
    - **[条件渲染](references/rendering-conditional-render.md)** - 在react中使用条件渲染的最佳实践
    - **[Effect依赖](references/rerender-dependencies.md)** - 填写useEffect依赖的最佳实践
    - **[状态更新](references/rerender-functional-setstate.md)** - 在react中更新状态的最佳实践
    - **[状态初始化](references/rerender-lazy-state-init.md)** - 在react中初始化状态的最佳实践
    - **[useMemo滥用](references/rerender-simple-expression-in-memo.md)** - 滥用useMemo的场景介绍
    

    react 最佳实践的原则可以参考 vercel 开源的 skill

Skill VS 提示词

很多人写完 skill 可能会觉得和写提示词并没有什区别,skill 不就是一段很长的提示词吗?这个理解对了一半。SKILL.md 的核心确实是指令文本,但 skill 却远不止如此,下面列举了 skill 相比提示词的核心优势。

  • 可复用

    skill 写一次之后,后续 Agent 会自动加载,不需要重复的复制黏贴。

  • 可渐进加载

    Skill 的指令文本和附带的资源文件不会一次性全部发送给大模型,而是会根据需求渐进加载,而提示词不管再怎么组织,发给大模型的就是全部内容,会占用大量的上下文。

  • 面向 Agent

    Skill 的全名是 Agent Skill,即它面向的是 Agent,而非普通的 ChatBot。因为 Agent 是具备工具调用的能力。

什么时候需要封装 Skill?

在学习和引入新技术时,最常见的误区是“拿着锤子找钉子”——为了使用某个技术而强行套用场景。任何技术都只有在合适的抽象层级和边界内使用,才能最大化其价值,否则只会引入不必要的复杂度。

对 Agent Skill 也是同样的原则。Skill 的本质并不是“把能力都包一层”,而是用于补齐 Agent 自身不具备、但又高频复用的能力模块。它更像是一个能力插件,而不是业务逻辑的简单封装。

例如,将 code review 封装为一个 Skill 是合理的,因为它具备以下特征:

  • Agent 原生能力不足以稳定覆盖该任务,代码风格没有一个很严格的标准。
  • code review 是开发者每天重复要做且非常重要任务。

反过来,如果某个能力 Agent 已经可以通过 Prompt 或上下文稳定完成,那么再额外封装成 Skill,往往只会增加系统复杂度(配置成本、调用成本、维护成本),却无法带来实质性的能力增益。

总结

Agent Skills 的出现,本质上是为了解决通用 Agent 在专业领域中的能力不足问题。将人的流程经验、工具使用方式和领域知识封装为可复用、可组合的能力模块,使 Agent 能够以更低的上下文成本执行专业任务。

但 Skill 并不适合被滥用,它的核心价值在于补齐能力缺口,而不是包装已有能力。当某项任务已经可以通过上下文和指令稳定完成时,引入 Skill 往往只会增加系统复杂度,却无法带来实际收益。真正值得封装的,应当是高频、结构化、强依赖专业知识且具有长期复用价值的能力,否则 Skill 本身就会成为新的技术负担。

参考资料