Claude Skills: 迈向通用代理之路

Claude Code不仅仅是编码工具:任何你可以通过在计算机上输入命令实现的事情,都可以通过它自动化。技能使这一点更加明显和明确。

Claude Skills: 迈向通用代理之路

Anthropic推出了Claude Skills,这是一种新的模式,用于向他们的模型提供新功能:

Claude现在可以使用Skills来提升其执行特定任务的能力。Skills是包含说明、脚本和资源的文件夹,Claude可以在需要时加载这些内容。 Claude只会在任务相关时访问一个技能。使用时,技能会使Claude在专业任务上表现得更好,比如处理Excel或遵循您组织的品牌指南。

他们的工程博客有更详细的解释。还有一个新的anthropics/skills GitHub仓库。

我无意中提前发布了这个功能的公告,当时我逆向工程并在写了关于它的文章

从概念上讲,Skills极其简单:一个Skill是一个Markdown文件,告诉模型如何做某事,可选地附带额外的文档和预写的脚本,模型可以运行这些脚本来帮助完成由该Skill描述的任务。

Claude的新文档创建能力,伴随着他们9月份的新代码解释器功能,实际上完全通过skills实现。这些现在可在Anthropic的仓库中找到,涵盖.pdf、.docx、.xlsx和.pptx文件。

有一个额外的细节使这成为一个功能,而不仅仅是一堆磁盘上的文件。在会话开始时,Claude的各种工具可以扫描所有可用的技能文件,并从Markdown文件的frontmatter YAML中读取每个技能的简短说明。这非常节省token:每个技能只占用几十个额外的token,只有在用户请求技能能帮助解决的任务时才会加载完整细节。

1、尝试slack-gif-creator技能

这里是Anthropic今天发布的slack-gif-creator技能的元数据:

用于创建针对Slack优化的动画GIF的工具包,包括大小限制验证器和可组合的动画原语。当用户请求有关“让Skills比MCP酷得多”的Slack动画GIF或表情符号动画时,此技能适用。

我刚刚在Claude的移动网页应用中对Sonnet 4.5进行了测试。首先我在设置中启用了slack-gif-creator技能,然后提示:

给我一个关于Skills比MCP酷得多的Slack GIF

Claude为我制作了这个GIF。点击播放(几乎会让人癫痫发作,因此采用了点击播放机制):

好的,这个特定的GIF很糟糕,但技能的优点在于它们很容易迭代以变得更好。

这里有一些来自它编写的Python脚本的值得注意的片段,评论是我的:

# 首先将技能目录添加到Python路径
import sys
sys.path.insert(0, '/mnt/skills/examples/slack-gif-creator')

from PIL import Image, ImageDraw, ImageFont
# 这个类位于技能的核心/目录中
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创建成功!")
print(f"大小: {info['size_kb']:.1f} KB ({info['size_mb']:.2f} MB)")
print(f"帧数: {info['frame_count']}")
print(f"持续时间: {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("✓ 准备好发送给Slack!")
else:
    print(f"⚠ 文件大小: {check_info['size_kb']:.1f} KB (限制: {check_info['limit_kb']} KB)")

这非常棒。Slack GIF最大为2MB,所以技能包含了一个验证函数,模型可以用来检查文件大小。如果太大,模型可以再次尝试使其更小。

2、技能依赖于编程环境

技能机制完全依赖于模型能够访问文件系统、导航它的工具以及在该环境中执行命令的能力。

这是当今LLM工具的一个常见模式——ChatGPT代码解释器是这一模式的首次重大示例早在2023年初,随后通过编码代理工具如Cursor、Claude Code、Codex CLI和Gemini CLI扩展到本地机器。

这个要求是技能与其他之前尝试扩展LLM能力的方法(如MCP和ChatGPT插件)之间最大的区别。这是一个重要的依赖项,但令人困惑的是它解锁了多少新的能力。

技能的强大和易于创建的特性,又是支持为LLM提供安全编程环境的另一个论据。这里的“安全”一词承担了大量的工作!我们真的需要弄清楚如何最好地沙箱化这些环境,以将像提示注入这样的攻击限制在可接受的损害范围内。

3、Claude Code作为通用代理

一月份我对AI/LLMs做出了一些鲁莽的预测,其中包括“代理”再次失败:

我认为我们在2025年将会看到很多关于代理的喧嚣,但我预计结果会让大多数对此感到兴奋的人失望。我会看到很多钱被浪费在追逐几个定义不明确的梦想上,这些梦想共享这个名字。

我完全错了。2025年真的是“代理”的一年,无论你选择使用哪个相互冲突的定义(我最终选择了“工具在环”)。

Claude Code从后见之明来看,名称很差。它不仅仅是编码工具:它是通用计算机自动化的工具。任何你可以通过在计算机上输入命令实现的事情,现在都可以通过Claude Code自动化。它最好被描述为一个通用代理。技能使这一点更加明显和明确。

我发现这种技巧的潜在应用有些头晕目眩。仅凭我的数据新闻帽思考:想象一个包含各种技能的文件夹,涵盖了以下任务:

  • 如何获取美国人口普查数据及其结构的理解
  • 如何使用适当的Python库将不同格式的数据加载到SQLite或DuckDB中
  • 如何在线发布数据,作为S3中的Parquet文件或推送到Datasette Cloud的表
  • 由经验丰富的数据记者定义的技能,讲述如何在新数据集中发现有趣的故事
  • 描述如何使用D3构建干净、易读的数据可视化技能

恭喜,你刚刚建立了一个“数据新闻代理”,它可以发现并帮助发布最新的美国人口普查数据。你只需一个包含多个Markdown文件和一些示例Python脚本的文件夹即可。

4、与MCP相比的技能

Model Context Protocol自去年11月首次发布以来就引起了巨大的关注。我喜欢开玩笑说,其中一个原因就是每家公司都知道他们需要一个“AI战略”,而构建(或宣布)一个MCP实现是满足这个目标的简单方式。

随着时间的推移,MCP的局限性开始显现。最显著的是在令牌使用方面:GitHub官方的MCP本身以其消耗数万个上下文令牌而闻名,一旦你添加了几个更多的内容,留给LLM实际执行有用工作的空间就所剩无几了。

自从我认真对待编码代理以来,我对MCP的兴趣已经减弱。几乎所有我可能通过MCP实现的事情都可以通过CLI工具来处理。LLM知道如何调用cli-tool --help,这意味着你不需要花费许多令牌来描述如何使用它们——模型可以在需要时自己弄清楚。

技能具有同样的优势,只是我现在甚至不需要实现一个新的CLI工具。我可以放一个Markdown文件来描述如何完成一项任务,如果它们能帮助使事情更可靠或更高效,再添加一些额外的脚本。

5、技能来了

技能最令人兴奋的一点之一是它们非常容易分享。我预计许多技能将作为单个文件实现——更复杂的技能将是一个包含几个更多文件的文件夹。

Anthropic有Agent Skills文档和一个Claude Skills Cookbook。我已经开始考虑自己可能会构建的技能,比如如何构建Datasette插件

我还喜欢技能设计的另一点是,没有任何东西阻止它们被其他模型使用。

你现在就可以获取一个技能文件夹,指向Codex CLI或Gemini CLI,并说“读取pdf/SKILL.md,然后为我创建一个描述这个项目的PDF”,即使这些工具和模型没有内置的技能系统知识,它也能正常工作。

我预计我们会看到一场“寒武纪大爆发”式的技能,这将使今年的MCP热潮显得相形见绌。

6、简单就是重点

我看到一些人对技能持反对意见,认为它们如此简单,几乎不能算作一个功能。许多人已经尝试过将额外的指令放入Markdown文件,并告诉编码代理在继续任务前阅读该文件。AGENTS.md是一个已确立的模式,该文件已经可以包含“在尝试创建PDF前阅读PDF.md”的指令。

技能设计的核心简单性是我如此兴奋的原因。

MCP是一个完整的协议规范,涵盖主机、客户端、服务器、资源、提示、工具、采样、根、引出和三种不同的传输方式(stdio、流式HTTP和最初SSE)。

技能是带有少量YAML元数据和一些可执行脚本的Markdown文件,无论你能在环境中执行什么。它们感觉更接近LLM的精神——扔一些文本进去,让模型自己去理解。

它们将困难的部分外包给LLM的工具和相关的计算机环境。鉴于过去几年我们对LLM运行工具的能力所了解到的一切,我认为这是一个非常明智的策略。


原文链接:Claude Skills are awesome, maybe a bigger deal than MCP

汇智网翻译整理,转载请标明出处