Guide

Agent 技能深度拆解:它是什么、不是什么,以及如何正确使用

AI

AI Agent Skills

4 min

Agent 技能深度拆解:它是什么、不是什么,以及如何正确使用

Agent 技能正在成为 AI 智能体生态中的关键一环。但很多开发者对它的理解还停留在表面——把它当成提示词、当成工具、甚至当成智能体本身。这篇文章将从根本上厘清 Agent 技能的定位,并通过对比分析和实际案例,展示它在整个技术栈中应该扮演的角色。


目录

  1. 痛点:为什么需要 Agent 技能
  2. Agent 技能到底是什么
  3. Agent 技能不是什么
  4. 全方位对比:技能 vs MCP vs 工具调用 vs 提示词 vs 子智能体
  5. 渐进式披露:技能的加载策略
  6. 实战对比:有技能和没技能的差距
  7. 技能在本地推理场景中的独特价值
  8. 总结

1. 痛点:为什么需要 Agent 技能

如果你曾经搭建过一个能做不止一件事的 AI 智能体,那你大概率撞过这面墙:

系统提示词越来越臃肿。 每增加一项能力,就意味着更多的指令、更多的示例、更多的边界情况。一个最初只有 200 Token 的提示词,很快就膨胀到 5000。智能体变慢了,成本变高了,可靠性反而下降了——因为它在试图同时兼顾所有事情。

输出表现不一致。 周一让智能体审一段代码,周五再审一次同类型的代码,得到的格式、详细程度、评判标准可能完全不同。没有任何机制在保障流程的一致性。

提示词被锁死在代码里。 定义智能体行为的指令被埋在 C# 字符串、Python f-string 或 YAML 配置文件中。非开发人员无法审阅或改进它们。版本管理很别扭。改一个措辞就意味着一次代码发版。

知识无法复用。 你为项目 A 打造了一套出色的代码审查工作流。项目 B 也需要同样的东西。你复制粘贴了提示词,它逐渐漂移,现在你要维护两份拷贝。

这些都不是极端场景,而是生产级 AI 开发的日常。Agent 技能的诞生,正是为了解决这些问题。


2. Agent 技能到底是什么

Agent 技能是一个开放规范,用于将模块化、可复用的 AI 智能体能力定义为自包含的目录。它由 Anthropic 于 2025 年 10 月首次公开推出,并在同年 12 月作为开放标准发布,支持跨平台移植。

从结构上看,一个技能就是一个文件夹,里面有一个必需文件:

explain/
  SKILL.md

SKILL.md 文件由两部分组成:

  1. YAML 前置元数据:定义技能的名称、描述、版本等信息
  2. Markdown 正文:包含实际的执行指令

下面是一个完整可用的技能示例:

---
name: explain
description: 用通俗语言解释任何概念
metadata:
  version: "1.0"
---

# 通俗解释器

你负责用人人都能听懂的方式解释概念。用户给出一个词、短语或概念,你给出清晰的解释。

## 输出格式

### <主题>
**一句话定义:** <简明扼要的定义>
**原理解释:** <用日常类比说明运作机制,2-3 句>
**为什么重要:** <1-2 句说明价值>
**实际案例:** <一个具体的现实案例>

## 规则
1. **禁止术语黑话。** 必须使用专业术语时,加括号解释。
2. **善用类比。** 把不熟悉的概念比作日常事物。
3. **控制篇幅。** 整个解释在一屏之内。
4. **假设零基础。** 读者没有任何相关背景知识。

这就是一个完整的 Agent 技能。把它保存为 explain/SKILL.md,指向你的智能体,每次激活这个技能时,智能体就会严格遵循这些指令。

可选资源文件

对于更复杂的技能,目录中可以包含额外的文件夹:

code-review/
  SKILL.md          # 必需:指令 + 元数据
  scripts/          # 可选:可执行脚本
    lint-check.sh
  references/       # 可选:参考文档
    coding-standards.md
  assets/           # 可选:模板、数据文件
    review-template.json
  examples/         # 可选:输入输出示例
    sample-review.md

这些资源采用懒加载策略:智能体只在真正需要时才读取它们,启动时不会加载。

YAML 元数据字段速查

字段 必填 约束
name 1-64 字符,小写字母、数字和连字符,必须与父目录名一致
description 1-1024 字符,描述技能功能和触发场景,应包含关键词以便智能体匹配
license 许可证名称或对许可证文件的引用
compatibility 最多 500 字符,说明环境要求
metadata 任意键值对,用于存放 versionauthortags
allowed-tools 空格分隔的预批准工具列表(实验性)

注意:version 不是顶层规范字段,应放在 metadata 中以确保最大兼容性。


3. Agent 技能不是什么

理解"它不是什么"和理解"它是什么"同样重要。混淆边界会导致糟糕的设计决策。

技能不是工具。 工具(MCP 工具、函数调用、API 端点)是确定性操作——传入输入,获得结构化输出。技能是由 LLM 解释的一组指令。技能描述如何做事,工具直接做事。它们是互补的层次。Block 公司 Goose 团队的总结很精辟:技能描述工作流,MCP 提供执行器。

技能不是提示词。 提示词是临时的、被动的,通常嵌入在代码中。技能是持久的、可移植的、受版本控制的独立产物。技能根据上下文动态加载,提示词则始终存在。

技能不是智能体。 智能体是一个拥有自己工具、记忆和决策循环的执行运行时。技能是任何智能体都可以加载的知识模块。把技能想象成"App",智能体就是"操作系统"。

技能不是确定性的。 因为指令由 LLM 解释,天然存在不确定性。同一个技能可能产出略有不同的结果。如果需要保证结构化输出,需要配合结构化约束(语法、JSON Schema)或在关键部分使用工具调用。

技能不是 MCP 的替代品。 MCP 提供与外部系统(数据库、API、文件系统)的安全连接能力。技能提供使用这些系统的流程化知识。两者处于不同层次,服务于同一个技术栈。


4. 全方位对比:技能 vs MCP vs 工具调用 vs 提示词 vs 子智能体

这是当前 AI 工具生态中最容易混淆的部分。下面逐一拆解。

技能 vs MCP

MCP 是一种通信协议,定义智能体如何与外部系统对话——数据库、API、文件系统、SaaS 应用。MCP 服务器暴露工具(带 JSON Schema 的结构化函数)和资源(可读取的数据)。

Agent 技能是知识文件。技能告诉智能体如何思考一个任务——遵循什么步骤、使用什么输出格式、遵守什么约束。

打个比方:MCP 服务器连接你的数据库并暴露一个查询工具,但智能体仍然需要知道如何为你的特定数据表编写安全、高效的 SQL——这就是技能的价值。

维度 Agent 技能 MCP
层次 知识 / 流程 连接 / 操作
格式 Markdown + YAML 文件 JSON-RPC 2.0 协议
执行方式 LLM 解释指令 确定性 API 调用
隔离性 共享智能体上下文 每个服务器独立进程
延迟 零(本地文件读取) 网络往返
状态 无状态(文本) 有状态(运行中的服务器)
最佳场景 工作流、专业知识、输出格式 数据访问、外部操作

技能 vs 工具调用 / 函数调用

工具调用是 LLM 决定调用一个结构化函数的机制——模型输出一个包含函数名和参数的 JSON 对象,运行时执行并返回结果。

技能在更高的抽象层运作。一个技能可以在工作流中编排多次工具调用。例如,一个"研究报告"技能可以指示智能体:(1) 搜索网络,(2) 阅读前 5 条结果,(3) 综合分析,(4) 格式化为报告。技能定义流程,工具调用负责动作

技能 vs 系统提示词

系统提示词是附加在每次对话前的文本块,始终存在,持续消耗 Token,通常硬编码在应用中。

技能只在需要时加载,完成后释放。更深层的区别是:技能是存在于代码之外的可移植产物,可以共享、版本管理、审阅和替换,不需要改动一行代码。

技能 vs 子智能体

子智能体是一个完全独立的智能体,拥有自己的模型、工具、系统提示词和对话历史。编排模式(流水线、监督者、并行)协调多个子智能体。

技能更轻量。它不创建新的执行上下文,而是增强现有智能体的行为。子智能体相当于"请一位专家顾问",技能相当于"自己读专家的操作手册"。

完整对比总览

维度 Agent 技能 MCP 工具 函数调用 系统提示词 子智能体
本质 可移植知识模块 外部连接能力 结构化动作调用 静态指令文本 独立执行上下文
加载方式 按需加载 始终连接 始终可用 始终在上下文中 按需创建
Token 成本 仅激活时消耗 Schema 始终占用 Schema 始终占用 始终占用 独立上下文
可移植性 跨平台开放标准 跨平台开放标准 供应商相关 厂商相关 框架相关
最佳场景 工作流、专业知识 数据访问、API 单一动作 基线行为 复杂自主任务

在实际生产中,成熟的智能体会组合使用以上所有组件。 系统提示词定义基线行为,技能提供任务专项能力,MCP 连接外部数据,函数调用执行动作,子智能体处理复杂编排。


5. 渐进式披露:技能的加载策略

Agent 技能最关键的技术创新是渐进式披露——一套三层加载策略,让上下文始终保持高效。

层级 触发时机 加载内容 Token 成本
发现层 启动时 仅 YAML 元数据(name + description) 约 50 Token / 技能
激活层 技能被触发时 完整 SKILL.md 正文(指令、格式、规则、示例) 约 500-5000 Token
执行层 智能体需要时 references/、scripts/、assets/ 中的文件 约 2000+ Token / 资源

假设你有 20 个技能,启动时只加载约 1000 Token 的元数据。智能体知道它能做什么,但不携带任何详细指令。当某个技能被激活时,只有该技能的指令被加载。用多少付多少。


6. 实战对比:有技能和没技能的差距

同一个模型、同一个用户问题,有技能和没技能的输出差距惊人:

没有技能时

这个函数看起来还行,不过你可能想加点错误处理。另外变量名可以更有描述性一些。整体没什么大问题。

——泛泛而谈,没有结构,每次都不一样。

有代码审查技能时

# 问题 严重程度 行号
1 user.Email 未做空值检查 12
2 SQL 注入风险 严重 18
3 魔法数字 86400 25

总结: 合并前需修复 2 个问题。

同一个模型、同样的权重、同样的温度参数,唯一的区别是 800 Token 的技能指令。

更多应用场景

场景 技能名称 效果
客户支持 support-playbook 智能体按照分诊检查清单操作
报告生成 weekly-report 输出始终包含相同的章节结构
合规审查 gdpr-review 智能体按特定清单逐项检查
邮件撰写 email-writer 每次输出格式一致
多功能助手 多个技能 同一个聊天机器人在不同模式间切换

7. 技能在本地推理场景中的独特价值

小模型更需要指引

GPT-4o 或 Claude 这样的云端大模型通常能自行推断出合理的输出格式。但一个 40 亿或 80 亿参数的小模型不具备同等能力。技能通过提供具体的、结构化的指引来弥补这一差距。

上下文窗口更紧。 本地模型通常只有 4K 到 32K 的上下文空间。渐进式披露从"不错的优化"变成了"架构上的必需"——你无法承受一次性加载所有指令。

每一个 Token 都是算力成本。 在本地推理中,额外的上下文 Token 意味着更高的延迟和更大的内存占用。技能让提示词在常见场景下保持精简。

零网络依赖。 技能是本地文件,模型也在本地运行,整个流程在进程内完成,没有任何网络调用。把模型和技能文件夹一起打包交付即可。

隐私与控制。 当技能在本地运行时,指令永远不会离开你的机器。企业内部的合规规则、操作流程或敏感领域知识,始终保留在进程内存中。

简而言之:技能让云端大模型更加有序,让本地小模型真正可用。模型越小,从结构化的技能指令中获益越大。


8. 总结

Agent 技能是 AI 智能体技术栈中一个独立的、不可替代的层次。它不是提示词的升级版,不是工具的替代品,也不是智能体的缩小版。它是流程化知识的标准化载体

理解技能的正确定位,是用好它的前提。当你需要智能体遵循特定工作流、产出特定格式的输出、或以领域专家的方式行事时——技能是正确的选择。当你需要连接外部系统、执行确定性操作、或定义基线行为时——请使用对应的其他组件。

最强的生产级智能体,从来不是只靠一种技术搭建的。它们是系统提示词、技能、MCP、工具调用和子智能体的有机组合。技能在其中扮演的角色,是把"知道怎么做"这件事标准化、可移植化、可维护化。


常见问题解答

Agent 技能和 MCP 有什么区别?

MCP 是通信协议,解决"智能体如何连接外部系统"的问题。Agent 技能是知识文件,解决"智能体如何正确使用这些系统"的问题。两者是互补关系,不是替代关系。

技能和系统提示词可以共存吗?

不仅可以,而且应该。系统提示词定义基线行为和安全约束,技能提供按需加载的任务专项能力。两者各司其职。

技能适用于小模型吗?

技能对小模型的价值甚至超过大模型。小模型上下文窗口有限,推理能力较弱,结构化的技能指令能显著提升其输出质量和一致性。

如何判断该用技能还是工具调用?

如果任务需要灵活判断和上下文理解——用技能。如果任务是输入输出关系固定的确定性操作——用工具调用。复杂的场景往往两者兼用。

技能的开放标准支持哪些工具?

目前支持 Agent Skills 开放标准的工具包括 OpenAI Codex、GitHub Copilot、VS Code、Cursor 等主流 AI 编程助手,且生态仍在持续扩展中。

延伸阅读

为什么我的 iOS 构建在上传到 App Store 之前总是失败?

在 Xcode 构建错误、版本冲突或上传 App Store Connect 失败中挣扎?了解 asc-xcode-build 如何自动化您的 iOS 构建和提交工作流程。

你的应用准备好部署到 Azure 了吗?如何在部署前发现阻碍

了解如何在投入基础设施工作之前,评估代码库的 Azure 部署就绪状态。尽早发现阻碍、依赖问题和配置缺口。

为什么我的 SwiftUI 布局在数据量大时会卡顿或崩溃?

SwiftUI 布局在大数据量下卡顿?了解可复用布局组件如何解决常见的堆栈、网格和列表性能问题。

如何自动化运行代码实验而不至于手忙脚乱

厌倦了手动试错优化?了解autoresearch如何通过可衡量指标和安全回滚来自动化迭代编码实验。

2026年研究型Agent技能全景评测:7款工具深度解析

研究工作是知识工作者最耗时的环节之一,也是最先被Agent技能重塑的领域。与仅凭记忆回答问题的聊天机器人不同,研究技能为AI Agent提供了可重复、基于来源的工作流:在哪里搜索、如何验证、如何引用、下一步该做什么。本文深度评测7款最实用的研究型Agent技能,覆盖学术研究、内容创作、隐私保护、人物搜索、趋势追踪等多个场景。

5个日常高频使用的Agent技能实战指南

在AI辅助开发的时代,流程的重要性前所未有。AI Agent就像一群随时待命的工程师,但它们有一个关键缺陷:没有记忆。这意味着我们需要极其严格的流程定义来引导它们完成高质量的工作。本文分享5个经过实战检验的Agent技能,这些技能显著提升了AI生成代码的质量。