Dify接入Skill【开源】:从AI交互模式发展看工作流,智能体,MCP,Skill
引言
Hello,大家好,欢迎来到元视界,最近Skill非常的火,我也是花了不少时间深度研究了一下
为了让大家更好的明白Skill是一个什么东西,我开发了一个插件,把Skill功能植入了Dify,那么今天,我就通过一个非常简单而全面的案例,让大家直观的感受到底什么是Skill,同时,也把这个插件免费开源分享给大家,共同学习。

一、准备一个Skill素材
Skill是什么?
不说多的概念,Skill是啥?就是一个文件夹,看下图,我建立了一个名为“笑话大王”的文件夹,文件夹下面有一个SKILL.md文件,一个Reference文件夹,Scripts文件夹,我想让大模型给我讲笑话的时候用这个技能来给我讲。

SKILL.md:是一个文档,他就是一个说明书,内容是单纯的文字。
Reference:是一个文件夹,里面放了两个冷笑话和段子的参考文件。
Scripts:是一个文件夹,里面放了两个py代码脚本,一个是生成txt的,一个是生成md。
以上这些合起来就是一个Skill了。
有什么用?
这些文件建立好后,我就可以树立一个规则了,我把这个规则写在Skill.md文件里面
我说:如果用户想要听笑话,你得按我这个“笑话大王”的skill来执行,你得先确定用户想要听冷笑话还是段子?不确定则询问用户,确定了再往下一步走
-
如果是冷笑话,你得参考Reference文件夹下面的冷笑话.md文件,按里面的风格写笑话,写好后再调用Scripts下面的txt.py脚本生成一个txt文件。
-
如果是段子,你得参考Reference文件夹下面的段子.md文件,按里面的风格写段子,写好后再调用Scripts下面的md.py脚本生成一个md文件。


-
这样,当我们讲笑话的时候,Agent就会按我们这个“笑话大王”的技能包来执行任务了。
好处是啥?
大家先知道一个好处,精准控制,这种方式叫渐进式披露,一点一点的给AI线索,让它按规矩办事,每次给的东西更精准了,需要啥给啥,执行力更强,而且省Token。
更大的好处我们后面会讲到。
二、在Dify中使用
我开发了一个skill_agent插件,里面有两个工具,一个是技能管理,用来上传技能包的,一个是skill_agent,可以调用技能包,按渐进式披露的方式执行任务的Agent。

搭建好后的工作流如下:

上面那条分支是管理技能的,我们需要把Skill文件夹压缩为一个zip包,然后上传,输入新增技能就把技能包传上去了

下面那条分支是智能体对话的,我们让他讲一个笑话,它就会去读取技能包的说明书,并按规则行事。

这样就同一个插件使得DIfy具备skill技能调用的能力了!
三、从AI应用发展模式看技术进步
所有新技术的出现都是为了解决之前遇到的问题。
站在这个角度我们会更容易理解,工作流,智能体,MCP,Skill是什么。
1.自然语言对话

最开始大模型出现的时候,我们人和大模型的交互大部分都是对话形式的,所以经常被用来做知识问答,翻译。
2.工作流

后面,大家对于光是对话越来越不满足了,光是生成文字似乎没啥意思,能不能帮我干一些活呢,大模型生成的内容是不是加上一些代码处理,直接给我生成word,ppt等,后面我们大部分用AI就是这种大模型+工具的方式了,这也是我们常说的工作流。
3.智能体

基于工作流的发展呢,大家写出了很多的ai工具,可以做的事情变多了,但是,大家都知道这种方式是写死的,其实大模型并不知道整个过程,自己还是负责和人交互,生成内容,生成后的内容被如何处理是不清楚的,这样就显的不聪明,如果聪明一点的话,可以实现的场景就更多了,比如AI可以自由使用和组合工具,先生成word再生成ppt等,于是智能体就出现了,只需要给智能体一堆工具,它根据人的需求自行理解用哪个工具来处理,并参与整个过程,知道工具的执行结果和下一步怎么做,这里用到的关键技术呢就是function call。
4.MCP

但那时候大家都没约定按什么样的固定格式来定义function call,阿里的,字节的,open ai的都不一样,这对于开发工具的人来说那就麻烦了,“这怎么玩?难不成一个工具要开发个N遍?”,于是,MCP出现了,开发工具的人只需要按照MCP协议去对外暴露自己的工具配置信息就可以了,Agent框架可基于这个配置去获取工具信息和参数,来自动注册到自己的function call里面,这样就把模型商和工具开发之间的桥梁给搭起来了。

5.Skill
那么按理说,有了MCP这样的桥梁,AI生态应该很快就发展起来才对,但实时也并非如此,再所有发展的这条路上,所有的目标都指向一个,那就是让更广大的群体都能用上更方便,好用,能解决问题的AI。
MCP刚出来的时候的确比较火,工具生态也建立起来了,但在实际落地应用中仍存在许多的问题,见下图。

通用Agent+skill在这方面又进了一步,当主体回到Agent本身之后,拓展性就变强了,且技能包可以自行维护,能够快速调整。
而且,在以前我们开发Agent的时候,比如说我要接入100个工具,那就要注册100下,告诉大模型有哪些工具,现在大模型只需要具备查看说明书,查看资料,执行脚本这三种通用能力就可以了,技能可无限拓展。
以上是通过一个发展的历程让大家来感受这个过程,知道为什么是这样,而且这也不是终点,还会进一步的发展,直到那个每个人都可以用AI实实在在的解决问题的场景出现。
资源获取与交流
演示视频:https://www.bilibili.com/video/BV1iszkBCEes
资料获取:关注公众号,后台回复“skill智能体”,插件+DSL+笑话大王skill,全部都可以获取~
欢迎大家添加我微信,进群学习交流~

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)