axb的自我修养 26-02-03 01:56
微博认证:微博原创视频博主

最近花了些时间扩展了一下wegent里的skill机制,先说一个。

传统的skill和mcp是平行的关系,在claude code新推出的插件机制里这俩也是并列的存在。

但是我总觉得,没必要把skill和mcp做成两种机制。

skill本质上就三个能力:

代码拆分:skill可以独立于agent开发和分发,也就意味着skill开发者不需要有agent开发能力。

动态加载:默认情况下只给模型摘要信息,加载后再“展开”skill提示词。

附加文件:skill可以携带附加的文档和脚本,供大模型调用。

这三个能力很好,但是有个问题:

如果一个能力需要用到某种远程资源,目前的skill不能描述这个信息,需要通过plugin来描述。而plugin里的mcp的生命周期和skill又是不同的,就造成了skill可以按需加载,但mcp只能静态加载的问题。

在一些极端场景中,为了某个不怎么常用的偏门技能,可能需要加载一堆静态mcp资源,性价比很低。

因此wegent给skill的metadata做了个扩展,支持直接在metadata里面配置mcpserver,并且对上下文做了些改进,让skill相关的mcp工具随着skill的激活而激活,而不是每次都发给模型。

目前这个机制还在测试,从初步测试的效果来看,对于无需加载skill的任务会有一些帮助,毕竟少了很多无关的干扰项。

但是我始终没想明白为什么官方skill和mcp是两套机制,是不是我的理解肤浅了……[流汗]

发布于 北京