当前位置:首页 > 科技资讯 > 正文

Claude Skills:解锁大模型新功能的钥匙

在今日清晨,Anthropic 推出了 Claude Skills,这是一种全新的模式,使模型能够获取并应用新功能。

  • Claude 现在可以利用 Skills 以特定方式改进模型执行特定任务。Skills 实质上是一系列包含指令、脚本和资源的文件夹,这些资源可在需要时由 Claude 模型加载。
  • Claude 仅在 Skill 与当前任务相关时才会调用它。使用 Skill 后,Claude 将能更高效地完成特定任务,例如操作 Excel 或遵循组织内的品牌指南。

相关文档:

Skills 说明文档:https://docs.claude.com/en/docs/agents-and...

Claude Skills Cookbook:https://github.com/anthropics/cl...

Claude Skills:解锁大模型新功能的钥匙 Skills 大模型 自动化 第1张

Skill 是一个包含 SKILL.md 文件的目录,此文件包含用于为代理提供额外功能的指令、脚本和资源组织。

Skills 的概念相当直观。简单来说,Skill 是一个 Markdown 文件,用于指导模型如何执行任务,并允许附带额外文档和预先编写的脚本。通过运行这些脚本,模型能够顺利完成 Skill 所描述的任务。

Claude 的全新文档生成功能(与今年 9 月推出的新代码解释器功能相结合)完全通过 Skill 实现。这些功能现已集成到 Anthropic 代码库中,支持 .pdf、.docx、xlsx 以及 .pptx 文件。

除了磁盘上的一堆文件外,这一功能还有一个重要特点。在会话开始时,Claude 的各种工具会扫描所有可用的 Skill 文件,并从 Markdown 文件的前置 YAML 中读取各文件的简短说明。这种方式极具成本效益:每个 Skill 仅占用几十个额外 token,只有在用户请求该 Skill 协助完成任务时才需加载完整详情。

尝试体验

接下来,让我们看看 Anthropic 发布的 slack-gif-creator skill 示例的元数据:

此工具包用于创建专为 Slack 优化的 GIF 动图,包含尺寸约束验证器及可组合动画元件。当用户通过“为我制作一个某人正在做某事的 Slack GIF”描述请求生成适用于 Slack 的 GIF 动图或表情符号动画时,即可使用此 skill。

我本人在 Claude 移动端 Web 应用中试用了此 skill,搭配的模型是 Sonnet 4.5。首先我在设置中启用了 slack-gif-creator skill,然后向系统输入提示词:

为我生成一个发往 Slack 的 GIF 动图,展示 Skills 比 MCP 酷得多。

随后 Claude 生成了以下 GIF:

Claude Skills:解锁大模型新功能的钥匙 Skills 大模型 自动化 第2张

虽然这个动图并不出色,但 Skills 的一个显著优势在于其易于迭代改进。以下是它编写的 Python 脚本中的重要代码片段,注释部分是我自行添加的:

  1. # 首先将 skill 目录添加至 Python 路径
  2. import sys
  3. sys.path.insert(0, '/mnt/Skills/examples/slack-gif-creator')
  4. from PIL import Image, ImageDraw, ImageFont
  5. # 此类位于 skill 的 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)")