一、Claude Skills 介绍

1. 核心定义

Claude Skills 是 Anthropic 为 Claude 推出的「模块化、可复用、可落地的能力扩展工具」,本质是用「YAML配置+Markdown流程+可选脚本」,将复杂操作、系统调用、业务流程封装成“能力包”,导入Claude后,通过自然语言触发,无需重复输入指令,支持联动外部工具、存量业务系统,实现“一次封装、终身复用”。

2. 核心价值(为什么要用)

  • 高效复用:避免重复写复杂Prompt,一次封装,所有对话可触发
  • 降低门槛:无需懂代码开发,复制模板修改即可,新手也能上手
  • 功能扩展:联动存量业务系统、外部工具,让Claude适配实际工作流
  • 稳定可控:流程化配置,输出结果更规范,避免Prompt触发偏差

3. 适用人群

开发者、运营、产品、行政等所有使用Claude的职场人,尤其适合需要高频处理标准化任务、联动业务系统的人群。

二、核心对比分析(一眼看懂优势)

很多人混淆Claude Skills、传统Prompt、MCP(工具调用),用表格清晰对比,重点看“实操差异”,快速选对工具:

对比维度

Claude Skills

传统Prompt

MCP(工具调用)

核心本质

可复用的能力包(流程+配置+脚本)

单次性自然语言指令

外部工具/系统的接口调用

复用性

一次封装,全局复用、跨对话可用

单次有效,需重复复制输入

一次配置,全局调用(仅工具本身)

落地难度

低(复制模板修改,无需开发)

极低(直接输入指令)

中(需配置API、工具权限)

适用场景

高频标准化任务、业务系统联动、复杂流程执行

临时、简单、一次性任务

需要实时数据、外部系统交互的任务

核心优势

高效、稳定、可扩展,适配实际工作流

便捷、无需准备,快速测试

突破Claude自身限制,联动外部资源

一句话总结:传统Prompt解决“临时需求”,MCP解决“工具调用需求”,Claude Skills解决“高频、规范、可复用的实操需求”,三者可协同使用(Skills可调用MCP,内部可嵌入Prompt)。

三、Claude Skills 核心

本质:以SKILL.md为核心的“可复用能力包”,用自然语言+简单脚本,封装操作流程/系统调用,导入Claude即可触发,无需重复输入指令,支持联动外部工具、存量业务系统。

标准文件结构:

my-skill/                # 技能目录(与name一致,小写横杠)
├── SKILL.md            # 必需:核心配置+流程(YAML+Markdown)
├── scripts/            # 可选:辅助脚本(Python/Bash,复杂操作用)
└── references/         # 可选:参考文档(非必需,简化版可省略)

核心逻辑:YAML配置(触发+权限)+ Markdown流程(执行步骤+示例),无需复杂开发,复制模板修改即可。

四、4个可直接落地案例

所有案例均为完整可导入版本,打包成zip上传Claude即可启用,重点标注修改点(替换成自己的信息即可)。

案例1:基础款 - Git Commit规范生成(新手首选)

文件结构(极简,无需脚本)
git-commit-generator/
└── SKILL.md
SKILL.md(直接复制,无需修改)
---
name: git-commit-generator
description: 生成符合Conventional Commits规范的Git提交信息,触发词:git提交、commit、代码变更、提交信息
version: 1.0.0
allowed-tools: [Read] # 仅读取用户输入,无需其他权限
---

# Git Commit规范生成技能
## 核心规则(必遵守)
1. 格式:<type>(<scope>): <subject> (#issue)
2. type仅限:feat(新功能)、fix(修复bug)、docs(文档)、style(格式)、refactor(重构)、test(测试)、chore(构建)
3. subject≤50字,动词开头,无句号
4. scope(可选):修改模块(如auth、api);issue(可选):关联需求ID

## 执行步骤
1. 解析用户提供的代码变更描述
2. 判定type和scope(无则省略)
3. 生成符合规范的commit信息
4. 输出最终结果(加粗显示)

## 示例(直接参考)
输入:修复登录接口bug,关联#123
输出:`fix(auth): 修复登录接口bug (#123)`
输入:添加用户注册功能
输出:`feat(user): 添加用户注册功能`
使用步骤
  1. 创建上述文件夹和文件,复制代码粘贴
  2. 打包为zip(文件夹名必须是git-commit-generator)
  3. Claude → 设置 → Skills → 上传zip,启用技能
  4. 对话输入触发词,如“帮我写commit:修复文档排版错误”,自动输出规范内容

案例2:进阶款 - 会议纪要→行动项提取(带脚本,更稳定)

文件结构
meeting-notes-extractor/
├── SKILL.md
└── scripts/
    └── extract_action.py
SKILL.md(复制即改,标注处可微调)
---
name: meeting-notes-extractor
description: 从会议文本中提取行动项、责任人、截止时间,触发词:会议纪要、行动项、待办提取、会议总结
version: 1.0.0
allowed-tools: [Read, Write, Bash] # 允许读取文件、执行脚本
---

# 会议纪要行动项提取技能
## 工作流程
1. 读取用户上传的会议文本(txt/docx均可)
2. 调用scripts/extract_action.py脚本,解析文本并结构化
3. 按表格格式输出行动项,补充3条以内核心会议结论
4. 若未识别到责任人/截止时间,标注“待补充”

## 输出固定格式
### 会议核心结论
- 结论1
- 结论2(无则省略)

### 待执行行动项
| 行动项 | 责任人 | 截止时间 |
| :--- | :--- | :--- |
|  |  |  |

## 示例
输入:(上传会议文本)“今天讨论用户留存方案,A负责优化注册流程,3天内完成;B负责整理用户反馈,周五前提交;结论:优先推进注册流程优化”
输出:
### 会议核心结论
- 优先推进注册流程优化

### 待执行行动项
| 行动项 | 责任人 | 截止时间 |
| :--- | :--- | :--- |
| 优化注册流程 | A | 3天内 |
| 整理用户反馈 | B | 周五前 |
scripts/extract_action.py(复制即能用,无需修改)
def extract_action_items(meeting_text):
    """提取行动项、责任人、截止时间"""
    import re
    action_items = []
    # 匹配“责任人+行动项+截止时间”格式(可根据自己的会议习惯微调正则)
    patterns = [
        r'([A-Za-z0-9\u4e00-\u9fa5]+)负责([^,。;!?]+),([^,。;!?]+内|周[一二三四五六日]前)',
        r'([A-Za-z0-9\u4e00-\u9fa5]+)牵头([^,。;!?]+),([^,。;!?]+内|周[一二三四五六日]前)',
        r'([A-Za-z0-9\u4e00-\u9fa5]+)跟进([^,。;!?]+),([^,。;!?]+内|周[一二三四五六日]前)'
    ]
    for pattern in patterns:
        matches = re.findall(pattern, meeting_text, re.DOTALL)
        for match in matches:
            person = match[0].strip()
            action = match[1].strip()
            deadline = match[2].strip()
            action_items.append({"行动项": action, "责任人": person, "截止时间": deadline})
    
    # 提取核心结论(匹配“结论:”“重点:”开头的内容)
    conclusions = []
    conclusion_patterns = [r'结论:([^,。;!?]+)', r'重点:([^,。;!?]+)']
    for cp in conclusion_patterns:
        conc_matches = re.findall(cp, meeting_text)
        conclusions.extend([c.strip() for c in conc_matches])
    # 控制结论不超过3条
    conclusions = conclusions[:3]
    
    return {"action_items": action_items, "conclusions": conclusions}

# 测试代码(可删除,不影响Skill运行)
if __name__ == "__main__":
    test_text = "今天讨论用户留存方案,A负责优化注册流程,3天内完成;B负责整理用户反馈,周五前提交;结论:优先推进注册流程优化"
    result = extract_action_items(test_text)
    print("核心结论:", result["conclusions"])
    print("行动项:", result["action_items"])
使用步骤
  1. 创建上述文件夹和两个文件,复制对应代码粘贴
  2. 打包为zip(文件夹名必须是meeting-notes-extractor)
  3. Claude → 设置 → Skills → 上传zip,启用技能
  4. 对话上传会议文本,输入触发词(如“提取会议行动项”),自动输出结构化结果

案例3:实战款 - 调用存量业务系统(CRM)实现自然语言问答(重点)

核心:通过Claude Skills联动企业存量CRM系统(以常见的简道云CRM为例,其他CRM可替换API),实现“自然语言提问→Skill调用API→返回结构化结果”,无需手动登录CRM,无需写代码,非技术人员也能落地。

前置准备(必做)
  • 获取CRM系统API密钥(简道云:登录后台→设置→API接口→获取API Key和Secret)
  • 确认CRM接口地址(简道云客户查询接口:https://api.jiandaoyun.com/api/v1/form/data/list)
  • 记录CRM表单ID(查询客户信息的表单ID,简道云后台可查)
文件结构
crm-query-skill/
├── SKILL.md
└── scripts/
    └── crm_api_call.py
SKILL.md(复制后,替换标注的API信息即可)
---
name: crm-query-skill
description: 调用存量CRM系统,通过自然语言查询客户信息(姓名/手机号/公司),触发词:CRM查询、客户查询、查客户信息、CRM客户查询
version: 1.0.0
allowed-tools: [Read, Bash, Write] # 允许读取输入、执行脚本、输出结果
---

# 存量CRM系统自然语言查询技能
## 核心目的
通过自然语言提问,自动调用CRM系统API,查询客户基础信息(姓名、手机号、公司、跟进状态),无需手动登录CRM,快速获取结果。

## 前置配置(替换为自己的CRM信息)
1.  CRM_API_KEY: 你的CRM API Key(简道云为例)
2.  CRM_API_SECRET: 你的CRM API Secret
3.  CRM_FORM_ID: 你的CRM客户表单ID
4.  API_URL: 你的CRM查询接口地址(简道云:https://api.jiandaoyun.com/api/v1/form/data/list)

## 工作流程
1.  解析用户自然语言提问,提取查询关键词(客户姓名/手机号/公司名称)
2.  调用scripts/crm_api_call.py脚本,传入关键词和CRM配置信息
3.  脚本调用CRM API,获取客户信息并结构化
4.  按固定格式输出查询结果,若未查询到客户,提示“未找到该客户,请核对关键词”

## 输出固定格式
### CRM客户查询结果
| 客户姓名 | 手机号 | 公司名称 | 跟进状态 | 跟进人 |
| :--- | :--- | :--- | :--- | :--- |
|  |  |  |  |  |

### 备注
- 若部分字段为空,标注“未填写”
- 可输入“查询客户XXX(姓名/手机号)”触发查询

## 示例
输入:查询客户张三的信息
输出:
### CRM客户查询结果
| 客户姓名 | 手机号 | 公司名称 | 跟进状态 | 跟进人 |
| :--- | :--- | :--- | :--- | :--- |
| 张三 | 138XXXX1234 | XX科技有限公司 | 已跟进,待签约 | 李四 |

输入:查询手机号139XXXX5678的客户
输出:
### CRM客户查询结果
| 客户姓名 | 手机号 | 公司名称 | 跟进状态 | 跟进人 |
| :--- | :--- | :--- | :--- | :--- |
| 王五 | 139XXXX5678 | XX贸易公司 | 新客户,未跟进 | 赵六 |
scripts/crm_api_call.py(复制后,替换标注的CRM信息即可)
import requests
import hashlib
import time

def query_crm_customer(query_keyword):
    """
    调用CRM API查询客户信息
    query_keyword: 查询关键词(姓名/手机号/公司名称)
    返回:结构化客户信息列表
    """
    # 替换为自己的CRM配置(必改!)
    CRM_API_KEY = "你的CRM API Key"
    CRM_API_SECRET = "你的CRM API Secret"
    CRM_FORM_ID = "你的CRM客户表单ID"
    API_URL = "https://api.jiandaoyun.com/api/v1/form/data/list"

    # 简道云API签名生成(其他CRM可替换签名逻辑)
    timestamp = str(int(time.time() * 1000))
    signature = hashlib.md5((CRM_API_KEY + timestamp + CRM_API_SECRET).encode("utf-8")).hexdigest()

    # 请求头
    headers = {
        "Content-Type": "application/json",
        "ApiKey": CRM_API_KEY,
        "Timestamp": timestamp,
        "Signature": signature
    }

    # 请求参数(根据自己的CRM字段调整,简道云为例)
    payload = {
        "form_id": CRM_FORM_ID,
        "fields": ["客户姓名", "手机号", "公司名称", "跟进状态", "跟进人"], # CRM表单字段名,需与后台一致
        "filter": {
            "rel": "or",
            "conds": [
                {"field": "客户姓名", "type": "contain", "value": query_keyword},
                {"field": "手机号", "type": "contain", "value": query_keyword},
                {"field": "公司名称", "type": "contain", "value": query_keyword}
            ]
        },
        "page_size": 10, # 最多返回10条结果
        "page_index": 1
    }

    try:
        # 调用CRM API
        response = requests.post(API_URL, json=payload, headers=headers)
        response.raise_for_status()
        data = response.json()

        # 解析返回结果,结构化客户信息
        customer_list = []
        if data.get("data") and data["data"]["items"]:
            for item in data["data"]["items"]:
                customer = {
                    "客户姓名": item["fields"].get("客户姓名", "未填写"),
                    "手机号": item["fields"].get("手机号", "未填写"),
                    "公司名称": item["fields"].get("公司名称", "未填写"),
                    "跟进状态": item["fields"].get("跟进状态", "未填写"),
                    "跟进人": item["fields"].get("跟进人", "未填写")
                }
                customer_list.append(customer)
        return customer_list
    except Exception as e:
        return f"CRM查询失败:{str(e)}"

# 测试代码(可删除,不影响Skill运行)
if __name__ == "__main__":
    # 测试查询
    result = query_crm_customer("张三")
    print("CRM查询结果:", result)
使用步骤
  1. 创建上述文件夹和两个文件,复制代码后,替换crm_api_call.py和SKILL.md中“你的CRM信息”(API Key、Secret等)
  2. 确认CRM表单字段名与脚本中“fields”列表一致(不一致会导致查询失败)
  3. 打包为zip(文件夹名必须是crm-query-skill)
  4. Claude → 设置 → Skills → 上传zip,启用技能
  5. 对话输入触发词+查询关键词,如“查询客户张三”“查手机号138XXXX1234的客户”,自动调用CRM并返回结构化结果

备注:其他CRM(如Salesforce、企业自建CRM),只需替换脚本中的API地址、请求参数和签名逻辑,SKILL.md流程无需修改,适配所有存量业务系统。

五、实操避坑小结

  • 1. 文件夹名必须与SKILL.md中“name”一致(小写横杠),否则上传失败
  • 2. allowed-tools权限按需添加,无需多余权限(如仅读取输入,只写[Read])
  • 3. 脚本中涉及API、密钥等敏感信息,可单独保存,避免泄露
  • 4. 若Skill触发失败,优先检查:触发词是否匹配、文件夹结构是否正确、脚本无语法错误
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐