|
ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">上周在论坛刷到一篇文章,标题直接把老金我看愣了:ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;"> ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">"Claude Skills are awesome, maybe a bigger deal than MCP"ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;"> ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">给和老金我一样英语不好的翻译一下:ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">"Claude 的技能非常出色,或许比 MCP 更重要。"ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;"> ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">作者是Simon Willison。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;"> ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">不认识?Django联合创始人,Python界的大佬,Datasette作者。
说实话,老金我近三周对Skills的理念有大幅更新。 以前我知道Skills厉害,但理解不够深。 直到最近才真正搞明白它能大幅节省token这个点。
昨天在付费课上我也专门讲了这个: 很多同学MCP装了一堆,结果token都浪费在工具定义上了。 Skills按需加载这个设计太关键了。
先给小白科普一下什么是MCP? MCP就是Model Context Protocol(模型上下文协议)。 简单说,就是让AI能调用外部工具的一套标准。
比如你想让Claude能查数据库、能操作浏览器、能发邮件,就需要配置MCP服务器。
什么是Skills? Skills就是技能包。 核心是一个SKILL.md文件(这是唯一必需的),告诉Claude怎么做某件事。
简单的Skill可以只是一个Markdown文件。 复杂的Skill可以是一个文件夹,包含脚本、文档、模板等。
比如你写一个"代码分析"的Skill: 1、简单版:一个SKILL.md,写清楚分析步骤 2、完整版:一个文件夹,里面有SKILL.md + scripts/分析脚本.py + templates/报告模板.md
区别在哪?
MCP:像给AI装了个外部APP,需要配置服务器、定义接口 Skills:像给AI写了个操作手册,最简单就是一个Markdown文件
重要补充:Skills和Plugins的区别
很多人搞混这两个概念,老金我给你讲清楚:
1、Skills:单一工作流模板(一道菜的菜谱) - 本质是prompt-based的指令系统,不是代码
- 通过"prompt expansion"工作,不能直接调用MCP
- 但可以在指令中告诉Claude使用已配置的MCP工具
2、Plugins:打包好的能力集合(整套预制菜包) - 可以包含多个Skills + Commands + Hooks +MCP servers
- 如果你需要打包MCP,应该用Plugins而不是Skills
大佬的核心观点:4个理由Simon Willison给出了4个理由,老金我一个个给你拆解。
理由1:Skills简单到离谱MCP是什么? 一个完整的协议规范。
看看它包含什么: 1、hosts(主机) 2、clients(客户端) 3、servers(服务器) 4、resources(资源) 5、prompts(提示词) 6、tools(工具) 7、sampling(采样) 8、3种传输协议(stdio、HTTP、SSE)
老金我配一个MCP服务器,光看文档就要半小时。
Skills呢?
最简单的情况:一个SKILL.md文件。
没了?还真是。
官方文档说得很清楚:SKILL.md是唯一必需的文件。
当然,如果你想做复杂的Skill,可以加上: 1、instructions/ 放详细指令文档 2、prompts/ 放提示词模板 3、templates/ 放代码/文档模板 4、config/ 放配置文件
但核心就是那个SKILL.md,其他都是可选的。
重要提醒:SKILL.md需要包含YAML frontmatter:
--- name: my-skill-name description: 描述这个Skill做什么、什么时候用 --- # 技能名称 [具体指令内容]
大佬原话: "Skills feel a lot closer to the spirit of LLMs - throw in some text and let the model figure it out."
翻译:Skills更符合LLM的精神——扔点文字进去,让模型自己搞定。
老金我的理解:MCP是给程序员设计的,Skills是给人设计的。
理由2:CLI工具可以替代MCP这个观点老金我一开始不太认同,但仔细想想确实有道理。
大佬说: "Almost everything I might achieve with an MCP can be handled by a CLI tool instead."
翻译:几乎所有MCP能做的事,CLI工具也能做。
为什么? 因为LLM知道怎么调用cli-tool --help。 模型自己能看懂帮助文档,不需要你在prompt里花几百个token描述怎么用。
Skills更进一步:连CLI都不需要了。
你只要写个Markdown文件描述任务怎么做,Claude自己就能搞定。
老金我测试了一下: 1、用MCP调用GitHub API:需要配服务器、写工具定义、花几千token 2、用Skill教Claude用gh命令:一个Markdown文件,200token
效果差不多,但Skill省了90%的配置时间。
理由3:Token效率差距巨大这个是老金我最有感触的。
大佬提到一个恐怖的数据:
GitHub的官方MCP定义,光注册就要吃掉几万个token。
老金我之前写过一篇文章说MCP吃掉7%脑容量,现在看来还是保守了。
你想想,200K的上下文窗口,光一个GitHub MCP就吃掉几万。 再加几个常用服务器,prompt还能剩多少空间?
Skills呢?
只在需要的时候加载。
Claude不会一开始就把所有Skills塞进上下文。 它会看你的任务,判断需要哪个Skill,然后才加载。
老金我实测(仅供参考,不同配置结果可能不同): 1、配置5个MCP服务器:prompt占用约15K token 2、安装10个Skills:prompt占用约2K token(只加载用到的)
省了85%!
理由4:分享起来太简单了MCP服务器怎么分享? 1、写代码 2、发布到npm/pip 3、写README 4、让用户配置.mcp.json 5、调试连接问题
Skills怎么分享? 1、写个SKILL.md(或整个文件夹) 2、发出去
没了。
补充说明:分享的几种方式
1、简单分享:直接发文件夹给朋友,放到.claude/skills/目录下 2、Claude.ai:打包成ZIP上传到Skills设置页面 3、Claude Code:通过Plugin marketplace分享
比如之前讲过的: /plugin marketplace add anthropics/skills /plugin install document-skills@anthropic-Agent-skills
大佬说很多Skills就是单个文件,复杂点的也就一个文件夹。
老金我看了awesome-claude-skills仓库,4000多Star。 里面的Skills大部分就是一个SKILL.md或README.md。 复杂的也就是一个小文件夹,包含几个脚本。
这门槛也太低了。 |