免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

Agent Skills 这篇文章真的讲透了,别再花冤枉钱了

发布日期:2026-05-14 07:22:06 浏览次数: 1571
作者:大象搞航天AI

微信搜一搜,关注“大象搞航天AI”

推荐语

别再为重复解释而烦恼,让Claude记住你的工作流!本文带你从零理解Skills,打造专属AI助手。

核心内容:
1. Skills的本质与价值:解决AI“无状态”痛点
2. Skills的构成要素:核心文件与资源目录
3. 制作与使用指南:三步创建你的专属技能

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
你有没有这样的经历,在使用 Claude Code 解释代码的时候,每次都要告诉它:解释关键参数的含义、介绍函数的大致逻辑。但是,当你重新打开对话框时,又需要重新输一遍这样的步骤。
这些问题的根源在于:Claude 默认是无状态的。每次对话,它都是一张白纸,不记得你经常做一件事情的固定步骤。
这就导致你花在「教 Claude 怎么做」上的时间,往往比它真正帮你做事的时间还多。
Skills 就是为了解决这个问题而生的。它让你把「怎么做」这件事写一次,之后 Claude 就会一直记住,而且在你使用关键字的时候自动调用。
本文将带你从零开始理解什么是 Skills,学会制作和使用它,让 Claude 真正成为懂你工作流的助手。


01


什么是 Skills?


简单来说,Skills 是你给 Claude 的一份"操作手册"。你把它写成一个 SKILL.md 文件,Claude 读到它之后,就知道在特定场景下该怎么按照一定的流程做事。
打个生活中的比方:你新雇了一位助理,第一天你花了两小时告诉他你的工作习惯——邮件要用正式语气、会议纪要要列行动项、报告要先写结论再写细节。
如果这些规则只是口头说说,下次换个助理又得重新教一遍。
但如果你把这些写成一份《工作手册》,任何助理拿到就能上手,你也不用重复解释。Skills 就是 Claude 的那份工作手册。
再打个比方,Skills 就是一个游戏中的连招,每当你触发这个连招的第一步时,后续的步骤固定执行。
但,这还不是 Skills 的全部!


02


Skills 如何制作?


在介绍 Skills 如何制作之前,先来看它有哪几个组成部分。
Skills 还可以包含示例文件、脚本和参考资源。可以类比一个知识专家,他有自己的工具、案例库和常用的参考资料。
技术上,一个 Skill 是一个可以包含多个文件的目录,但里面至少有一个 SKILL.md 文件:
my-skill/
├── SKILL.md        # 主指令文件(必须)
├── examples/       # 示例文件(可选)
└── scripts/        # 脚本文件(可选)
└── references/     # 参考资源(可选)
这里大概介绍一个每个文件或目录的作用。
SKILL.md 文件告诉 Claude 触发这个技能时,需要执行的步骤。在这个文件,你需要告诉大模型其它资源文件夹中的内容组成。
一个最简单的 SKILL.md 长下面这样:
examples 目录存放了供大模型参考的例子。
scripts 目录存放了大模型可以调用的脚本,可以理解为工具。
references 目录存放了大模型可以参考的资料,类似于人在写文章时需要参考其它资料一样。
下面这张图展示了 SKILL.md 是如何引用其它的资源和脚本的。
理解了 Skills 的组成部分,接下来看怎么自己做一个。制作过程分三步:创建目录、写 SKILL.md、测试。
第一步:创建目录
Skills 存放的位置决定了它的作用范围:
位置
路径
适用范围
个人
~/.claude/skills/<skill-name>/
你的所有项目
项目
.claude/skills/<skill-name>/
当前项目
如果是你个人常用的工作流,放在个人目录;如果是团队共享的规范,放在项目目录并提交到版本库。
例如,创建一个解释代码的 Skill:
mkdir -p ~/.claude/skills/explain-code
第二步:写 SKILL.md 的内容
在目录里创建 SKILL.md,写上配置和指令:
---
name: explain-code
description: 用类比和图示解释代码。当用户问"这段代码怎么工作的"时自动触发
---

解释代码时,始终包含以下四个部分:

1. 先打比方:用生活中的事物类比这段代码
2. 画个图:用 ASCII 图展示流程或结构
3. 逐步讲解:一步步解释代码做了什么
4. 指出陷阱:这里有什么常见误解或容易踩的坑?

语言要口语化,对复杂概念可以用多个类比。
name 字段是 Claude 可以检测到的名字,以破折号隔开,是一个好的命名。你也可以在 Claude 终端直接通过 /explain-code 进行调用。
description 字段很关键——Claude 靠它判断什么时候该自动加载这个 Skill。描述越贴近用户的自然语言,触发越准确。
顶部的 YAML 前置配置不仅可以是两个字段,还可以有其他的字段。目前,我们就掌握这么多。
当你创建之后呢,你可以在 Claude 终端输入 /skills 查看有哪些 skills 可以使用:
第三步:测试。
有两种方式触发 Skill:
让 Claude 自动判断,直接问问题:
手动调用,用斜杠命令:
/explain-code src/auth/login.ts
如果 Skill 没有按预期触发,检查 description 里的关键词是否和你的提问匹配,或者直接用 /skill-name 手动调用。

03


什么时候我该创建 Skills?

如果你经常遇到以下两个场景,那你就该考虑创建一个 skill,或者使用别人的 skill 了。
第一,提示词当中重复编写固定的步骤。如果你没有把固定的步骤流程化,你每次开新对话都要对 Claude 重新说一遍规则,这非常浪费时间。
第二,共享给团队。当你需要与团队的其他人共享你的工作流程时。
Skills 解决了这两个问题。你写一次,到处生效。把文件提交到版本库,整个团队都能用。
举个具体例子:假设你在做一个 API 项目,每次让 Claude 写接口都要提醒它遵循团队规范。有了 Skills,你只需要创建一个 api-conventions Skill:
---
name: api-conventions
description: 本项目的 API 设计规范,写接口时自动应用
---

 API 接口时,遵循以下规范:
- 使用 RESTful 命名约定
-统一错误响应格式:{ "error": { "code": "...", "message": "..." } }
- 所有入参必须做校验
- 返回 HTTP 状态码要语义准确(200/201/400/404/500)
之后 Claude 写接口时会自动应用这些规范,你再也不用重复提醒。


04


有哪些好用的 Skills?


自己写 Skills 固然好,但 Claude Code 已经内置了几个开箱即用的 Skills,覆盖了开发中最常见的场景。
  • /simplify:代码写完之后,用它做一次"代码体检"。它会同时启动三个审查 Agent,分别检查代码复用、代码质量和执行效率,然后汇总结果并自动修复问题。就像你写完一篇文章后请三位编辑同时审稿,效率比一个人逐项检查高得多。
  • /batch <指令>:面对大规模重构时的利器。比如你要把整个项目从 React 迁移到 Vue,手动改几十个文件既费时又容易出错。/batch migrate src/ from React to Vue 会自动分析代码库,把工作拆成若干独立单元,每个单元在隔离的 git worktree 里并行执行,最后各自提 PR。
  • /debug:当 Claude Code 本身出现奇怪行为时,用它读取当前会话的调试日志,帮你定位问题。
  • /loop <间隔> <指令>:设置定时任务。比如 /loop 5m check if the deploy finished 会每五分钟检查一次部署状态,省去你反复手动查询的麻烦。
我知道你想说,这些远远不够。


05


在哪寻找我想要的 Skills?


/find-skills,直接在 CC 的命令行当中输入该命令以及要寻找的 skills 描述:
在 Skills市场去寻找https://skillsmp.com/
在中国 SkillHub 上寻找https://skillhub.tencent.com/
实在没有找到满意的 Skills,那就只能动手自己编写了。

06


Skills 的工作原理

再来简单介绍一个 Skills 的工作原理。这样你在与朋友介绍时,不仅知其然,还能知其所以然。
不想了解这部分内容的朋友,直接划走,毫不犹豫!
了解 Skills 的内部机制,能帮你写出更有效的 Skills,也能在出问题时更快定位原因。
Skills 的加载分两个阶段。
第一阶段:描述加载。Claude Code 启动时,会把所有 Skill 的 description 字段加载到上下文里。这让 Claude 知道有哪些工具可用,但不会把完整的 Skill 内容都塞进去——那样会很快撑爆上下文窗口。
第二阶段:按需加载。当你调用某个 Skill(手动或 Claude 自动判断),完整的 SKILL.md 内容才会被加载进来,Claude 按照里面的指令执行。
这个机制解释了一个常见问题:为什么 Claude 有时候"不知道"某个 Skill 的细节?因为它只看到了描述,还没加载完整内容。手动用 /skill-name 调用一次就能解决。
Skills 还支持动态上下文注入,用 「!command」 语法在 Skill 内容发送给 Claude 之前先执行 shell 命令,把输出插入进去:
---
name: pr-summary
description: 总结当前 PR 的改动
context: fork
---

## PR 信息
- 改动内容:!`gh pr diff`
- PR 评论:!`gh pr view --comments`
- 改动文件:!`gh pr diff --name-only`

请总结这个 PR 做了什么,以及潜在的风险点。
这里的 「!gh pr diff」 会在 Claude 看到这段内容之前就执行,Claude 收到的是真实的 diff 内容,而不是命令本身。这是预处理,不是让 Claude 去执行命令。

07


Skills 与斜杠命令和 Sub-agents 的区别是啥?

用过 Claude Code 一段时间后,你可能会发现三个相似的概念:Skills、斜杠命令(slash commands)和 Sub-agents。它们都能扩展 Claude 的能力,但定位不同。
斜杠命令是 Skills 的前身。早期 Claude Code 用 .claude/commands/deploy.md 这样的文件定义自定义命令。现在这些文件依然有效,但 Skills 是推荐的方式——Skills 支持目录结构(可以放辅助文件)、frontmatter 配置(控制调用方式)、以及自动触发。如果你有旧的 .claude/commands/ 文件,不需要迁移,它们会继续工作;如果同名,Skill 优先级更高。
Sub-agents 是独立运行的 AI 实例,有自己的上下文和工具集。你可以把它理解为"雇了一个专门做某件事的临时员工"。Sub-agents 适合需要隔离执行、不希望污染主对话上下文的任务。
Skills 则更像是"给当前员工的培训材料"。它在主对话上下文里运行,Claude 读完 Skill 的指令后,结合你们的对话历史来完成任务。
两者可以结合使用:在 Skill 的 frontmatter 里加上 context: fork,这个 Skill 就会在一个 Sub-agent 里运行,既有 Skill 的便捷定义方式,又有 Sub-agent 的隔离执行环境:
---
name: deep-research
description: 深入研究某个话题
context: fork
agent: Explore
---

研究 $ARGUMENTS:

1.  Glob  Grep 找相关文件
2. 阅读并分析代码
3. 总结发现,附上具体文件引用
简单来说:Skills 定义「怎么做」,Sub-agents 决定「在哪里做」。大多数情况下,普通 Skill 就够用;当任务需要大量文件读写、可能干扰主对话时,加上 context: fork 让它在 Sub-agent 里跑。

08


小结:从重复劳动到一次定义

回到开篇的问题:每次都要重新教 Claude 你的工作习惯,这件事本身就是一种浪费。Skills 的核心价值,是把你的经验和规范沉淀成可复用的资产。
你花在写第一个 Skill 上的时间,会在之后每一次对话里得到回报。更重要的是,这些 Skill 可以提交到版本库,成为团队共享的知识库——新人入职,拿到代码库就拿到了团队的 AI 工作流。
从一个小 Skill 开始:把你最常重复告诉 Claude 的那句话,写进 SKILL.md。你会发现,让 AI 真正懂你的工作流,其实并不难。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询