我们开发了三个Skill工具:github-to-skills为技能注入GitHub身份信息;skill-manager管理本地技能并监控版本更新;skill-evolution-manager通过外挂存档实现技能自动迭代。三者协同,让技能库实现全自动化管理和持续进化。
很多小伙伴直呼 打开了新世界的大门。
但是,也有很多眼尖的、动手能力强的小伙伴,在评论区提出了非常犀利的问题:
比如把Github项目打包成Skills一时爽,后续维护全是火葬场。
手动去查更新?手动去改文档?手动去把好不容易积攒的Bug修复经验填回去?
这真的有点显得太呆逼了。
这三件套,再加上Claude官方的那个Skill-creator,这四个SKill,直接解决了我所有Skills的增删改查还有迭代升级功能,让Skills库,实现真正的全自动化管理和自我进化。
我们搓的这三件套,分别是:
github-to-skills:专用的Github项目转Skills的Skill。
skill-manager:一个专用的管理本地所有SKills的Skill。
skill-evolution-manager:一个能将过程中的对话和经验,自动以外挂的形式,对某Skill进行迭代升级。
话不多说,老规矩,先看效果。
我现在本地有一堆Skills,比如上次那个下载视频的神器 yt-dlp。
因为很多的Github上的项目,也一直实在动态更新的,我肯定是希望,我们本地的Skills,也是可以根据他们仓库的动态,实现自动更新的。
而现在,我只需要对着OpenCode说一句:
帮我检查一下所有的Skills状态。
下一秒,一个清晰的报告就甩在了我脸上:
可以看到,截图中的两个Skill,有两种状态。
company-claude-skills的状态:过期。
yt-dlp的状态:最新。
而现在,我们只需要说一句:
开始升级,它就会自动去Github拉取最新的代码,重新构建Skill文档。
GitHub 更新了,旧版的SKILL.md不就被覆盖掉了,那我平时调教Skills优化不断迭代的各种修改和经验不就直接也没了吗?这特么不是巨坑吗,完全用不了啊。
你说的对。
因为我自己用Skills,在运行的过程中,难免会出现一些BUG,而这些BUG其实都是这个SKill的经验,理论上下一次运行,是完全可以避免的,所以我经常会在跑完之后,把这个聊天过程,让Skill-Creator,重新根据整个对话记录,把这些经验,写入到原来的SKill里,让这个Skill,变得越来越牛逼。
比如我之前这个yt-dlp的Skill,第一次报错并就解决以后,就根据聊天记录,让它自主的修改迭代了一些东西。
当SKILL.md被新版本覆盖时,它便会发挥它的作用,将存档里的经验,重新注入回到Skill.md里。
效果如下:
全程几十秒,不用我动一下脑子。
我发现之前用的官方skill-creator,虽然能打包,但是它生成的 SKILL.md文档里,没有关于GitHub的相关数据。
这就好比你去超市买东西,商品上没条形码,你咋盘点库存啊对吧。
对于后续的Skills管理器来说,它去扫描这些Skills的时候,根本不知道这玩意对应Github上的哪个仓库,更别提对比版本了。
如果强行去扫去匹配,失败率极高,效果极其不稳定。
所以,这三件套的第一个解决方案,自然就是需要对SKills生成器开刀,也就是,要针对SKIIL.md元数据头下手。
我魔改了skill-creator,做了一个github-to-skills。
它的功能也很简单:在打包Github项目的时候,强制注入一些关于github的信息。
这个信息包含这两样东西:
github_url:它从哪来的。
github_hash:它是哪个版本。
这样,每一个经由这个github-to-skills产出的Skill,都自带了身份ID。
可能还有的人没明白这样设计有什么用,对我们后续管理有什么帮助,直接上图对比,大家应该就可以明白了。
这事原版Skill.md里的信息。
这是改进后的SKILL.md里的信息。
你会发现,多了东西。
而这个,就可以非常简单的,跟后续的Github仓库更新进行关联了,并且可以用哈希值进行版本号对照。
相当于,我们给每个SKill,都做了一个身份系统。
有了身份ID,后续的自动化管理,才有了可能,可以这么说,它就是整个系统的地基了。
而之所以为啥这个github-to-skills和原有的skill-creator共存,其实特别简单,因为不是所有的Skills,都是封装的Github项目,还有很多,是我们自己经验和工作流,这种其实没必要注入Github的信息了。
有了身份ID的Skill,接下来就是重头戏了,skill-manager。
这玩意就是你skills的大管家,负责你所有本地Skills的管理和更新。
它的功能有这些。
1. Skills查询:主要是最近不管是学习还是测试,经常装的Skills太特么多了,常年看着一堆文件夹,我都忘了这些Skills到底是干啥的。。。
不过现在通过这个skill-manager,它可以直接给我吐出一个好看点的表格,列出所有Skills的类型、描述、版本,而且是可以自己区分哪些是GitHub打包的skill,哪些是正常的skill,真就是可以列出我所有家底。
最终的结果中,如果输出的对应状态为过期,那就说明需要更新对应的Skills了,若为状态为最新则说明无需更新。
3. Skills管理:一个非常简单的小功能,就是...如果有不需要的或者用不上的,可以用它,来一句话直接删除。
这个小Skill,非常的有用,相当于我们以前的Mod或者插件管理器,只不过把更新迭代的过程也放在了对话里。
我个人认为,还是非常方便的。
现在经常打开OpenCode,没事就先扫一遍Skills是不是有更新,然后再开始干活。
你可以理解错,这个Skill会在对话的时候,会默默记笔记,Skill哪里搞砸了、哪里需要改进,它全记在小本本上。
对话结束,它把这些经验保存到一个叫evolution.json的文件里,然后写进Skill.md,下次再遇到同样的坑,Skill就会直接绕过,一坑不踩两次。
说真的,我一直觉得,这才是真正的自我进化,也可以理解为我们常说的复盘。
https://github.com/KKKKhazix/Khazix-Skills
如果有大佬们有更好的思路或者更棒的写法,也欢迎交流。
因为我们也在不断的学习中。
只是,我觉得SKills真的是一个伟大的时代。
所以,在不完美的情况下,依然还是想跟大家分享一下我们的思路和玩法。
只希望,能对大家有一些小小的帮助。
那我们,也就。
心满意足了。
谢谢你们看我的文章。
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。
>/ 作者:卡兹克、林机梦逗
>/ 投稿或爆料,请联系邮箱:wzglyay@virxact.com
没有评论:
发表评论