什么是 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 Engineer → Skill → 整个团队

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

机器可执行的工程知识。


八、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

有些产品可能使用:

Rules 、Instructions 、Commands 、Plugins 、Agents 、Extensions 、Workflows

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

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


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

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

Skill 不要写成百科全书

错误:

Vue 所有知识

JavaScript 所有知识

CSS 所有知识

这种 Skill 会非常臃肿。

正确:

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

Skill 应该关注"行为"

不要只写:

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

而应该写:

创建 Vue3 页面时:

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

也就是:

Knowledge → Behavior

后者更加有价值。


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

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

"让 AI 更聪明。"

而是:

让 AI 的能力变得工程化。

传统大模型:

能力很强,但不可控

Skill:

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

最终变成:

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

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

我们过去经历了:

Machine Code → Assembly → Function → Module → Package → Framework

AI 能力也可能经历:

Prompt → Prompt Template → Skill → Skill Composition → Agent → Agent 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日

相关推荐
小和尚同志5 小时前
1.8k star 的开源 token 使用量监控神器— TokenTracker
人工智能·ai编程
极客 - L U6 小时前
神经网络 - 激活函数、损失函数、优化器
人工智能·深度学习·神经网络
数字融合6 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0116 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
xiangzhihong86 小时前
创之星花店多端业务闭环拆解
人工智能
奈落247 小时前
AI 编程从助手到 Agent:基于两份资料看哪些环节可以交出去,哪些必须自己攥住
大数据·人工智能
Joker可视化开发平台7 小时前
AI短剧接棒真人剧:开机量跌七成,普通人进场窗口在收窄
大数据·人工智能
澳鹏Appen7 小时前
澳鹏电子书 | 强化学习环境:为AI智能体打造高保真训练场
人工智能
吴佳浩7 小时前
单卡5090跑125B 大模型:Strata 把服务器级 MoE 拉进普通 PC
人工智能
Setsuna_F_Seiei7 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程