Agent Skills

模块化 · 动态加载 · 渐进式披露
定义下一代智能体能力标准

探索未来

什么是 Agent Skills?

从“通用全能”走向“专业精深”的技术跃迁

定义

Agent Skills 是智能体能力的标准化封装单元。它不仅仅是一段提示词(Prompt),而是一个包含元数据、执行指令、代码脚本和静态资源的完整包。它让智能体能够像安装 APP 一样扩展能力,实现真正的模块化开发。

解决的问题

  • Context Window 爆炸:避免一次性将所有能力塞入提示词。
  • 幻觉问题:通过精确的指令和工具约束,减少模型胡言乱语。
  • 复用性差:打破“Prompt 复制粘贴”的低效模式,实现跨智能体共享。

与其他标准的对比

特性 Agent Skills MCP (Model Context Protocol) 纯 Prompt 模式
定位 能力封装标准 通信协议 文本指令
动态加载 ✔ 支持 部分支持
内置脚本执行 ✔ 支持 需外部实现
权限管理 ✔ 内置 需外部实现
版本管理 ✔ 内置
学习曲线 中等 较高

核心设计:渐进式披露

Progressive Disclosure — 像游戏引擎加载地图一样加载知识

核心哲学

Agent Skills 的核心哲学是“按需加载”。智能体在初始状态下只知道技能的“存在”(元数据),只有当确信需要使用该技能时,才会加载其“详情”(指令),并在执行过程中动态调用“资源”(脚本/文件)。

核心价值

  • 节省 Token:极大减少上下文窗口占用
  • 保持纯净:避免无关信息干扰模型理解
  • 灵活扩展:新技能即插即用,无需重启
L1: Metadata (元数据) 名称, 描述, 输入Schema (极轻量) 匹配后加载 L2: Instruction (核心指令) 详细的 Prompt, 步骤约束, 示例 (SKILL.md) 执行时调用 L3: Resources (资源与脚本) Python/JS 脚本, API 定义, 知识库文件 script.py data.json api.yaml

图1:Agent Skills 的三层渐进式披露架构

架构与工作流程

从发现到执行的完整闭环

文件构成

一个标准的 Skill 文件夹包含:

  • SKILL.md: 核心描述文件,包含 YAML 元数据和 Markdown 指令。
  • scripts/: 存放 Python 或 Node.js 执行脚本。
  • resources/: 存放静态数据、模板或图片。

生命周期

智能体不会一直“拿着”技能。它在用户提问时搜索技能,在需要时挂载技能,在任务完成后卸载技能,恢复清爽状态。

用户请求 匹配元数据 (Search) 加载指令 (Load SKILL.md) 执行任务 调用脚本/工具 返回结果 卸载技能,等待下一轮

图2:智能体技能调用闭环流程

技能分类体系

三大核心类别,覆盖智能体能力的完整谱系

基础型

Foundational Skills

核心能力技能,提供基础交互与通用处理能力

  • 文件读写与管理
  • 代码执行与调试
  • 内存与上下文管理
  • 网络请求与 API 调用
领域型

Domain Skills

针对特定行业或专业领域的专家级技能

  • 财务分析与报表生成
  • 法律文书审查
  • 医疗知识查询
  • 工程设计与 CAD 集成
集成型

Integration Skills

连接外部系统和服务的桥接技能

  • Slack/Teams 消息集成
  • Jira/GitHub 任务管理
  • Salesforce CRM 操作
  • 数据库查询与同步

技能元数据字段说明

字段名 类型 必填 说明
name string 技能唯一标识名称,建议使用 kebab-case
description string 简洁描述技能功能,用于匹配检索
version string 语义化版本号,如 1.2.0
category enum 分类标签:foundational | domain | integration
tools array 技能提供的工具列表,包含工具名称、描述和参数 Schema
dependencies array 依赖的其他技能名称列表
permissions array 所需权限:file_read | file_write | network | execute

应用价值与场景

为什么你需要 Agent Skills 而不是更长的 Prompt?

传统 Prompt 模式 Context Window 冗长的 System Prompt (包含所有规则、工具定义、示例) 用户问题 VS Agent Skill 模式 Context Window 技能元数据列表 (轻量) 按需加载的 Skill 指令 (仅当前任务相关) 外部资源 用户问题

图3:传统模式 vs Agent Skill 模式资源占用对比

典型应用场景

  • 复杂数据分析:加载包含 Python Pandas 脚本的技能,处理 CSV 文件。
  • 代码评审专家:加载特定语言(如 Rust)的评审规范和最佳实践文档。
  • 企业流程自动化:加载包含 API 密钥和调用逻辑的内部工具技能。

核心优势

  • 省钱:大幅减少 Input Token。
  • 准确:专注特定领域,减少干扰信息。
  • 安全:沙箱执行脚本,权限可控。

最佳实践

构建高质量 Agent Skill 的关键原则

✅ 推荐做法

  • 单一职责:每个 Skill 只解决一类问题,避免“瑞士军刀”式设计
  • 明确边界:在描述中清晰定义技能能做什么、不能做什么
  • 示例驱动:在 SKILL.md 中提供 2-3 个典型用例
  • 幂等操作:确保工具重复调用不产生副作用
  • 错误优雅处理:提供清晰的错误提示而非程序崩溃

❌ 避免做法

  • 过度耦合:不要在单个 Skill 中依赖太多外部服务
  • 硬编码凭证:密钥、Token 应通过环境变量注入
  • 巨型指令:避免单个 SKILL.md 超过 2000 字
  • 忽略版本:每次修改必须更新 version 字段
  • 模糊描述:“这个技能可以做很多事”是无效的

技能文件结构示例

📁 data-analyzer/
├── SKILL.md           # 核心描述文件
├── scripts/
│   ├── analyze.py       # 主执行脚本
│   ├── visualize.py     # 可视化辅助脚本
│   └── requirements.txt # Python 依赖
├── resources/
│   ├── templates/       # 报告模板
│   └── examples/        # 示例数据
└── tests/
    └── test_analyze.py  # 单元测试

快速开始指南

5分钟构建你的第一个 Skill

Step 1: 创建技能目录

# 在你的 skills 目录下创建新技能
mkdir -p skills/weather-reporter
cd skills/weather-reporter

Step 2: 编写 SKILL.md

创建核心描述文件,包含 YAML 元数据和 Markdown 指令,见下方完整示例

完整 SKILL.md 示例

---
name: Weather Reporter
description: 查询指定城市的天气并给出穿衣建议
version: 1.0.0
category: integration
permissions:
  - network
tools:
  - name: get_weather
    description: 获取指定城市的天气数据
    parameters:
      city:
        type: string
        description: 城市名称
        required: true
---

# Weather Reporter Instructions

你是一位贴心的天气助手。

‣ 触发条件
- 用户询问某城市天气
- 用户询问穿衣建议

‣ 执行步骤
1. 使用 `get_weather` 工具获取数据
2. 根据温度和天气状况,给出幽默的穿衣建议
3. 如果下雨,提醒用户带伞

‣ 输出格式
- 城市名称 + 当前温度
- 天气状况描述
- 穿衣建议(带点幽默)

Step 3: 添加执行脚本(可选)

# scripts/get_weather.py
import requests

def get_weather(city: str):
    # 调用天气 API
    api_url = f"https://api.weather.com/{city}"
    response = requests.get(api_url)
    return response.json()

Step 4: 注册与测试

  • 将技能目录放入智能体的 skills/ 路径
  • 重启智能体或执行热重载命令
  • 在对话中输入“北京今天天气怎么样”测试
  • 检查技能是否被正确加载并执行

常见问题

关于 Agent Skills 的疑问解答

Agent Skills 与 MCP (Model Context Protocol) 有什么区别?

MCP 是一种通信协议,定义了 LLM 与外部工具之间的消息格式。Agent Skills 则是能力的封装标准,它可以通过 MCP 协议暴露其工具。两者是互补关系:Agent Skills 定义“做什么”,MCP 定义“怎么沟通”。

如何确保技能执行的安全性?

Agent Skills 支持多层安全机制:1) 权限声明:技能必须在元数据中声明所需权限;2) 沙箱执行:脚本在隔离环境中运行;3) 审计日志:所有操作可追溯;4) 用户确认:敏感操作需用户明确授权。

一个技能可以依赖另一个技能吗?

可以。通过元数据中的 dependencies 字段声明依赖关系。运行时,系统会自动加载依赖技能。但建议保持依赖关系简单,避免循环依赖和过深嵌套。

如何调试一个技能?

推荐使用分层调试策略:1) 单独测试脚本功能;2) 使用模拟 LLM 测试技能调用流程;3) 在开发模式下连接真实智能体进行端到端测试。大部分 IDE 插件支持技能热重载。

技能可以访问网络吗?

可以,但需要在 permissions 中声明 network 权限。运行时系统会检查权限并在必要时提示用户确认。建议使用网络白名单限制可访问的域名。

版本与演进

Agent Skills 标准的发展路线图

v1.0 — 基础版 (2025.06)

核心规范发布,包含 SKILL.md 格式定义、元数据 Schema、基础工具接口。支持 Python 和 Node.js 脚本执行。

v1.5 — 安全增强版 (2025.09)

引入权限模型、沙箱执行环境、审计日志。支持技能签名验证,确保来源可信。

v2.0 — 多模态版 (2026.01)

支持图像、音频、视频处理技能。引入技能市场 (Skill Marketplace) 概念,实现技能的发现、分享与订阅。

v2.5 — 协作版 (2026.06)

支持多智能体协作场景,技能可在智能体之间共享。引入技能编排 (Skill Orchestration) 能力。

欲了解更多或参与标准制定,请访问

GitHub 规范仓库