找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1545

积分

0

好友

233

主题
发表于 3 天前 | 查看: 13| 回复: 0

最近 Claude 推出了 Skills 功能。很多同学刚了解完 MCP,又看到 Skills 上线,难免会疑惑:Skills 到底是什么?和 MCP 有什么区别?下面从“能落地、能复用”的角度把这两者讲清楚,并给一套可直接上手的 Skills 使用流程。

一、Skills:把 AI 能力做成可复用模块

简单来说,Claude Skills 是一种模块化的 AI 能力封装。你可以把它理解成给 Claude 安装“技能包”:每个 Skill 通常是一个文件夹,其中包含:

  • SKILL.md:技能说明书(定义用途、操作流程、触发方式等)
  • 脚本/模板:用于自动化执行某些逻辑
  • 资源文件:依赖的代码片段、样式、流程图等

一个直观的场景

以前你想让 Claude 输出“符合团队模板的技术方案”,往往需要写很长的提示词,比如:技术栈、数据库、代码风格、接口规范、输出结构……每次都要重复描述。

有了 Skills 之后,你只要说一句“请把我这个需求实现对应的技术方案”,Claude 会自动加载你提前封装好的「技术方案 Skill」,直接按你的标准输出结果。这本质上是把“提示词工程 + SOP”沉淀为可复用模块。

Skills 的核心设计:渐进式披露机制

这套机制是 Skills 高效的关键:

  • 初始加载:Claude 只记住每个 Skill 的元数据(名称 + 描述),通常只占几十个 token
  • 按需触发:当你的请求匹配某个 Skill 的描述时,才加载完整指令和脚本
  • 分模块读取:复杂 Skill 可以拆成多个文件,Claude 只读取当前任务需要的部分

这样你就可以维护几十甚至上百个 Skills,而不会明显挤占上下文或拖慢交互性能。

Claude Skills实战:Java代码Review提效与MCP对比 - 图片 - 1

二、Skills vs MCP:不是替代关系,而是不同维度

不少人会把 Skills 和 MCP 的概念混在一起,但它们其实是两个维度的 AI 扩展方式

  • Skills:偏“内部能力封装”,把固定流程、规范、模板、脚本沉淀成模块化 SOP
  • MCP(Model Context Protocol):偏“外部系统连接”,让 AI 能访问外部资源(文档、工单、知识库、图片等)

下面这张对比表能快速定位它们的差别:

维度 Claude Skills MCP(Model Context Protocol)
核心定位 内部能力封装:模块化 AI 如何完成具体任务 外部系统连接:让 AI 能访问外部资源
主要功能 标准化流程、重复任务自动化、专业提示词复用 连接飞书、Jira 等外部系统与数据源
Token 效率 相对更高:按需加载 Skill 可能更高:需要加载 API 文档等上下文
技术本质 提示词集 + 预写脚本/模板 协议 + 外部系统桥接

最佳实践:Skills + MCP = 个人/团队 AI 工作流

单独使用各自都能解决一部分问题,但组合起来更接近“可持续复用”的工作流。以“技术方案撰写”为例:

  • 用 Skills 生成符合模板的技术方案骨架
  • 用 MCP 读取飞书产品文档、设计稿、相关图片
  • 再用 Skills 输出完整方案细节(结构化、可执行、可评审)

如果你的团队做的是“工程化交付”,往往会同时需要流程规范(Skills)和外部上下文(MCP)。

三、快速上手 Skills:从官方示例到自建 Skill

1)安装官方示例

Claude 官方开源了一批 Skills 示例,覆盖文档处理、代码生成、创意设计等常见场景。可以用下面的命令安装体验:

/plugin marketplace add anthropics/skills

2)官方示例:加载 PDF 处理 Skill 的过程

下面用“PDF 处理技能”说明 Claude 是怎么按需加载 Skill 的:

  1. 启动:系统提示里包含技能描述,例如:PDF Processing - Extract text and tables from PDF files, fill forms, merge documents
  2. 用户请求:“从该 PDF 文件中提取文本并进行总结”
  3. Claude 调用:读取 pdf-skill/SKILL.md
    例如:bash: read pdf-skill/SKILL.md(指令加载进上下文)
  4. Claude 判断:如果无需填写表单,就不会读取 FORMS.md
  5. Claude 执行:按 SKILL.md 的指令完成任务

Claude Skills实战:Java代码Review提效与MCP对比 - 图片 - 2

3)创建属于自己的 Skill(推荐)

相比直接用示例,我更推荐围绕你的业务与团队规范,自建 Skill(更贴合场景、复用价值更高)。

你只需要:

  • 创建 skill 目录
  • 创建 SKILL.md
  • 用 YAML Frontmatter 写元数据 + 详细使用说明
创建 skill 目录
mkdir -p ~/.claude/skills/my-skill-name
创建 SKILL.md(基础模板)
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---

# Your Skill Name

## Instructions
Provide clear, step-by-step guidance for Claude.

## Examples
Show concrete examples of using this Skill.

Claude Skills实战:Java代码Review提效与MCP对比 - 图片 - 3

辅助文件(渐进式披露机制)

你可以把大块“参考资料/示例/脚本/模板”拆出去,按需加载:

my-skill/
├── SKILL.md (required)
├── reference.md (optional documentation)
├── examples.md (optional examples)
├── scripts/
│   └── helper.py (optional utility)
└── templates/
    └── template.txt (optional template)

Claude Skills实战:Java代码Review提效与MCP对比 - 图片 - 4

四、实战案例:用 Skill 生成 Java Diff Code Review 报告

下面是一个我自己在用的 Skill:只审查当前分支相对基线(master/main)的 Java 改动,但结合完整文件上下文输出结构化建议,最后生成 Markdown 报告。

这个场景非常适合团队在做 Java 研发时的 CR 流程:既聚焦 diff,又不丢失上下文。

---
name: java-diff-review
description: 仅审查当前分支相对基线(master/main)的 Java 代码改动,但结合完整文件上下文给出结构化建议与改进方案,生成 Markdown 报告并可打包输出。
allowed_tools:
  - Read
  - Grep
  - Glob
  - RunCommand
entry: scripts/java_diff_review.py
outputs:
  - reviews/java/java_diff_review.md
---

# 目标

在工作区内对 Java 文件进行差异化代码审查:只聚焦改动的 diff,但结合文件整体情况输出可读、可执行的建议,最终产出 `reviews/java/java_diff_review.md`。

# 使用说明

1. 工作目录需为 Git 仓库,并存在基线分支 `master` 或 `main`。
2. 运行入口脚本:
   - Python: `python3 .claude/skills/java-diff-review/scripts/java_diff_review.py`
3. 报告生成位置:`reviews/java/java_diff_review.md`。

# 审查范围与原则

- 只审查 Java 文件的差异(当前分支 vs 基线分支),但建议基于完整文件上下文。
- 输出包括:结构组织、可读性、可维护性、反设计模式/坏味道识别、性能与安全提示、具体修改建议。
- 建议以最小影响面优先,遵循优雅代码风格。

# 审查清单(参考)

1. 代码组织与命名:包结构、类/方法命名、单一职责。
2. 错误处理:异常类型、异常传播与日志、资源释放。
3. 可读性与复杂度:方法长度、嵌套深度、条件分支复杂度。
4. API 设计:参数数量、返回契约、空值处理与 Optional 使用。
5. 日志与监控:`System.out` 替换为日志框架;敏感信息不落盘。
6. 性能与资源:集合选择、流处理、I/O、数据库/网络调用。
7. 安全与稳健:输入校验、SQL/命令注入、线程安全、不可变性。
8. 测试与覆盖率:新增逻辑的单元与边界测试。
9. 编码风格:确保优雅且代码容易维护。
10. 代码行数:God class(文件超过 800 行)。
11. 代码行数:Long method(方法超过 80 行)。
12. Feature envy & data clumps(参数间重复组合)。

# 运行策略

- 自动探测基线分支(优先 `master`,否则 `main`)。
- 仅当 diff 存在 Java 文件时生成逐文件审查段落;否则输出结构化空报告与指引。
- 对每个改动文件:
  - 概览:新增/删除行数与变更块。
  - 重点问题:坏味道列表(例如广义异常捕获、`System.out.println`、长参数列表、魔法数、空值判定等)。
  - 建议与示例:给出修改方向与简要示例。

# 集成建议

- 在 Claude Code 中启用 Agent Skills 后,工作区将自动发现此 Skill
- 如需只允许本 Skill 运行特定工具,可在运行时限制为 `Read/Grep/Glob/RunCommand`

实际使用时,你会明显感觉到:它不只是“看 git diff 挑毛病”,而是能结合业务上下文与代码组织给出更可执行的建议,输出的报告也更适合在团队里复用沉淀。

Claude Skills实战:Java代码Review提效与MCP对比 - 图片 - 5

五、使用 Skills 的风险与边界(务必重视)

因为 Skills 可以执行脚本、运行命令,所以必须把它当成“可执行资产”来管理,而不是普通提示词:

  • 只使用自己编写或来自可信来源的 Skills
  • 上线/引入第三方 Skill 前,完整审查其目录下所有文件
  • 不要在 Skill 中写入敏感信息(Token、密钥、账号等),也不要包含高危命令

如果你在公司环境落地,建议把 Skills 纳入类似代码的管理方式(评审、版本、变更记录)。

六、Skills 能解决哪些真实问题(适合什么人)

Skills 的核心价值在于:标准化、自动化、提示词复用。它特别适合“流程固定但又需要人参与判断”的工作。

这里的“AI”更准确说是 LLM 驱动的协作能力:把团队经验固化成 SOP,然后稳定执行。

1)研发效率

  • 代码 Review:做成“代码规范 Skill”,批量检查命名、注释格式、安全隐患、坏味道等
  • 技术方案生成:根据 PRD/需求描述,结合现有项目代码,按团队模板输出可评审方案

2)团队协作

  • 新人上手:把新人指南、系统操作手册做成 Skill,新人一句话就能按流程完成复杂操作

3)数据自动化

  • 报表生成:上传 CSV 自动生成符合业务口径的数据分析结果
  • 日志分析:解析服务器日志,汇总异常、给出告警建议(可结合 DevOps 流程落地)

一些来自官方的使用数据(原文口径)

  • 使用 Skills 后,任务执行效率提升约 40%
  • 错误率下降 35% 以上
  • 平均交互轮次从 5-8 轮减少到 1-2 轮完成任务

七、思维要转:从“写提示词”到“设计流程模块”

以前我们更依赖精心设计的提示词,但很多沟通是一次性的:结果质量不稳定、知识难沉淀、提示词还要自己维护一大堆版本。

现在 Skills 更像进入了“流程设计”阶段:把重复性任务封装成可复用模块,让每次执行都遵循你定义的最佳实践。长远来看,效率的差距会越来越像“谁的 SOP 更标准、更贴合业务、更能持续迭代”。

参考链接




上一篇:HTTPS证书管理工具深度对比:平台上传(Certd)与脚本下载(httpsok)的选型指南
下一篇:MySQL碎片整理完整操作指南:识别、优化与预防实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:15 , Processed in 0.359089 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表