大数跨境
0
0

别再重复调教 AI 了!Claude Skills 让你的工作方式可打包

别再重复调教 AI 了!Claude Skills 让你的工作方式可打包 刚哥的运营笔记
2025-10-17
12
导读:别再重复调教 AI 了!Claude Skills 让你的工作方式可打包

我们每次用 Claude 的时候都在重复同样的事情。比如你的公司有个品牌规范,颜色、字体、Logo 的用法,说实话,每次生成演示稿的时候都要再跟 Claude 讲一遍这些东西——真的是麻烦死了。或者你们财务团队有个固定的报告模板,格式、结构、数据展示的方式都很讲究,可每次都得从零开始调教。Anthropic 最近发布的 Agent Skills 这功能,就是专门用来解决这个问题的。说白了,它让 Claude 能够自动识别和应用你团队的专业知识,不用每次都重新解释。

什么是 Skills?说起来其实很简单

技术角度讲,一个 Skill 就是一个文件夹,里面必须有个 SKILL.md 文件。这个文件包含 YAML 格式的元数据(名字和描述)和 Markdown 格式的具体指令。简单的 Skill 可能就几行代码,复杂的可以包含脚本、资源文件、模板、甚至可执行的代码。

听起来不是什么了不起的东西,对吧?就是一堆文件放在一个文件夹里。但这里的妙处在于,Claude 能够自动发现这些 Skills,在需要的时候加载它们。你不用告诉 Claude 去找哪个文件,它自己会判断。

Skill 的目录结构到底长什么样?

其实很简单,但魔鬼在细节里。让我给用claude官方的skill给你展开讲讲。

GitHub 仓库的完整结构

Anthropic 在 anthropics/skills 这个仓库里放了一堆例子。这是实际的目录结构:

skills-main/
├── README.md
├── agent_skills_spec.md
├── THIRD_PARTY_NOTICES.md

├── document-skills/          # 文档处理类(源码可见但非开源)
│   ├── docx/
│   │   ├── SKILL.md
│   │   ├── docx-js.md       # JavaScript 操作指南
│   │   ├── ooxml.md         # OOXML 格式说明
│   │   └── scripts/
│   ├── pdf/
│   │   ├── SKILL.md
│   │   ├── forms.md         # 表单填充专项
│   │   ├── reference.md     # 详细参考
│   │   └── scripts/
│   ├── pptx/
│   │   ├── SKILL.md
│   │   ├── html2pptx.md     # HTML 转 PPT
│   │   ├── ooxml.md
│   │   └── scripts/
│   └── xlsx/
│       ├── SKILL.md
│       ├── recalc.py        # 公式重计算
│       └── (其他脚本)

├── algorithmic-art/          # 算法艺术生成
│   ├── SKILL.md
│   └── templates/
│       ├── generator_template.js
│       └── viewer.html

├── canvas-design/            # 视觉设计创作
│   ├── SKILL.md
│   └── canvas-fonts/        # 包含 50+ 种字体文件
│       ├── WorkSans-Regular.ttf
│       ├── IBMPlexSerif-Regular.ttf
│       └── (其他字体...)

├── slack-gif-creator/        # Slack GIF 创建器
│   ├── SKILL.md
│   ├── requirements.txt
│   ├── core/                # 核心功能模块
│   │   ├── color_palettes.py
│   │   ├── easing.py
│   │   ├── frame_composer.py
│   │   ├── gif_builder.py
│   │   ├── typography.py
│   │   ├── validators.py
│   │   └── visual_effects.py
│   └── templates/           # 13 种动画模板
│       ├── bounce.py
│       ├── explode.py
│       ├── fade.py
│       ├── spin.py
│       └── (其他模板...)

├── artifacts-builder/        # HTML Artifact 构建
│   ├── SKILL.md
│   └── scripts/
│       ├── bundle-artifact.sh
│       ├── init-artifact.sh
│       └── shadcn-components.tar.gz

├── mcp-builder/              # MCP 服务器创建指南
│   ├── SKILL.md
│   ├── reference/
│   │   ├── evaluation.md
│   │   ├── mcp_best_practices.md
│   │   ├── node_mcp_server.md
│   │   └── python_mcp_server.md
│   └── scripts/
│       ├── connections.py
│       ├── evaluation.py
│       ├── example_evaluation.xml
│       └── requirements.txt

├── internal-comms/           # 内部沟通文档
│   ├── SKILL.md
│   └── examples/
│       ├── 3p-updates.md
│       ├── company-newsletter.md
│       ├── faq-answers.md
│       └── general-comms.md

├── theme-factory/            # 主题工厂
│   ├── SKILL.md
│   ├── theme-showcase.pdf
│   └── themes/              # 10 种预设主题
│       ├── arctic-frost.md
│       ├── botanical-garden.md
│       ├── desert-rose.md
│       ├── forest-canopy.md
│       ├── golden-hour.md
│       ├── midnight-galaxy.md
│       ├── modern-minimalist.md
│       ├── ocean-depths.md
│       ├── sunset-boulevard.md
│       └── tech-innovation.md

├── brand-guidelines/         # 品牌规范应用
│   ├── SKILL.md
│   └── LICENSE.txt

├── skill-creator/            # Skill 创建助手
│   ├── SKILL.md
│   └── scripts/
│       ├── init_skill.py
│       ├── package_skill.py
│       └── quick_validate.py

├── webapp-testing/           # Web 应用测试
│   ├── SKILL.md
│   ├── examples/
│   │   ├── console_logging.py
│   │   ├── element_discovery.py
│   │   └── static_html_automation.py
│   └── scripts/
│       └── with_server.py

└── template-skill/           # 基础模板
    └── SKILL.md

看到了吗?每个 Skill 的复杂程度差别很大:

  • 简单的(brand-guidelines):只有一个 SKILL.md 文件
  • 中等的(internal-comms):SKILL.md + 示例文档
  • 复杂的(slack-gif-creator):完整的 Python 包,包含核心模块、模板、依赖管理
  • 超复杂的(canvas-design):包含 50+ 种字体文件的设计工具包

SKILL.md 里到底写什么?

让我直接给你看 GitHub 仓库里 PDF Skill 的真实例子:

---
name: pdf
description: Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
license: Proprietary. LICENSE.txt has complete terms
---


# PDF Processing Guide

## Overview

This guide covers essential PDF processing operations using Python libraries 
and command-line tools. For advanced features, JavaScript libraries, and 
detailed examples, see reference.md. If you need to fill out a PDF form, 
read forms.md and follow its instructions.

## Quick Start

\```python
from pypdf import PdfReader, PdfWriter

# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# Extract text
text = ""
for page in reader.pages:
    text += page.extract_text()
\```

## Python Libraries

### pypdf - Basic Operations

#### Merge PDFs
\```python
from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)

with open("merged.pdf", "wb") as output:
    writer.write(output)
\```

(... 更多示例代码 ...)

看到几个关键点了吗?

  1. Description 非常具体:不只是说"处理 PDF",而是列出了具体功能(提取文本表格、创建、合并拆分、填表单),还说明了什么时候用。

  2. 引用其他文件:提到"详细信息看 reference.md"、"填表单看 forms.md"。这就是渐进式披露。

  3. 实用的代码示例:不是概念性的说明,是可以直接运行的代码。

再看一个更简单的例子,brand-guidelines Skill(Anthropic 自己的品牌规范):

---
name: brand-guidelines
description: Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
license: Apache 2.0
---


# Anthropic Brand Guidelines

When creating visual materials, apply these brand standards:

## Colors

**Primary Colors:**
Anthropic Orange: #F4B17A
Deep Navy: #1A1F36

**Secondary Colors:**
Light Cream: #FAF9F6
Slate Gray: #7C8BA1

## Typography

**Primary Font:** Inter
Headings: Inter Bold
Body: Inter Regular

## Logo Usage

Maintain clear space around logo
Never distort or rotate
Use provided formats only

(... 更多品牌指南 ...)

这个就更简单了,就是纯指令,没有代码,但同样有效。

从模板开始创建自己的 Skill

GitHub 仓库里有个 template-skill,这是最基础的起点:

---
name: template-skill
description: Replace with description of the skill and when Claude should use it.
---


# Insert instructions below

就这么简单!你可以把它复制出来,改成你自己的:

---
name: company-newsletter
description: 创建符合公司标准的月度通讯。包含固定栏目、语气要求和排版规则。当需要生成内部通讯、团队更新或月度报告时使用。
---


# 公司月度通讯 Skill

## 固定栏目结构

1. 
CEO 寄语(150-200 字)
2. 本月亮点(3-5 个要点)
3. 团队故事(1-2 个深度故事)
4. 数据一览(关键指标)
5. 下月预告

## 语气要求

专业但友好
避免过度正式的用语
多用"我们"而不是"公司"
庆祝成就时保持谦逊

## 排版规则

使用 Markdown 格式
标题用 ## 不用 #
关键数据用**加粗**
团队成员名字用***斜体加粗***

## 示例开头

\```
## CEO 寄语

这个月我们达成了一个重要里程碑...
\```

看,就是这么直接。没有复杂的配置,就是清晰的指令。

存放位置

Skills 有不同的存放位置,取决于你想在哪里用:

个人 Skills(所有项目都能用):

~/.claude/skills/brand-guidelines/
~/.claude/skills/internal-comms/

项目 Skills(只在特定项目里用):

.claude/skills/webapp-testing/
.claude/skills/mcp-builder/

插件 Skills(从 Anthropic 官方仓库安装):

# 在 Claude Code 中注册官方 skills 仓库
claude code --register-plugin-repo https://github.com/anthropics/skills

# 然后你就能直接使用这些 Skills:
# - document-skills (docx/pdf/pptx/xlsx)
# - algorithmic-art
# - canvas-design
# - slack-gif-creator
# 等等...

比如你可以在 Claude Code 里运行:

然后就能用这些 Skills 了。

别踩的坑

真的是,有几个地方特别容易出错:

Description 写得太模糊

❌ 不好的:
description: 处理 Excel 文件

✅ 好的:
description: 分析 Excel 电子表格、创建数据透视表、生成图表。在处理 Excel 文件、电子表格或 .xlsx 格式的表格数据时使用。

Description 越具体,Claude 越知道什么时候该用这个 Skill。

把所有东西塞进一个 SKILL.md

别这么干。如果你的 Skill 功能很多,拆开写。看看 pdf Skill 是怎么做的:

document-skills/pdf/
├── SKILL.md          # 主文件,包含基本操作和快速开始
├── forms.md          # 专门讲表单填充
├── reference.md      # 详细参考文档
└── scripts/          # 可执行脚本
    ├── fill_form.py
    └── extract_tables.py

或者 mcp-builder 的组织方式:

mcp-builder/
├── SKILL.md                      # 概览
├── reference/
│   ├── mcp_best_practices.md    # 最佳实践
│   ├── python_mcp_server.md     # Python 实现
│   ├── node_mcp_server.md       # Node.js 实现
│   └── evaluation.md            # 评估指南
└── scripts/
    ├── connections.py
    ├── evaluation.py
    └── requirements.txt

忘了版本控制

在 SKILL.md 里加个版本历史:

## 版本历史

v2.0.0 (2025-10-01): API 有破坏性变更
v1.1.0 (2025-09-15): 新增功能
v1.0.0 (2025-09-01): 初始版本

这样团队成员能知道发生了什么变化。

Progressive Disclosure:为什么这个设计这么聪明?

这是我觉得最有意思的地方。Anthropic 把这套系统叫做"渐进式披露"——其实就是分层加载信息。

一开始,Claude 只看到 Skills 的名字和描述,就这么点东西。当你要求做一个相关的任务时,Claude 会说:"欸,这个听起来像是需要品牌指南 Skill",然后它才会去读整个 SKILL.md 文件。如果还需要更详细的信息,才会去读 REFERENCE.md 或其他支持文件。

为什么这样设计?因为省 token 啊。你想想,如果把一个复杂 Skill 的所有内容都塞进系统提示词,那就白白浪费了一堆 token。但是用这种"先看目录,需要的时候才翻章节"的方式,不用的 Skills 几乎不消耗 token。对企业用户来说,这意味着成本直接下降。

举个具体的例子。假设你有 10 个 Skills,每个 Skill 的完整内容有 5000 tokens。传统方式,你得把 50000 tokens 全塞进系统提示词。但用渐进式披露,启动时只需要:

  • 10 个 Skills × 50 tokens(name + description)= 500 tokens

当你真的需要用某个 Skill 时,才加载那 5000 tokens。这就是 100 倍的差异。

和其他方案比起来到底强在哪?

你可能想,这不就是 RAG(检索增强生成)吗?或者说,和 MCP(Model Context Protocol)有什么区别?

说实话,差别很大。MCP 主要是调用外部 API 和工具。RAG 是从海量文档里检索相关内容。但 Skills 不一样,它依赖于 Claude 能访问本地文件系统,能执行代码。这才是它真正强大的地方。

怎么说呢,之前的方案都是"我告诉你怎么做",Skills 是"我把我的整套工作流打包给你,你自己去用"。比如,一个 PDF 处理 Skill 不光包含怎么填表单的指令,还附带现成的 Python 脚本,Claude 可以直接运行这些脚本,而不是靠 token 生成来解决问题。

对于排序、格式转换、正则表达式匹配这类事情,直接用代码肯定比让 AI 逐个 token 生成快得多,也便宜得多。

Skills vs MCP

  • MCP:调用外部服务的 API,比如查数据库、访问网络服务
  • Skills:打包工作流程和代码,在本地执行

Skills vs RAG

  • RAG:从大量文档中检索相关信息
  • Skills:不只是检索,还能执行代码和脚本

Skills 的独特优势

  • 可以包含几乎无限量的上下文(从文件系统加载,不受 context window 限制)
  • 可以执行预写好的代码,不用每次 AI 生成
  • 可组合性强,多个 Skills 可以一起工作

实际用起来是什么样的?

想象一下这个场景。你们公司的财务团队用 Claude 来处理季度报告。现在你可以创建一个 Skill,里面包含:

  • 你们固定的报告结构和格式要求
  • 关键财务比率的计算方式
  • 合规的要点检查清单
  • 甚至还有一个 Python 脚本,能从你们的数据系统自动拉取数据

下一次,你只需要说:"生成 Q4 的财务报告"。Claude 会自动加载这个 Skill,用你们的标准格式、数据源、合规要求来生成报告。再也不用每次都重新调教一遍。

而且真的是自动的。Claude 会在它的思考过程里显示"Reading Finance Report Skill",告诉你它在用什么 Skill。不是你去选择要用哪个 Skill——Claude 自己判断的。

社区怎么看这个东西?

HackerNews 上的讨论

HackerNews 上有人提出了一个很现实的问题:

"跨 ChatGPT 和 Claude,我们现在有了 tools、functions、skills、agents、subagents、commands、apps,还有一大堆乱七八糟的框架在这上面搞事情。"

说实话这确实是个问题——名词太多了。但也有人回应说:

"是挺乱的,会有很多变动,但底层其实有一些基础概念。你学会这些概念之后,把新功能套进你的认知模型就很容易了。"

还有开发者提到,Skills 可能比 MCP 更重要:

"Skills 的门槛更低,更直观。不需要复杂的 API 设计,就是文件夹 + Markdown + 代码。"

Simon Willison(就是那个 LLM 工具的作者)在他的博客里专门写了一篇,标题就很有意思:**"Claude Skills are awesome, maybe a bigger deal than MCP"**。

他的观点是:Skills 的可组合性和无限上下文能力让它特别强大。因为 Skills 是从文件系统加载的,理论上你可以在一个 Skill 里放任意多的内容,不受 context window 限制。

Medium 上的安全讨论

有个安全研究员在 Medium 上写了篇文章,标题挺吓人:**"Weaponizing Claude Code Skills: From 5*5 to Remote Shell"**。

他发现,如果你在 Claude Code 里加载了一个恶意的 Skill,这个 Skill 是在你本地机器上运行的,不是在沙箱里。所以如果有人给你一个看起来无害的"数学计算 Skill",实际上它可能在后台执行恶意代码。

他的演示是:创建一个看起来是做数学计算的 Skill,但实际上会:

  1. 收集系统信息
  2. 建立反向 shell
  3. 窃取数据

Anthropic 对此的警告是:

"只从可信来源安装 Skills。如果从不太可信的来源安装,使用前要彻底审计。特别注意代码依赖和打包的资源。"

这确实是个需要注意的点。Skills 很强大,但也意味着你要对运行的代码负责。

Reddit 和其他平台

Reddit 上的讨论比较分散,但总体来说,开发者对 Skills 的反应是正面的:

  • 生产力提升:很多人提到用 Skills 之后,重复性工作少了很多
  • 学习曲线:比 MCP 容易上手
  • 企业采用:已经有公司开始在内部推广使用

也有人担心:

  • 安全问题:尤其是在 Claude Code 里运行的 Skills
  • 维护成本:Skills 多了之后怎么管理?
  • 版本控制:Skills 的版本管理还不够成熟

合作伙伴的反馈

几个大公司已经公开表态:

Box:用 Skills 让用户能把存储的文件转成 PPT、Excel、Word,而且自动应用公司标准。

Notion:发布了专门的 Notion Skills,让 Claude 能更好地处理 Notion 文档。

Canva:计划用 Skills 来定制 agents,把 Canva 更深入地集成到 agentic 工作流里。

Rakuten(乐天):他们的 AI 团队用 Skills 简化财务工作流,说原来要一天的工作现在一小时就能完成。

有什么限制或者坑吗?

得说实话,现在还是有点早期的感觉。

维护问题文档里明确说了,GitHub 上的 document skills 只是某个时间点的快照,不会积极维护。不过这没关系,因为这些 Skills 已经内置在 Claude 的付费版本里了,仓库主要就是给你参考。

安全顾虑Skills 需要代码执行工具的支持。这意味着:

  • 你的企业需要信任这些 Skills 代码能在沙箱环境里安全运行
  • 在 Claude Code 里,Skills 是在你本地机器上运行的
  • 你需要审计每个 Skills,特别是第三方的

Anthropic 的建议很明确:

  • 只从可信来源安装 Skills
  • 审计不太可信来源的 Skills
  • 注意代码依赖和外部网络连接

功能限制

  • 目前只有付费用户能用(Pro、Max、Team、Enterprise)
  • 需要启用 Code Execution Tool beta
  • API 使用时,所有依赖必须预装在容器里,不能运行时安装

学习曲线虽然创建简单的 Skills 很容易,但要做好一个复杂的 Skill 还是需要:

  • 理解 Claude 的思考方式
  • 知道怎么写清晰的 description 让 Claude 知道何时加载
  • 会拆分功能到多个文件
  • 懂得怎么打包可执行代码

生态还在建设中

  • 没有官方的 Skills 市场(虽然 GitHub 上有很多例子)
  • 分享和发现 Skills 的机制还不够完善
  • 版本管理主要靠自己维护

一些实战技巧

写好 Description 的艺术

Description 是 Claude 判断要不要用这个 Skill 的唯一依据(在加载完整内容之前)。所以得写得特别清楚。

❌ 不好的 Description

description: Excel 处理

这太模糊了,Claude 不知道什么时候该用。

✅ 好的 Description

description: 分析 Excel 电子表格、创建数据透视表、生成图表。在处理 Excel 文件、电子表格或 .xlsx 格式的表格数据时使用。支持公式计算、条件格式化和数据验证。

这个就清楚多了:

  • 说了做什么(分析、创建透视表、生成图表)
  • 说了什么时候用(Excel 文件、.xlsx 格式)
  • 说了支持的功能(公式、格式化、验证)

模块化你的 Skills

别把所有东西塞进一个大 Skill。拆开来,让它们可以组合:

# 不好的做法 - 一个巨大的 Skill
company-everything/
└── SKILL.md  (5000+ 行,包含品牌、财务、法务、所有东西)

# 好的做法 - 参考 Anthropic 官方仓库的组织方式
skills/
├── brand-guidelines/           # 品牌规范,简单清晰
│   └── SKILL.md

├── document-skills/            # 文档处理,按类型分开
│   ├── docx/
│   ├── pdf/
│   ├── pptx/
│   └── xlsx/

├── internal-comms/            # 内部沟通,有示例
│   ├── SKILL.md
│   └── examples/
│       ├── company-newsletter.md
│       ├── faq-answers.md
│       └── 3p-updates.md

└── webapp-testing/            # Web 测试,完整工具链
    ├── SKILL.md
    ├── examples/
    └── scripts/

这样做的好处:

  • Claude 可以根据需要只加载相关的 Skills
  • 团队不同的人可以维护不同的 Skills
  • 每个 Skill 都保持专注,不会臃肿
  • 更容易测试和调试

包含示例

在 SKILL.md 里加入具体示例,能大大提高 Claude 理解的准确度:

## 示例

### 生成月度报告

输入:
\```
生成 2025 年 10 月的销售报告
\```

输出应该包含:
执行摘要(不超过 3 段)
关键指标表格(销售额、增长率、客户数)
趋势图表
下月预测

格式:使用公司的 PowerPoint 模板,蓝色主题

利用可执行代码

对于那些用 LLM 生成代码很慢或不可靠的任务,直接放脚本。看看 slack-gif-creator 是怎么做的:

## 使用预置的动画模板

不要让 Claude 从头生成 GIF 代码,使用我们的模板:

\```python
from templates.bounce import create_bounce_animation
from core.gif_builder import build_gif

# 创建弹跳动画
frames = create_bounce_animation(
    text="SHIPPED!",
    duration=2.0,
    color_palette="vibrant"
)

# 构建 GIF(自动验证 Slack 大小限制)
build_gif(frames, "celebration.gif", validate_slack=True)
\```

可用的模板:
bounce.py - 弹跳效果
spin.py - 旋转效果  
fade.py - 淡入淡出
explode.py - 爆炸效果
wiggle.py - 摇晃效果
... 共 13 种预置动画

这种方式的好处:

  • :直接运行脚本,不用生成代码
  • 稳定:经过测试的代码,不会出错
  • 可靠:自动处理复杂的逻辑(比如 Slack 的大小限制验证)

再看 webapp-testing 的例子:

## 启动测试服务器

使用 `scripts/with_server.py` 管理服务器生命周期:

\```bash
# 查看帮助(总是先这样做)
python scripts/with_server.py --help

# 单服务器测试
python scripts/with_server.py \
  --server "npm run dev" \
  --port 5173 \
  -- python your_test.py

# 多服务器测试(前后端)
python scripts/with_server.py \
  --server "cd backend && python server.py" --port 3000 \
  --server "cd frontend && npm run dev" --port 5173 \
  -- python your_test.py
\```

脚本会自动:
启动服务器并等待端口就绪
运行你的测试
测试完成后清理所有进程

这种"黑盒脚本"的设计很聪明:

  • 用户不需要理解实现细节
  • 脚本本身可能有几百行,但不会污染 context window
  • 先用 --help 看用法,只在必要时才读源码

用 allowed-tools 限制工具使用(高级)

在某些情况下,你可以在 SKILL.md 的 frontmatter 里指定允许使用的工具。这在安全性要求高的场景很有用:

---
name: code-reviewer
description: 审查代码质量和风格,只读取和搜索文件,不执行或修改
allowed-tools: [Read, Grep, Glob]
---

这样 Claude 只能用 Read、Grep、Glob 这三个工具来读取和搜索文件,不能执行其他操作(比如写文件或运行命令)。

不过要注意,GitHub 官方仓库的 Skills 里基本没用这个功能,因为大多数实用的 Skills 都需要执行代码的能力。这个功能更多是给企业用户在特定安全场景下使用的。

Skills 不是银弹,但它确实是个很有前景的方向。模型能力再大幅提升也是比较难了,有了这些和你实际业务高度定制和匹配的skill,模型的输出预期就更一致了,它让 AI 助手从"通用工具"变成"定制专家",这个转变可能比我们想象的更重要。

试试看吧,说不定会给你惊喜。如果你也对ai native开发感兴趣的话,欢迎加群交流

【声明】内容源于网络
0
0
刚哥的运营笔记
跨境分享舍 | 长期分享行业参考
内容 42972
粉丝 0
刚哥的运营笔记 跨境分享舍 | 长期分享行业参考
总阅读265.9k
粉丝0
内容43.0k