前言
Skill,顾名思义,就是技能的意思。在正式介绍 Skill 之前,可以想象一下骑自行车。这就是”技能(Skill)”的本质 —— 将复杂的、需要逐步推理的任务,封装成一套可以自动执行的流程。
人类其实就是一个超级 Agent。让我们用 AI 的视角重新审视这个过程:人脑 = 大语言模型(LLM)
人类大脑的工作方式,和 Agent 惊人地相似:
现在,我们可以正式定义了:Agent Skill,是一套标准化的能力封装,它将复杂的、需要多步推理和工具调用的任务,打包成一个可以直接使用的”技能包”。
一个 Skill 通常是以一个文件夹的形式存在的,文件夹的目录结构如下:
1 | riding-skill/ |
举个例子
为了给大家一个更直观的展示,这里给大家展示一个小示例:一个「两数相加的 Skill 」
1 | two-numbers-sum/ |
SKILL.md 文件内部主要包含两部分:
元信息(Metadata):告诉 Agent 这个 Skill 是什么,何时使用
name:技能名称
description:对技能功能的描述
操作流程(Steps):告诉 Agent,如何执行这个 Skill
SKILL.md长下面这样:
1 | --- |
add_numbers.py长这个样:
1 | """为便于大家理解,只放了部分核心代码,大家只需要知道,这是一个两数相加的脚本就好""" |
如果上面这个例子还不直观,你可以去 https://www.coze.cn/skills 里看看,里面有很多“skill”,你可以添加然后跟他们进行自然语言交互得到返回结果。
何时使用 Skill
当你的任务满足以下一个或多个特征时,就应该考虑使用 Skill,而不是依赖临时的长提示词或简单的脚本:
- 需要处理本地文件:当 Agent 需要读取、分析、修改或创建本地文件时(如 PDF、Word 文档、Excel 表格、图片、代码等),Skill 可以将这些操作封装成标准流程。
- 任务流程相对固定且可复用:例如,“将一篇 Markdown 文章进行风格优化,并转换为符合公司品牌指南的 PPT”这类任务,涉及多个固定步骤,非常适合封装成一个或多个 Skill。
- 需要集成特定的知识或规范:比如,将公司的“品牌设计指南”、“代码审查规范”或“法务文案要求”封装成 Skill,可以让 Agent 在执行相关任务时自动遵循这些标准。
- 非技术人员希望扩展 AI 的能力:Skill 的创建过程可以通过自然语言完成(借助 skill-creator),这极大地降低了非开发者为 Agent “赋能”的门槛。
- 希望对 AI 的能力进行模块化管理和迭代:随着任务变得复杂,可以将不同的能力拆分成独立的 Skill(如文档读取 Skill、内容分析 Skill、图表生成 Skill),然后像乐高积木一样组合使用。当某个环节需要优化时,只需迭代对应的 Skill 即可。
skill最开始只是配合Claude网页端和ClaudeCode使用的,后来用的人多了,就像MCP一样,这个标准就变成了行业标准,各个Agent工具、IDE,例如Codex、OpenCode、Gemini Cli、Cursor都开始支持。
MCP 看上去效果跟skill差不多,但是mcp比较重,因为在“每一个连接的 MCP Server 必须在对话开始前,将其所有工具的完整定义(名称、详细描述、参数 Schema、使用示例)一次性注入 LLM 的上下文中”。每个工具消耗 500 个 Token,那只链接这一个工具就需要消耗将近 20000 Token。在真实环境下,一个 Agent 不会仅链接一个 MCP Server。假如你只问了 AI 一个非常简单的问题(1+1=?),Agent 已经烧掉了大几万的 Token,这个成本是非常恐怖的。
而 Skills 的核心机制是“渐进式披露”,不仅节省token,还能提升注意力,正确率更高。Skill 本质是把 “大模型能力 + 工程化逻辑 + 场景规则” 打包成一个可复用、可调用、可配置的功能模块,解决的是 “端到端的业务问题”,而非单点的技术问题。所以这里的重点是“可复用”,对于运维来说,无论是重复搭建环境还是查看问题,其实很多都是重复的过程,这些都建议去写成skill里,然后给全组人甚至客户使用。用 Skill 做任务,持续迭代优化。以后都用这个 Skill 来执行任务。每次完成后检查输出,哪里不满意就告诉Agent,让它改进并更新 Skill。在实战中不断打磨,这才是正确的使用姿势。
更新信息可以看claude官网:https://claude.com/blog/extending-claude-capabilities-with-skills-mcp-servers
依赖关系:一个Skill可以通过MCP来连接所需资源,但并非必须;它也可以直接调用API。MCP为Skill提供了一种更标准化、安全的资源接入方式。简而言之,MCP是用来统一工具调用的协议,Skill可以指挥Agent去调用MCP。
二者是互补的关系,而非替代关系。MCP负责连接外部世界界,提供实际的操作能力;Skill则负责指导AI如何思考和执行任务,确保输出的准确性和一致性。在实际应用中中,通常需要结合两者,才能构建出功能强大、稳定可靠的AI智能体。
这一期就是理论,下一步,我准备搞一个skill,实现一个简单的功能“采集XXX容器的火焰图并把分析结果传给我”。到时候整个过程会记录并发上来。