家人们,
最近真的有点子无聊。
没有牛逼的模型和产品发布,
于是开始研究Anthropic之前推出的skills。
谁叫这玩意发布的时候,
我还在南半球浪呢。。。
然后,
正好刷到了腾讯的codebuddy 也支持了skills。
但是在开始之前,想先弄清楚一个问题
skills 看上去和 MCP 作用很像,
那它们到底有什么区别?
后来,经过我多方对比和理解,
发现它们最核心的区别是在定位上。
skills,顾名思义,是技能。
拿我们人来做类比,
就是能画画、上网查资料、写报告等等,
这些都叫做skills。
以markdown文档的形式存在文件夹中,
仍然没有跨出Claude的沙箱。
而 MCP,顾名思义,是一种协议。
正是这个协议的存在,
可以让模型去访问外部的服务。
这张图在当时MCP火的时候,
都盘的包浆了得。
明白了这两个比较核心的区别之后,
也可以使用codebuddy code 来试试自己定义几个skills 玩玩。
鉴于我是写skills的新手,
以及本着能让AI写,绝不自己动手的原则,
我先克隆了Anthropic 官方的skills 示例到本地。
mkdir - p ~/.codebuddy & cd ~/.codebuddy
git clone https://github.com/anthropics/skills.git这样,你就在本地手动配置好了这些skills。
你也可以通过下面这个方式检验是否配置成功,
如果能读取到有哪些skills,
就说明配置成功了。
当然,还有一种配置方式,
会让你看上去更酷一点,
通过/plugin 命令,
然后选择Add marketplace,
输入仓库名称,
来载入skills 库。
但是,
这些skills 毕竟都只是示例,
我的目标是定义一个属于自己的skill,
所以我先随便找了个文档示例,
问codebudy code是怎么设计的。
然后,
就可以让codebuddy code根据这个文档示例结构,
再结合需求,
来生成相应的skills 文档。
比如,
大家一定见过各种各样,
非常火的信息图。
我甚至都不知道为啥
这玩意现在在x上火到不行,
几乎大家转发个东西,
一定得配个这种图。
所以,我也凑了个热闹,
做了个像下面这种的:
但是生成这样的信息图的工作流有个问题,
最方便的情况下,
我都得做个Gem 在Gemini APP 上,
但即便如此,
还得手动上传文档、打开Gemini 网页等等
总归也不是很方便。
这个时候,
skills的用处就显现出来了,
因为终端是每天必开的,
文件本身又在本地,
而且有什么问题,
可以直接让codebuddy code帮你改。
把这东西做成skills,
每天的复用率肯定会更高。
制作方式也很简单,
直接跟它说,
按照skills中的文档格式要求,帮我创建一个信息图内容提取变成信息图的skill, prompt如下...
它咣咣一通操作之后,
你就可以在~/.codebuddy/skills/
这个路径下看到它给你做的新的skills了。
让我来试验一下效果,
回看它的执行过程的时候,
发现,
codebuddy code 在读取pdf文件的时候还用了Anthropic官方的pdf skills
所以,
其实我们也可以将多个skills组合在一起来使用。
最后,生成的结果如下:
对比前面那张示例图,
整体风格还是很统一的。
说明,
codebuddy code帮我们改写的这个skill 还是相当成功的。
现在,
让我们来看下,
它到底是如何写这个skill的:
通常来说,
在一个skill中,最最最核心的是
skill.md
这个markdown文档。
至于assets 和reference分别代表输出文件和参考文档。
而在这个skill.md中,
开头一定要按照格式,定义好skill的名字和描述。
剩下的部分就可以自由发挥了。
除了上面这个信息图是我日常经常会用到的之外,
我琢磨了一下,
还有一类工作我觉得也特别适合转换成skill来做。
比如,
各个模型厂商都有API接口的定义,
而我每次都要翻接口文档,
通常来说,翻了一遍还不够,
就算当时记下了,
过了一个时间段就又忘记有哪些参数定义了,
postman 这种工具又实在对我这种编程小白来说不是很友好。
所以,
写成skills是比较合适的选择。
比如,
我选择把即梦 4.0 的API包成了一个skill。
操作方法很简单,
去火山引擎上,找到即梦4.0的相关文档,
然后,把这些文生图、图生图等等不同的curl贴给codebuddy code,
让它给你写成skill就行。
这次它比较牛逼的是,
还帮我写了执行的脚本scripts,
甚至相关的图像生成的提示词指南也写好了。
反正这玩意写得肯定是比我强。。。
我其实不太觉得codebuddy code 只是一个简单的写代码agent,
相反的是,我一直认为,
它既然能写代码,就也能写文字,
它既然能联网搜索外部信息,就也能读取本地的文件系统,
而现在,
通过skills, 可以更进一步让它进化,
只要你想,
它就可以做任何事,
音视频、图像等等等等都能做,
感觉万物都可以变成这个agent的skills,
我们从单纯地请求它做事,
变成在教它新的、可沉淀的能力。
想想还觉得挺酷的,
不是吗?