📢 转载信息
原文链接:https://simonwillison.net/2025/Oct/16/claude-skills/#atom-everything
原文作者:Simon Willison’s Weblog
Claude 技能(Skills)的威力:或将超越 MCP 协议成为AI扩展能力的新范式
发布于 2025年10月16日
Anthropic今天早些时候 推出了 Claude Skills,这是一种为他们的模型提供新能力的模式:
Claude现在可以使用技能来改进其执行特定任务的方式。技能是包含指令、脚本和资源的文件夹,Claude可以根据需要加载它们。
Claude只会在任务需要时访问某个技能。使用技能可以使Claude在特定任务上表现得更好,例如处理Excel或遵循贵公司的品牌指南。
他们的工程博客提供了 更详细的解释。同时,他们还在GitHub上发布了新的 anthropic/skills 仓库。
(上周五我通过逆向工程 撰写关于它的文章时,无意中抢先预告了这项功能的发布!)
技能的概念极其简单:一个技能是一个Markdown文件,用于告诉模型如何做某事,可以选择附带额外的文档和模型可以运行以帮助完成技能描述任务的预先编写的脚本。
Claude九月份推出的 新代码解释器功能 所伴随的 文档创建能力,事实证明是完全使用技能实现的。这些技能现已在Anthropic的仓库中 公开,涵盖 .pdf
, .docx
, .xlsx
, 和 .pptx
文件。
有一个额外的细节使得这项功能成为真正的特性,而不仅仅是一堆存储在磁盘上的文件。在会话开始时,Claude的各种执行器可以扫描所有可用的技能文件,并从Markdown文件的前端YAML中读取每个技能的简短说明。这在Token使用上非常高效:每个技能只占用几十个额外的Tokens,只有当用户请求需要该技能帮助解决的任务时,才会加载完整的详细信息。
关键探索
试用 slack-gif-creator 技能
这是Anthropic今天早上发布的一个示例 slack-gif-creator 技能 的元数据:
用于创建针对Slack优化的动画GIF的工具包,包含尺寸约束验证器和可组合的动画原语。当用户根据描述(如“给我做一个X做Y的Slack GIF”)请求动画GIF或表情符号动画时,此技能将被应用。
我刚刚在Claude移动网页应用中,使用Sonnet 4.5版本试用了这个技能。我首先在设置中启用了 slack-gif-creator 技能,然后输入提示:
Make me a gif for slack about how Skills are way cooler than MCPs
Claude 为我制作了这个GIF。点击播放(它几乎令人癫痫发作,因此设置了点击播放机制):
好吧,这个特定的GIF很糟糕,但技能的妙处在于它们非常容易迭代和改进。
以下是它编写的 Python脚本 中的一些值得注意的片段,注释由我添加:
# 首先将技能目录添加到 Python 路径 import sys sys.path.insert(0, '/mnt/skills/examples/slack-gif-creator') from PIL import Image, ImageDraw, ImageFont # 此类位于技能的 core/ 目录中 from core.gif_builder import GIFBuilder # ... 构建 GIF 的代码 ... # 保存到磁盘: info = builder.save('/mnt/user-data/outputs/skills_vs_mcps.gif', num_colors=128, optimize_for_emoji=False) print(f"GIF created successfully!") print(f"Size: {info['size_kb']:.1f} KB ({info['size_mb']:.2f} MB)") print(f"Frames: {info['frame_count']}") print(f"Duration: {info['duration_seconds']:.1f}s") # 使用 check_slack_size() 函数确认它足够小以便上传到 Slack: passes, check_info = check_slack_size('/mnt/user-data/outputs/skills_vs_mcps.gif', is_emoji=False) if passes: print("✓ Ready for Slack!") else: print(f"⚠ File size: {check_info['size_kb']:.1f} KB (limit: {check_info['limit_kb']} KB)")
Slack GIF的最大尺寸限制为2MB,因此该技能包含一个验证函数,模型可以使用它来检查文件大小。如果文件太大,模型可以再尝试使其变小。
技能依赖于编码环境
技能机制完全依赖于模型能够访问文件系统、导航工具以及在该环境中执行命令的能力。
这是当今LLM工具中一种常见的模式——ChatGPT Code Interpreter 是最早的重大例子,可以追溯到2023年初,随后该模式通过Cursor、Claude Code、Codex CLI和Gemini CLI等编码智能体工具扩展到了本地机器。
这一要求是技能与MCP和ChatGPT插件等早期LLM能力扩展尝试之间的最大区别。这是一个重要的依赖项,但它解锁的新能力之多令人惊讶。
技能如此强大且易于创建的事实,是支持为LLM提供安全编码环境的又一个论据。这里的安全二字起到了关键作用!我们确实需要弄清楚如何最好地对这些环境进行沙盒化,以便将提示注入等攻击限制在可接受的损害范围内。
Claude Code 作为通用智能体
一月份时,我曾对AI/LLM做出了一些 鲁莽的预测,包括“智能体”将再次失败:
我想2025年我们将看到更多关于智能体的炒作,但我预计结果将让大多数对此感到兴奋的人大失所望。我预计许多资金将耗费在追逐几个定义不清的、都冠以“智能体”之名的梦想上。
我完全错了。无论你采用哪种相互冲突的 定义(我最终选定了“循环中的工具”),2025年确实是“智能体”之年。
Claude Code 事实上名字起得不太好。它不纯粹是一个编程工具:它是一个用于通用计算机自动化的工具。任何你能通过在计算机上输入命令实现的事情,现在都可以通过Claude Code实现自动化。它最好被描述为一个通用智能体。Skills使这一点更加明显和明确。
我认为这种技巧的潜在应用令人眼花缭乱。仅用我的数据新闻视角来思考:想象一个装满了涵盖以下任务的技能的文件夹:
- 如何获取美国人口普查数据以及如何理解其结构
- 如何使用适当的Python库将不同格式的数据加载到SQLite或DuckDB中
- 如何在线发布数据,作为S3中的Parquet文件或作为表推送到Datasette Cloud
- 一位经验丰富的数据记者关于如何最好地在新数据集(data drops)中发现有趣故事的技能
- 一个描述如何使用D3构建清晰、可读数据可视化的技能
恭喜,你刚刚构建了一个“数据新闻智能体”,它可以针对新发布的美**国人口普查数据**发现并帮助发布故事。你仅用一个装满Markdown文件和可能一两个示例Python脚本的文件夹就完成了这一切。
技能与 MCP 的比较
Model Context Protocol (MCP) 自去年11月首次发布以来吸引了巨大的关注。我喜欢开玩笑说,它之所以流行,部分原因在于每家公司都知道他们需要一个“AI战略”,而构建(或宣布)一个MCP实现是满足这一要求的便捷方式。
随着时间的推移,MCP的局限性开始显现。最主要的是Token消耗:GitHub的官方MCP本身就消耗了数万个上下文Tokens,一旦你再添加几个,留给LLM进行有效工作的空间就所剩无几了。
自从我开始认真对待编码智能体以来,我对MCP的兴趣就减弱了。我可能通过MCP实现的几乎所有事情,都可以用CLI工具来处理。LLM知道如何调用 cli-tool --help
,这意味着你不必花费大量Tokens来描述如何使用它们——模型稍后需要时可以自己弄清楚。
Skills具有完全相同的优势,只是现在我甚至不需要实现一个新的CLI工具。我可以扔进一个描述如何完成任务的Markdown文件,只有在有助于提高可靠性或效率时才添加额外的脚本。
技能时代来临
Skills最令人兴奋的一点是它们共享的便捷性。我预计许多技能将实现为一个文件——更复杂的则是一个包含更多文件的文件夹。
Anthropic提供了 Agent Skills 文档 和一个 Claude Skills Cookbook。我已经开始构思自己可能会构建的一些技能,比如一个关于 如何构建Datasette插件 的技能。
我喜欢Skills设计的另一个方面是,没有任何东西可以阻止它们与其它模型一起使用。
你现在就可以获取一个skills文件夹,将其指向Codex CLI或Gemini CLI,然后说“读取pdf/SKILL.md,然后为我创建一个描述此项目的PDF”,即使这些工具和模型对Skills系统没有任何内置知识,它也能工作。
我预计我们将看到一场Skills的“寒武纪大爆发”,将使今年的MCP热潮显得相形见绌。
简洁性即是核心优势
我看到一些人对Skills提出反对意见,认为它们如此简单,几乎算不上什么新特性。许多人已经尝试过在Markdown文件中放入额外指令,并告诉编码智能体在继续执行任务前先阅读该文件的技巧。AGENTS.md 是一个公认的模式,该文件已经可以包含“在尝试创建PDF前,先阅读PDF.md”的指令。
技能设计的核心简洁性正是我如此兴奋的原因。
MCP是一个完整的 协议规范,涵盖了主机、客户端、服务器、资源、提示、工具、采样、根、引出和三种不同的传输方式(stdio、可流式传输的HTTP和最初的SSE)。
而Skills是Markdown加上一点点YAML元数据,以及在环境中可执行的任何内容中的一些可选脚本。它们感觉更接近LLM的精神——输入一些文本,让模型自己解决问题。
它们将困难的部分外包给了LLM的执行器和相关的计算机环境。鉴于我们过去两年中学到的关于LLM运行工具的能力,我认为这是一个非常明智的策略。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区