AI和大模型——AI应用发展过程
一、介绍
在前面介绍了很多AI大模型相关的知识点和概念,那么如何正确的理解它们并把它们整合起来从而更容易的理解其在应用中的作用呢?在前面已经对它们进行了横向的说明和分析,下面就对AI大模型的应用纵向发展综合分析一下。
二、处理自然语言
人类的终极梦想是什么?就是“奴役”机器而让自身完全解放。虽然说这个梦想还非常遥远,但总要向前前进,才有可能实现吧。那么第一步是什么?当然就是让机器能够懂得人类的语言。所以,程序员出现了,它们通过各种编程语言实现人类自然语言到机器可识别的“语言”——二进制流的翻译工作。但这种方式不得不说,成本太高了,他影响了人类对机器的使用,甚至有时候被机器所反制。
所以,AI大模型应用的第一步,就是解决自然语言的理解(输入)和反馈(输出结果)。这种和AI大模型的交互能力,是实现一切AI大模型应用的前提。当然,随着需求的不断发展,这个自然语言也在不断的扩展,它不但包括了人们正常认知的语言,也包括人类生成的各种文档、图片和音视频等资料。
而随着进一步的发展,人们发现,可以把在工业生产中的工作流(workflow)引入到大模型中,将输入和输出与AI大模型间增加一个工作流程机制,以便能快速的提高效率减少各种意外的处理。
三、Agent
但是很快,人们就发现,工作流有它的缺点。正如现实世界中的工作流一样,它一般只能应用于一些固定的场景或者说动态性性要求很低的情况下。但人类对大模型的应用是各种各样的,怎么办?
正如编程语言中说的,加个中间层。这样Agent就出来了。Agent它等于是在人类与大模型间增加了一个代理人,可以变相理解为它是一个自动的程序员,对人类需要的输入和输出进行决策、整合。通过对提示词或结果进行处理,将正确的信息输入到大模型,将大模型吐出的结果“翻译”成人类的自然语言并反馈结果。更重要的是,它可以通过函数调用(Function Call)和ReAct实现与AI大模型自动的进行多轮的处理,并达到人类最需要的结果。
四、MCP
到了Agent,基本上说人类与大模型的交互压力被减轻很多。但这又带来另外一个问题,Agent在Function Call和调用各种工具时,发现各种类型都有。这么说吧,有点大清时期为了建立新军,买了万国牌的枪械。这就导致了一个灾难性的问题,即使是同一类型的调用,可能接口都不一致,都需要开发者对其进行二次封装。而且AI大模型的不同,又会产生同样的调用也会再次封装一次。这样就形成了一个NN的映射,大量的工作纯属浪费。
这时,肯定有聪明的人就会想到,能不能把接口封装成一致性的,OK,太棒了。这就是MCP出现的背景。要想形成标准,就必须有标准的协议,这就是MCP,从而形成了标准化的接口调用流程。它有点类似于电脑中的可插拔USB接口,不管你是什么品牌、容量多大、速度快慢都可以自动进行识别并转换成标准协议。
通过MCP,实现了Agent驱动这些工具为大模型使用的一个标准的应用接口实现。MCP的出现,极大减轻了开发人员的负担,将NN解耦成了1:1,提高了效率。
五、Skill
但这随即又出现一个问题,MCP的出现又带来了开发门槛提高,需要学习各种MCP的内容;还有,许多现实世界中的需求和工具经常改变,MCP无法灵活的应对。特别是在专业级的大型企业和工业应用中,复杂的技术往往让开发者头疼。另外还有一个重要的问题,MCP如此重要,是不是Agent没啥大作用了?或者它只是一个MCP的简单的封装调用?
现在理顺一个问题,假设要造一个香肠流水线,怎么做?可以先搞一个切肉的机器,再搞一个粉碎的机器,再找一个搅拌的机器,再找一个塑形打包的机器,这不一条最简单的流水线就成了。而这些机器完全可以由1~N个厂家来完成,最后组装调试即可(当然实际可能没这么简单)。
Agent类似于流水线,它可以把专业性的问题和经验通过一定策略进行调用,并通过MCP实现对所需工具接口的调用,然后在人类和AI间中转处理。而这些专业复杂的问题就可以让专业人士编写成Skill供开发者直接调用即可。MCP只是Agent为了实现处理的工具所需的一环。
也就是说,Agent作为主导,进行更进一步的抽象,不再依赖开发者对具体场景的专业技能,而把这个专业的技术应用抽象为专业人士的文档或低代码(非常简单)调用。这样,不同的场景就会有不同的Skill,最终实现Agent的强大功能。另外Skill的出现,也解决了另外一个问题,就是一次进一次出的问题。而形成了一个循序渐进的过程,即前面讲的“渐进式披露”。通过从整体(目录)到具体(技术说明)执行的可控流程即动态的加载所需要的相关说明。
这样,Agent即可通过Skill获取整体的目录,又可以根据需要通过目录获取具体的说明书,然后利用MCP调用工具辅助实现所需。使得Agent真正的成为一个“智能体”。
当然,在此基础上的一定还会不断发展和进步。毕竟作为一个火爆的应用,变化之快,很可能让人无法想象。
六、总结
通过上面的分析,有过编程经验的会不会发现,它和编程语言如展过程中的单体程序到库到框架、各种数据接口和访问标准、状态机和自动机等有着类似的发展经历。也就是说,不管技术如何进步,技术处理人类问题的思想始终保持着同一个流程,这就明白为什么总是反复强调编程思想重要的原因了吧。
更多推荐




所有评论(0)