type
status
date
slug
summary
tags
category
icon
password
仓库地址

前言

2周前,claude在GitHub上公开了自己的Skills库(我们的AI大佬又开始教我们怎么用AI了,还不抓紧学习)
 

以下内容基本上是参照官网的提示,并掺杂一些自己的理解来输出的,如果不需要这个,可以直接查看官方的GitHub和原文去理解

 

什么是Skills

我的理解就是:上下文、context。你给他一堆东西,他自己去这堆“东西”里面找自己需要的东西,来提高最后输出的表现。这堆“东西”可以是指令、脚本、资源(图片,文件)文件夹。然后通过这堆“东西”来教会Claude怎么循环处理来生成我需要的内容,比如生成文档、特定流程分析数据。
 
claude的回答是:Skills是一套预先准备好的实践指南,帮助他更好的完成特定类型的任务

他是如何工作的

SKills有三个主要的优势:
  1. 一致性:每次做同类型的操作都能保持相同的标准来返回
  1. 速度:不需要反复试错,直接使用已经验证过的方法
  1. 性能:输出的结果更专业、更符合预期
还有一个关键的工作方式:渐进式披露
  • 不会一次性加载所有信息,会占用非常多的上下文
  • 根据具体需求,只读取对应的skills文档
  • 好处:即获得了专业的指导,又避免了信息过载
 
就跟各种说明书一样,需要的时候才会到对应的地方查看说明书,自己不会去记很多东西,要不然你根本想不起来,光背那些东西,就已经很头疼了。
 

技能类型

Anthropic Skills

官方自己创建和维护的技能,包括Excel,word,ppt和pdf文件的创建,并且claude会在需要的时候自动创建
 

Custom Skills

这个是自己或者自己组织为特定工作流程和任务创建的技能。它罗列了很多:
  • 生成ppt
  • 按照电子邮件模板生成回复内容
  • 整理会议记录(按照公司特定格式)
  • 使用公司特定工具创建任务(跟我们没关系,一点儿用处都没有)
  • 执行特定数据分析流程
  • 自动化工作流程,定制claude来适应工作风格
 

主要优势

  • 提高特定任务的表现,补充他不知道的知识来提升专业化的能力
  • 组织/公司整合,让整个公司都可以通过skills实现最佳实践
  • 快速便捷的定制,通过markdown指令创建技能,实现更高级的功能
 

比较

当AI的几种功能:MCP,自定义指令,context/init markdown
MCP:这个最近可火了,可惜之前没上车,不过也不遗憾,用到现在觉得最好用的就是context7,其他的MCP可能在工作中会比较好用吧,比如公司最近用的AntV的MCP来生成echarts
自定义指令:他是应用在你所有的对话中的,就类似于我自己创建的typescript.md&react.md 这种,会再被调用的时候就提交到对话里面给AI使用
context(项目):始终加载,静态的背景知识或者项目背景,比如AGENT.md
 
 

如何书写Skills

官方的仓库地址已经写在最上面了,案例自行查阅

 

Skills头部

我们首先要了解,Skills是什么,说明书,所以说明书需要目录和摘要,所以最简单的结构就是
这个就是头部的描述了,其中很重要的一点就是,description里面需要存在你到时候需要调用的关键词。但是注意:这个始终都会存在在context里面,所以尽可能在100字以内
 

编写Skills

你要知道,在你新增/编辑一个skills的时候,这个skills都是agent服务的。所以你的内容需要考虑到有哪些系统知识相关(代码)细节或者资产能帮助agent更有效的执行这些任务。
 
上面提到了,他可以做一些重复性的动作、获取你的资源、根据你提供的内容来调整所需要的内容,那么你可以创建scripts/assets/reference/ 等文件夹来存放你需要的内容。
  • scripts: 需要确定性和可靠性的时候/反复重写的可执行代码
    • 里面存放你需要的脚本,官方推荐.py.sh文件,当然这个看你自己存放,js脚本应该也是可以的,我自己写的skills里面不需要这些内容
    • 可以节省token,具有确定性,可以在不被加载到token里面直接执行,它知道这个工具的作用,直接调用就可以了
  • reference: 根据需要加载到上下文中的文档和资料,指导agent思考
    • 使用场景:数据库架构、API文档,领域知识、公司政策、工作流程指南,存放你给他的资源,可以是json,xml文件等等。
    • 可以保持skills整洁,尽在需要判断的时候添加加载内容
    • ⚠️注意:Skills和reference里面不应该同时存在相同信息,否则skills会过于冗余,不让信息容易发现,否则会占用过多上下文
  • assets: 文件不是为了加载到上下文的,是用于生成中的,比如logo,模板,字体等等
    • 将输出资源和文档隔离,允许在不加载当上下文中的时候使用文件,减少上下文
 
理解了整个文件的结构以后,我们就可以开始skills的编写了
 
理解你的技能具体是做什么的
清楚了解你要的实例,明确这个skills的功能,可以通过自问自答来解决。
  • 这个功能是做什么的
  • 使用这个skills举两个例子
  • 我会说什么话来触发这个功能
 
我有什么内容可以复用的
如果我从零开始使用skills,我需要哪些内容,是否需要写一个重复的脚本
我有没有重复的模板react/html,有没有重复的脚本(py,sh)等等
 
创建我们的Skills
终于到这一步了,可以开始创建我们的skills
我们按照一级标题,二级标题,三级标题来内容
把我们刚刚思考的内容写到Skills的正文里面,至此,Skills的部分就写完了
 
那除了skills还有啥,我们还是scripts/references需要写
这个就不需要展开了,scripts里面写你在skills里面让他调用的脚本,比如你再基础实现里面添加描述:当需要xxx的时候,使用~/.claude/skills/templte_skills/scripts/test.py 这样就可以了。
reference呢,复制一份你之前写过的案例,使用markdown写一遍
只要放在对应skills里面的,他就会在需要的时候来查看对应的示例,只要你的markdown结构清晰就可以
 
这里只是给大家写一个思路,如果有不懂的,不明白的,可以直接去问官方claude、chatGPT等等,他们都可以帮你们写一个比较完善的skills。
 
不过需要注意的一点,claude系原生会导入skills目录(.claude/skills)但是其他的不会,所以你需要在你的agents.md等等需要的位置,对skills进行标记,这里给大家贴一下我的使用方式
 
 
至此,通篇结束。希望或多或少的可以帮助到你,希望你今天也可以Happy Coding.
 
 

补充:
早上忘记写了,skills可以配合mcp使用,不管是你调用的还是还是自己写的,肯定都会有tool_name
举例:
同样的,关于数据库的,context的,charts的都可以使用