什么是 Skill?深入理解 AI Agent Skill 的工作原理与应用实践

一、引言

最近在使用 Cursor、Claude Code、Codex 等 AI 编程工具时,经常会看到一个概念:

Skill

例如:

  • frontend-design
  • humanizer
  • pdf
  • git-workflow
  • code-review

我们可能会产生一个疑问:

Skill 不就是一段 Prompt 吗?

如果只是 Prompt,那么为什么还要单独设计 Skill 这种机制?

实际上,两者存在明显区别。

一个普通 Prompt 通常解决的是:

"这一次,我希望 AI 怎么做。"

而 Skill 更关注:

"当 AI 遇到某一类问题时,它应该具备什么能力,以及应该按照什么规则完成任务。"

可以简单理解为:

类型 说明
Prompt 告诉 AI 一次具体任务怎么做
Skill 给 AI 增加一种可复用能力

按照团队约定的方式,把这个功能正确的实现出来:

复制代码
开发者
   │
   ▼
提出需求
   │
   ▼
AI Agent
   │
   ├── 项目规范
   ├── 业务知识
   ├── 开发经验
   ├── 工作流程
   └── 工具能力
   │
   ▼
分析任务
   │
   ▼
执行开发
   │
   ▼
验证结果

Skill 的出现,本质上是在解决一个问题:

如何把"人类开发者的经验",转化成 AI Agent 可以理解、调用和复用的能力?


二、需求背景

2.1 大模型本身并不知道你的项目规范

假设我们正在开发一个 Vue 3 项目。

项目规定:

  1. 使用 Vue 3 + TypeScript
  2. UI 使用 Element Plus
  3. 表格统一使用 vxe-table
  4. API 请求统一封装
  5. 所有页面必须支持国际化
  6. 禁止直接修改公共组件
  7. 页面组件采用 PascalCase
  8. API 文件统一放在 api 目录

如果我们每次让 AI 写代码,都告诉它:

  • 请使用 Vue3 + TypeScript
  • 不要使用 Element UI
  • 使用 Element Plus
  • 表格使用 vxe-table
  • 接口必须经过 request 封装
  • 支持国际化
  • ...

很快就会发现一个问题:

Prompt 越来越长。

而且开发者很容易忘记某些规则。

于是出现第一个问题:

如何让 AI 长期稳定地遵循一套开发规范?

2.2 单纯 System Prompt 也不是最佳方案

理论上可以把所有规则直接放进 System Prompt:

你是一个 Vue 高级开发工程师......

项目规范:

......

......

......

但是这种方案存在一个明显问题:

上下文污染。

例如我们正在开发一个普通 CRUD 页面:

User Prompt → 创建用户管理页面

实际上 AI 可能并不需要知道:

  • PDF 如何处理
  • Git 如何提交
  • 如何进行 UI 设计
  • 如何生成 PPT
  • 如何分析数据库
  • 如何做安全审计

如果全部塞进上下文:

System Prompt + 所有 Skill + 项目规则 + User Prompt

上下文会越来越大。

最终导致:

  • Token 消耗 ↑
  • 上下文噪声 ↑
  • 推理成本 ↑
  • 规则冲突 ↑

因此,Agent 需要一种更加合理的机制:

需要的时候加载,不需要的时候不要加载。

这就是 Skill 非常重要的一个设计思想。


三、Skill 到底是什么?

我们先给 Skill 一个比较工程化的定义:

Skill 是一个面向 Agent 的可复用能力模块,它通过结构化指令、知识、工作流程以及可选工具,为 Agent 提供特定领域的执行能力。

可以把它类比成 JavaScript 中的模块:

javascript 复制代码
import frontendDesign from './skills/frontend-design.js';

agent.use(frontendDesign);

Agent 就获得了一种新的能力。

因此可以建立这样的对应关系:

软件工程 AI Agent
Module Skill
Function Skill 能力
npm package Skill Package
README Skill Instructions
API Tool
Configuration Skill Config
Runtime Agent Runtime

这也是我理解 Skill 最重要的一点:

Skill 并不是简单的 Prompt,而是 Agent 能力的模块化封装。


四、Skill 的基本结构

一个典型 Skill 可以设计成:

复制代码
skills/
└── frontend-design/
    ├── SKILL.md
    ├── examples/
    │   ├── dashboard.md
    │   └── landing-page.md
    ├── templates/
    │   └── component.vue
    └── resources/
        └── design-system.md

其中最核心的是:

SKILL.md

它可以包含:

yaml 复制代码
---
name: frontend-design
description: 用于创建高质量前端 UI
---

# Frontend Design

## 适用场景

当用户要求:

- 创建页面
- 设计 UI
- 优化页面视觉效果
- 创建 Dashboard

时使用此 Skill。

## 设计原则

1. 不使用模板化布局
2. 合理使用字体
3. 保持视觉层次
4. 注意响应式设计

## 工作流程

1. 分析需求
2. 确定视觉方向
3. 设计布局
4. 编写代码
5. 检查视觉一致性

这里实际上包含了三类信息:

复制代码
Skill
│
├── Metadata
│
├── Instructions
│
└── Resources

五、Skill 的工作原理

这是理解 Skill 最重要的部分。

很多人会误以为:

用户输入直接执行 Skill

实际上,一个比较合理的 Agent Skill 架构应该是:

复制代码
                 User Prompt
                      │
                      ▼
              ┌──────────────┐
              │ Agent Runtime │
              └───────┬──────┘
                      │
                      ▼
              ┌──────────────┐
              │ Skill Router │
              └───────┬──────┘
                      │
              判断是否需要 Skill
                      │
             ┌────────┴────────┐
             ▼                 ▼
          不需要              需要
             │                 │
             │                 ▼
             │          Load Skill
             │                 │
             │                 ▼
             │          Skill Context
             │                 │
             └────────┬────────┘
                      ▼
                 LLM Reasoning
                      │
                      ▼
                    Tools
                      │
                      ▼
                   Result

核心过程可以拆成几个步骤。

5.1 第一步:用户提出任务

例如:

帮我设计一个医疗 LIS 系统的检验工作站页面。

Agent 首先分析:

  • 这是普通代码任务?
  • 还是 UI Design?
  • 还是数据分析?
  • 还是 PDF?
  • 还是 Git?

5.2 第二步:Skill Discovery

Agent 会根据 Skill 的:

  • name
  • description
  • trigger

进行匹配。

例如:

javascript 复制代码
const skills = [
  {
    name: 'frontend-design',
    description: '用于设计和实现高质量前端 UI'
  },
  {
    name: 'pdf',
    description: '用于 PDF 创建、编辑和分析'
  },
  {
    name: 'code-review',
    description: '用于代码审查和质量分析'
  }
];

用户请求:

设计一个 LIS 检验工作站页面

Agent 可以判断:

frontend-design ↑ 高相关

于是加载对应 Skill。


六、写一个简化版 Skill

下面我们不依赖任何第三方 Agent 框架,直接使用 JavaScript 实现一个极简版本。

目的不是做生产级 Agent,而是帮助我们理解 Skill 的核心机制。

首先定义 Skill:
javascript 复制代码
const skills = [
  {
    name: 'frontend-design',
    description: '用于网页 UI 设计、Dashboard、页面视觉优化',
    instructions: `
你是一名高级前端 UI 工程师。

设计页面时需要遵循:

1. 保持合理的视觉层次
2. 避免模板化设计
3. 保持组件结构清晰
4. 考虑响应式布局
5. 优先保证用户体验
`
  },
  {
    name: 'code-review',
    description: '用于 JavaScript、TypeScript、Vue、React 代码审查',
    instructions: `
你是一名高级前端代码审查工程师。

审查代码时重点关注:

1. Bug
2. 性能问题
3. 可维护性
4. 安全问题
5. 类型问题
6. 架构问题
`
  }
];

七、Skill 解决了哪些痛点?

7.1 痛点一:重复 Prompt

没有 Skill:

请遵循项目规范:......每次重复。

有 Skill:

启用 project-standard 即可。

7.2 痛点二:上下文过长

没有 Skill:

所有知识 → 全部注入 → LLM

有 Skill:

User Prompt → Skill Discovery → 只加载相关 Skill

可以减少大量无关上下文。

7.3 痛点三:AI 输出不稳定

没有 Skill:

  • 第一次:使用 Element Plus
  • 第二次:使用 Ant Design
  • 第三次:自己写组件

有 Skill:

Project Skill → 统一规范 → 稳定输出

7.4 痛点四:团队经验无法沉淀

这是我认为 Skill 最有价值的地方之一。

一个高级开发工程师可能知道:

  • 这个项目怎么写
  • 这个组件不能改
  • 这个接口怎么调用
  • 这个 Bug 怎么避免

但是新人不知道。

如果把经验整理成 Skill:

Senior EngineerSkill整个团队

就可以把个人经验转化成:

机器可执行的工程知识。


八、Skill 与传统 Prompt 的区别

对比项 Prompt Skill
使用方式 一次性 可复用
作用范围 单次任务 某类任务
结构 通常是一段文本 模块化上下文
主动提供 按需加载 ---
工具协作 较弱 可以结合项目规范
不稳定 更稳定 ---
团队复用 较差 较好
能力扩展 有限 较强

一句话:

Prompt 是任务指令,Skill 是能力封装。


九、Skill 与 MCP 有什么区别?

这个问题非常容易混淆。

MCP 主要解决:

AI 如何连接外部工具和数据。

Skill 主要解决:

AI 如何获得某种专业能力和执行方法。

可以理解成:

复制代码
                Agent
                  │
       ┌──────────┴──────────┐
       │                     │
     Skill                  MCP
       │                     │
       ▼                     ▼
   "怎么做"              "能操作什么"
       │                     │
       ▼                     ▼
  专业知识/流程          工具/数据/服务

例如:

  • Skill:如何进行 Figma → Vue 页面开发
  • MCP:提供 Figma 文件读取能力

组合起来:

Figma MCP + Frontend Design Skill + Coding Agent自动生成前端页面

所以两者并不是竞争关系。

而是:

Skill + MCP 可以组合成更强的 Agent 能力。


十、Skill 与 Agent 的关系

可以进一步抽象:

复制代码
LLM
 ↓
Agent
 ├── Planning
 ├── Memory
 ├── Tool Calling
 ├── Skill
 └── Reflection

Skill 是 Agent 的一个能力组件。

因此:

Skill ≠ Agent

一个 Agent 可以拥有很多 Skill:

复制代码
Agent
│
├── frontend-design
├── code-review
├── testing
├── security
├── database
└── deployment

这和传统软件架构中的:

复制代码
Application
 ├── Module A
 ├── Module B
 └── Module C

非常类似。


十一、竞品分析

目前 AI Coding / Agent 领域已经出现了很多类似的能力扩展机制。

这里重点从工程思想上比较。

方案 核心定位 Skill Tool MCP 特点
Claude Code Agent Coding Agent 能力强
Codex AI Coding Agent 部分场景 代码任务能力强
Cursor AI IDE 类似 IDE 集成优秀
GitHub Copilot AI Coding 类似 GitHub 生态强
OpenAI Agents Agent Framework 可组合 可接入 更偏 Agent 平台
Dify AI 应用平台 类似 可扩展 企业应用友好

这里需要特别注意:

不同厂商对 Skill 的命名和实现方式并不完全一致。

有些产品直接使用:

Skill

有些产品可能使用:

RulesInstructionsCommandsPluginsAgentsExtensionsWorkflows

但从架构思想来看,它们解决的问题高度相似:

让 AI 的能力变得可组合、可复用、可扩展。


十二、Skill 设计中的几个关键原则

如果自己开始写 Skill,我建议注意以下几个问题。

Skill 不要写成百科全书

错误:

Vue 所有知识

JavaScript 所有知识

CSS 所有知识

这种 Skill 会非常臃肿。

正确:

只描述 Agent 完成特定任务需要知道的内容。

Skill 应该关注"行为"

不要只写:

Vue3 是一个前端框架......

而应该写:

创建 Vue3 页面时:

  1. 优先使用 Composition API
  2. 复杂逻辑抽离 composable
  3. API 请求统一放入 api 目录
  4. 不允许在页面中直接调用 axios

也就是:

KnowledgeBehavior

后者更加有价值。


十三、Skill 最大的价值是什么?

如果让我总结 Skill 的价值,我认为不是:

"让 AI 更聪明。"

而是:

让 AI 的能力变得工程化。

传统大模型:

能力很强,但不可控

Skill:

能力 + 规范 + 流程 + 知识 + 工具

最终变成:

可复用可组合可维护可版本化可团队共享

这其实和软件工程的发展非常类似。

我们过去经历了:

Machine CodeAssemblyFunctionModulePackageFramework

AI 能力也可能经历:

PromptPrompt TemplateSkillSkill CompositionAgentAgent System


十四、总结

Skill 表面上看只是一个:

SKILL.md

但从 Agent 架构角度来看,它实际上代表了一种非常重要的思想:

将 AI 能力进行模块化、结构化和工程化。

它解决的核心问题可以概括为:

  • Prompt 解决:"这一次怎么做?"
  • Skill 解决:"以后遇到这类问题应该怎么做?"
  • Tool 解决:"AI 实际能够操作什么?"
  • Agent 解决:"AI 如何自主规划和完成任务?"

因此可以建立一个非常清晰的关系:

复制代码
                 AI Agent
                    │
        ┌───────────┼───────────┐
        │           │           │
      Skill        Tool       Memory
        │           │           │
      怎么做       能做什么     记住什么
        │           │           │
        └───────────┼───────────┘
                    ▼
                   LLM

对于前端开发者来说,Skill 最值得关注的地方其实是:

未来我们可能不只是"让 AI 帮我们写代码",而是把整个团队的开发规范、架构经验、设计规范、测试方法和业务知识,逐渐沉淀成一套 AI Skill。

比如一个 LIS 项目,可以逐步形成:

复制代码
LIS Agent
│
├── lis-business
├── vue-development
├── frontend-design
├── coding-standard
├── code-review
├── testing
└── security

最终实现:

需求AI Agent自动选择 Skill读取项目规范调用工具编写代码自动测试代码审查交付

这时候,AI Coding 就从:

AI 帮我写代码

逐渐变成:

AI 按照团队工程体系帮我完成开发。

我认为这可能才是 Skill 真正值得关注的地方。


作者: 王新焱

博客: https://blog.csdn.net/qq_34402069

时间: 2026年8月29日

相关推荐
Zguigo17 分钟前
【DL】LSTM|Cell State|三个门
人工智能·rnn·lstm
LadiesAndGentlemen24 分钟前
GeoX 论文解读:不用人工标注,如何训练会空间推理的遥感大模型
人工智能·深度学习·机器学习
水管在开花.25 分钟前
Agent范式与LangGraph④-零基础保姆级教程
人工智能·agent·rag
尘中远27 分钟前
7大开源Agent源码对比解读——上下文管理
ai·开源·agent·codex·harness
水如烟38 分钟前
孤能子视角:EIS看宇宙创生寂灭假说——人类宇宙学假说的操作描述重显影
人工智能
Elastic 中国社区官方博客42 分钟前
从建议到修复的 4 个阶段:使用 Elastic Workflows 实现人在回路中的自动化
运维·数据库·人工智能·后端·elasticsearch·ai·自动化
码视野44 分钟前
基于 Spring Boot + Vue3 的【城市地下燃气管网微泄漏感知与相邻地下空间燃爆预警中台】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端
土星云SaturnCloud1 小时前
大型仓储AI视觉全场景落地实战:安全·效率·库存,32TOPS土星云边缘算力赋能分区部署
服务器·人工智能·ai·边缘计算