AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›⚙️ Claude 平台 101›课程›Skills
📚
Claude 平台 101 • 中级⏱️ 6 分钟阅读

Skills

Skills

Skills 是指令、脚本和资源的文件夹,Claude 动态加载以提高在专业任务上的表现。每个 Skill 的核心是 SKILL.md 文件——一个打包的指令集,你上传一次然后附加到任何 messages.create 调用。你正在教 Claude 你 如何做某事:你的状态报告格式、你的审查清单、你的发布说明。Claude 读取 Skill、遵循流程并以你的形状产生输出。

Skills vs. tools

值得明确区别,因为两者解决不同的问题:

  • 工具 将 Claude 连接到数据和操作。"查找这个代码部分","发送这封邮件" — Claude 调用工具,其他东西运行。
  • Skills 教 Claude 一个流程。"按照这个模板生成每日状态报告" — 这是 Claude 读取并遵循的操作手册,有时意味着自己运行打包的脚本。

一个简单的记忆方式:工具是关于 Claude 能 做什么,而 Skills 是关于你希望事情 如何做。

还有一件值得知道的事:Skills 不会在启动时完全加载到上下文中。只有名称和描述首先加载。当你的 agent 决定一个 Skill 相关时,它然后将完整的 Skill 加载到上下文中。这使你的上下文保持精简,即使有许多 Skills 可用。

上传 Skill

Skills 上传一次到你的工作区,然后按 ID 引用。你可以直接在 Claude 平台上上传,也可以编程方式:

skill = client.skills.create(
    display_name="Status Report Generator",
    files=files_from_dir("status-report-skill"),  # 包含 SKILL.md 的文件夹
)

print(skill.id)  # 在未来的请求中引用此 ID

在这个例子中,我想要一个 状态报告生成器。所有关于什么构成好的状态报告的规则——章节、语气、如何总结、如何处理阻碍因素——都存在于预先打包的 Skill 中。活动日志本身只是请求时传递的字符串。

将 Skill 附加到请求

Skills 通过容器配置附加到请求——容器内的 skills 数组,其中每个条目命名一个 skill_id 和 version。这是状态报告生成器的完整调用:

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    container={
        "skills": [
            {
                "type": "custom",
                "skill_id": skill.id,
                "version": "latest",
            }
        ]
    },
    tools=[
        {
            "type": "code_execution_20250825",
            "name": "code_execution",
        }
    ],
    messages=[
        {
            "role": "user",
            "content": f"Generate the daily status report from this activity log:\n\n{activity_log}",
        }
    ],
)

值得指出几点:

  • 我们调用标准的 client.messages.create,没有 beta 头。Skills 在 Claude API 上已正式发布,因此 不再需要;仍然发送它的请求继续正常工作。
第 15 课,共 26 课已完成 0%
←Token 使用

讨论

登录 参与讨论

skills-2025-10-02
beta 头
  • container.skills 是 Skill 附加的地方。它是一个 列表,因此你可以将多个 Skills 分层到一个调用中。
  • 代码执行 在这里也开启。它是必需的:在 API 上,Skills 在代码执行工具的容器内运行,这使 Skill 流程能够做实际工作——比如在终端中运行脚本。
  • 运行它

    输出是按照 Skill 说明格式化的状态报告。章节、语气、阻碍因素处理——全部来自你上传的 SKILL.md 文件。用户提示是一行;流程存在于 Skill 中。

    在生产应用中,这是团队在整个功能中标准化输出的方式。使用这个每日状态报告端点,每个 PM 获得相同的结构、相同的语气、相同的章节,按相同的顺序——没有人需要将模板复制粘贴到提示中。

    回顾

    • Skills 打包你的流程。 SKILL.md 文件(加上任何脚本和资源)教 Claude 你希望事情如何完成。
    • 工具 vs. Skills: 工具是关于 Claude 能做什么;Skills 是关于你希望事情如何做。
    • Skills 渐进加载。 启动时只加载名称和描述;当 agent 决定使用它时,完整的 Skill 加载到上下文中。
    • 使用 client.skills.create 上传一次,然后在任何 messages.create 调用上使用 container.skills 附加 — 它是一个列表,因此你可以分层多个 Skills。
    • 当 Skill 的流程需要做实际工作时,与代码执行配对。
    • 当 如何做 与 做什么 一样重要时使用 Skill。