“ 智能体使用工具的本质——你告诉模型有哪些工具,需要哪些参数;而模型告诉你调用哪个工具,参数是什么。”
现在大模型智能体大行其道(agent),而且也是目前大模型的主流应用方向之一,甚至有人说智能体是实现AGI(通用人工智能)的技术手段。
但是,我们需要知道的是大模型和智能体的主要区别在于其是否会使用工具;就像哲学上人和动物的根本区别在于是否会制造和使用工具。
那么,到底什么是智能体?
其实说到智能体网络上有一堆讲述智能体的文章,并且有理论,有架构,有代码;但其实简单来说,智能体就是基于大模型具备类似人类的独立“思考”的能力,并能够使用工具解决问题。
所以,从应用的角度来说,智能体就是一个会使用工具的“人”——大模型。
那么,问题就来了,大模型是怎么使用工具的呢?其技术原理是什么?
大模型是怎么使用工具的
OK在前面说了智能体的强大之处是因为大模型独立的思考和规划能力之外,还有一个很重要的原因就是能够使用工具。
这时可能很多人就开始好奇了,大模型只是一个程序,它又没有实体没手也没脚,那它是怎么使用工具的呢?
其实大模型使用工具的原理很简单,因为大模型是通过“程序员”的角色来使用工具的,即大模型会编程,当然这里并不是说大模型写代码的能力,而是它能“看懂代码”。
在智能体中,工具是以函数的方式出现的;但什么是函数?学过编程的都知道,函数是一个具备特定功能的程序片段;而函数的定义是由函数的schema定义的,然后根据schema就知道函数需要哪些参数;而大模型的作用就是理解函数的作用,然后根据需求生成参数。
所以,智能体中大模型使用工具的本质是什么?
说白了就是,我们把工具也就是函数信息告诉模型,包括函数名称,功能,需要的参数等等;然后模型根据自己的理解,根据不同的业务需求构造合适的参数,之后再把结果输出出来——这里的结果指的是函数名,参数;也就是告诉我们,某个业务需要使用那个工具,参数是什么。
之后我们拿到函数名和参数(由模型输出),再调用编程语言的函数调用功能去执行并获取结果。
而这就是智能体工具调用的全部过程——简单描述就是你告诉模型有哪些函数,以及函数的功能和需要的参数,然后模型根据自己的理解告诉你需要使用哪个函数,然后参数是什么。就这么简单,具体函数怎么调用是你的问题和大模型无关。
所以这里我们要明白一件事,智能体中使用工具并不是说大模型有能力执行工具代码,而仅仅只是告诉需要执行哪个工具,以及参数是什么;至于具体的工具执行是由执行引擎执行的,而不是由模型执行的。
那爆火的与智能体高度相关的MCP协议又是干啥的呢?
其实MCP协议本质上和http协议类似,它是为了智能体而专门开发的一套协议,其主要作用是为了统一模型函数调用的标准。
在MCP出现之前,智能体使用工具是由模型生成参数之后,由具体的执行引擎负责函数的执行;但这里就有一个问题,不同厂商由于业务原因导致其调用工具的流程有所差别。
也就是说用你家的模型和他家的模型,可能你需要开发两套工具调用的代码,不但增加了技术成本还增加了资金成本。
所以MCP协议就出现了。
所谓的MCP协议就是一种网络传输协议,其专门为了智能体而设计的;其好处是,我不管你们工具是怎么调用的,也不管你大模型是怎么处理的;你只需要按照我的标准开发。
这时,你把模型生成的调用参数告诉MCP,MCP就可以把调用请求发到工具端,然后由工具执行完毕之后再把结果按照MCP的要求返回即可。
这样不但符合代码设计低耦合高内聚的原则,同时还能提供统一的标准,方便行业之间的交流。

