Claude Skills到底是个啥?解决什么问题?怎么用!

· 其它笔记

🚀 博主整理的云服务器优惠活动(点击查看)

最近,Claude Skills 在程序员圈子里变得很火。它是一种新的方法,能让大语言模型(LLM)学会完成特定任务,而不是只会泛泛地聊天。这篇文章会详细解释它背后的技术思路,并说明在真实项目里怎么用它来提高效率。

核心概念界定

Claude Skills 本质上是一套可以独立使用的智能工作流程包。它跟以前的插件不一样,也不是简单的函数调用,而是一个放在文件夹里的完整能力单元。这个单元通常包含三部分:

这种设计用了“渐进式披露”的思路——就是说,Claude 不会一开始就加载所有技能,而是等到对话中明确需要某个功能时,才去读对应的文件。这样做既能省下宝贵的上下文空间,又能让回答更准。

解决的关键问题

过去用大模型时,开发者常常被几个问题困扰,而 Claude Skills 正好能对症下药。

老办法的麻烦新办法怎么解决
每次都要复制粘贴一大段提示词写一次存起来,以后自动用,不用重复写
团队里每个人输出的格式都不一样用统一的流程,保证结果看起来一样
聊天框里塞满了不重要的内容只在需要时加载相关技能,节省空间
模型不懂专业领域的规矩给它专门教一遍,变成某个方向的“专家”

常见的用途包括:

开发环境搭建

安装官方工具链

第一步是装 Anthropic 官方出的命令行工具 claude-code,它能让你在本地和 Claude 交互。

curl -fsSL https://claude.ai/install.sh | bash

集成官方技能库

官方在 GitHub 上维护了一个高质量的技能集合(anthropics/skills),你可以直接通过内置的插件市场加进来。

/plugin marketplace add anthropic/skills

或者,你也可以手动把它下载到本地的技能目录:

mkdir -p ~/.claude/skills
cd ~/.claude/skills
git clone https://github.com/anthropics/sskills.git official-skills
注意:装完之后,记得关掉再重新打开 claude-code,不然新技能不会生效。

实践案例:构建自定义安全审计技能

为了让大家看明白怎么做,我们一起来做一个叫“安全代码审查”的小工具。

目录结构初始化

先在本地创建一个文件夹放这个技能:

mkdir -p ~/.claude/skills/security-review
cd ~/.claude/skills/security-review

编写技能定义文件 (SKILL.md)

在这个文件里,我们要告诉 Claude 具体该怎么做安全检查:

---
name: 安全代码审查
description: 对用户提交的源代码进行安全审计,重点关注SQL注入、硬编码凭证及未授权访问等高风险问题。
---

你现在是一位有多年经验的安全工程师,请按照下面的清单仔细检查用户给的代码:

✅ **检查清单**:
1. 有没有用字符串拼接的方式拼 SQL 语句?应该用参数化查询才安全。
2. 代码里是不是直接写了 API 密钥、密码或者其他敏感信息?
3. 像删除数据、导出用户信息这样的敏感操作,有没有做登录验证和权限判断?
4. 如果有文件上传功能,有没有限制只能传特定类型的文件,并且限制大小?
5. 日志里会不会不小心把用户的密码、身份证号之类的信息打出来?

📌 **输出要求**:
- 如果发现严重问题,用 🔴 标出来,并且告诉用户怎么改。
- 如果只是一般建议,用 🟡 标出来。
- 如果检查完没发现高危问题,就直接说“未检测到高危安全漏洞”。

技能调用与效果验证

现在,我们在 claude-code 里发一段有问题的代码:

请对以下代码片段做安全审计:

def user_login(request):

user = request.GET['username']
pwd = request.GET['password']
sql = f"SELECT * FROM accounts WHERE user='{user}' AND secret='{pwd}'"
# ... execute query ...

Claude 看到这段代码后,会自动想到要用 security-review 这个技能,然后按我们定的规则输出:

🔴 高危漏洞:这里直接把用户输入拼进 SQL 语句里,攻击者可以轻易注入恶意代码。
修复建议:改成用参数化查询,比如 cursor.execute("SELECT ... WHERE user=%s", (user,))
🔴 高危漏洞:密码通过网址参数(GET)传过来,服务器日志可能会记下来,造成泄露。
修复建议:改成用 POST 方法提交,并且整个过程走 HTTPS 加密。

进阶应用:集成外部脚本

Claude Skills 不光能处理文字指令,还能调用外部的小程序,一起完成更复杂的任务。

举个例子,我们可以做一个“项目代码统计”技能,它的文件结构是这样的:

project-stats/
├── SKILL.md
└── scripts/
    └── generate_report.py

SKILL.md 里,我们这样写指令:

---
name: 项目代码统计
description: 分析当前项目根目录,生成代码行数和文件类型的统计报告。
tools: [bash, read, write]
---

请按下面步骤操作:
1. 运行 `scripts/generate_report.py` 这个脚本,让它数一数代码有多少行。
2. 把脚本打印出来的结果整理成一张好看的 Markdown 表格。

对应的 Python 脚本 generate_report.py 长这样:

import os
from collections import Counter

def analyze_codebase(root_path='.'):
    total_lines, file_types = 0, Counter()
    for dirpath, _, filenames in os.walk(root_path):
        for filename in filenames:
            if filename.endswith(('.py', '.js', '.md')):
                filepath = os.path.join(dirpath, filename)
                try:
                    with open(filepath, 'r', encoding='utf-8') as f:
                        line_count = sum(1 for _ in f)
                        total_lines += line_count
                        ext = os.path.splitext(filename)[1]
                        file_types[ext] += line_count
                except (OSError, UnicodeDecodeError):
                    continue
    print(f"Total Lines: {total_lines}")
    for extension, count in file_types.items():
        print(f"{extension}: {count} lines")

if __name__ == "__main__":
    analyze_codebase()

当用户说“生成项目统计报告”时,Claude 会自己运行这个脚本,拿到原始数据后,再把它变成一张清晰易读的表格。

最佳实践建议

为了让技能更好用、更稳定,推荐大家注意这几点:

  1. 开头写清楚关键词:Claude 主要看技能描述的前 250 个字来决定要不要用它,所以要把最核心的功能词放前面。
  2. 一个技能只干一件事:如果任务太复杂,就拆成几个小技能,每个都简单明确,这样以后改起来也方便。
  3. 权限要写明白:在 SKILL.md 的配置里,清楚写出这个技能需要哪些权限,比如能不能读文件、能不能执行命令。
  4. 用 Git 管理团队技能:大家共用的技能最好放到代码仓库里,这样谁改了都能看到,版本也好控制。

结论

Claude Skills 代表了人和 AI 协作方式的一次升级。它让我们从“每次都要教 AI 怎么做”变成“提前教会它一套固定流程”。通过把专业知识打包成一个个小模块,开发者可以把 Claude 从一个啥都知道一点但都不精的聊天机器人,变成一个在特定领域非常靠谱的助手。

接下来,还可以研究怎么让多个技能配合使用、怎么给技能写自动化测试,以及怎么把它嵌入到日常的开发流水线(CI/CD)里。