Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >聊聊 MCP:工具使用的平权时代?Function call 时代结束?MCP 化的难点?多 Agent 的问题解法?

聊聊 MCP:工具使用的平权时代?Function call 时代结束?MCP 化的难点?多 Agent 的问题解法?

作者头像
深度学习与Python
发布于 2025-04-11 05:46:36
发布于 2025-04-11 05:46:36
1080
举报
作者 | 赵钰莹

4 月 9 日,阿里云在北京召开了 AI 势能大会。在大会现场,阿里云智能集团资深副总裁、公共云事业部总裁刘伟光现场宣布百炼上线业界首个全生命周期 MCP 服务,无需用户管理资源、开发部署、工程运维等工作,5 分钟即可快速搭建一个连接 MCP 服务的 Agent(智能体)。百炼平台首批上线了高德、无影、Fetch、Notion 等 50 多款阿里巴巴集团和三方 MCP 服务,覆盖生活信息、浏览器、信息处理、内容生成等领域,可满足不同场景的 Agent 应用开发需求(体验可点击:https://bailian.console.aliyun.com/?spm=5176.29619931.J__Z58Z6CX7MY__Ll8p1ZOR.1.74cd521ccuvANG&tab=mcp#/mcp-market)。

又是 MCP!这个最近频繁被关注、被讨论的协议。

MCP 的英文全称是 Model Context Protocol(模型上下文协议),这是由 Claude 的母公司 Anthropic 推出的一项开放标准协议。官方解释是“其目标是为大型语言模型提供一种开放、标准化的方式,以便与外部数据源、工具和服务进行连接。”简单理解,MCP 相当于大模型领域的“HTTP 协议”,其并不绑定任何大模型,这意味着用户可以在支持 MCP 的工具中,用任何大模型调用 MCP 服务。

在 MCP 爆火之前,Function Call 函数调用模式也被众多开发者广泛采纳。由于不同厂商对于 Function Call 的标准、优化方式和迭代路径均不统一,开发者可根据规则自由定义函数和 API 调用方式,这其中就会出现不通用的问题,导致普及困难且需要重复开发,这再次凸显了 MCP 标准化的重要性。即便是不支持 Function call 的模型,开发者都能够通过 MCP 协议的方式来调用任何一个服务,而这也让我们进入了工具使用的平权时代。

1 MCP 爆火:其最大的价值之一是让工具使用平权化

DeepSeek 的爆火被很多媒体认为是开启了“AI 平权”的新篇章,MCP 的出现则给我们带来了工具使用的平权化。以阿里的 Qwen 系列为代表的开源模型,其表现出来的深度推理能力越来越强,这也让模型逐渐具备使用复杂工具的能力。在 Function call 时代,不同模型的插件 Function call 使用是闭源的,MCP 则解决了这一问题。

对于工具提供者来说,一个工具通过 MCP 协议可以被更广泛的集成,这极大提升了工具的供应范围。对于模型提供商来说,其上的工具 / 应用生态会极大繁荣,用户可以利用这些工具 / 应用来解决更复杂的问题。

随着 OpenAI、阿里云接连宣布在产品中集成 MCP 协议,我们可以预见未来将会有更多厂商加入。那么,工具平权之后,这些厂商彼此之间的差异性会体现在哪里呢?

从应用视角出发,我们可以将 MCP 理解为相对底层的服务,其下就是云服务,其上就是模型层。模型层有一个很重要的工具是模型选择工具,其结合用户请求选择 MCP 并将其运行完成,再通过加工处理的方式给到用户结果。最上面一层就是目前大家现在常说的 Agent。在 MCP 之前,由于每家产品的 API 集成都千差万别,这意味着 Agent 的开发者需要做大量的定制集成工作,MCP 的出现也让我们看到了 Agent 生态越来越繁荣的可能性。

如果结合上述分层来看,除 MCP 之外的每层都是可能出现差异性的。在媒体采访环节,阿里云百炼高级产品专家徐志远表示,Agent+MCP 落地有两个非常关键的问题:一是模型本身的能力是否足够,比如是否支持深度推理,是否能对复杂的任务和工具进行调度;二是 MCP 的服务是否能稳定、可用、高效的提供。

基于此,MCP 服务本质上映射的是各软件厂商、工程厂商以及工具提供商的 API 服务,所谓的 API 服务最基础是 host 在云上,因此阿里云未来会提供更坚实的云基础能力和弹性化的 MCP 能力,让所有软件厂商提供的 MCP 均可以实现高效供给。此外,阿里云将通过弹性、按量计算和出色的调度能力让用户实现“即点即用的 MCP 服务供给”,大幅降低供给成本。

有供给就会有消费,MCP 也是一个双端的故事。这里的消费就是 Agent,阿里云百炼平台为用户提供了端到端的 Agent 构建能力,可以帮助用户快速将应用转化成 Agent 的方式,相当于将 MCP 的应用搭建的完整流程在阿里云的平台内实现了闭环,来帮助 MCP 服务最终落地。

2 MCP 很火,为什么很多软件的 API 接口依旧没有 MCP 化?

既然 MCP 听起来是一个很不错的故事,为什么还是有很多软件的 API 接口没有 MCP 化呢?

在今天,我们与各类 AI 工具交互时最喜欢的方式是什么?我相信大部分人都会选择自然语言的方式,只需要输入文字指令,AI 工具就可以自动流转,这是对用户而言最简便的方式,但过去的很多 API 接口只是接口,并没有转换成容易被理解的文本形式。比如,我们告知模型,“当用户查询天气时调用 A 接口”和“这个接口可以查询天气,你可以通过三种方式完成天气的查询,继而完成 x 项任务”这两种表述模式存在很大区别。

怎么理解这种区别呢?作为一个 APP,高德比较常用的方式是地图导航、打车等。当高德 MCP 化之后,用户不需要繁杂的资源部署和运维工作,且无需编写代码让大模型调用和接管工具,直接在百炼平台上选择通义千问大模型和高德 MCP 服务,即可快速搭建一个具备城市旅游美食规划的 Agent 应用。该 Agent 不仅能完成基础的地图信息查询任务,它可根据用户需求查询目的地天气、规划一日游行程、搜索美食店铺推荐、导航或打车到对应店铺等,真正意义上实现了 AI 和真实世界的交互。

因此,当软件进行 MCP 化时,第一个难点就是判断清楚其 API 接口和服务对于模型的价值如何更好地表述出来,用户从模型视角会如何使用这项服务,这也是 Software for AI 的设计思路。第二是如何 MCP 化,包括但不限于语言化以及更多清晰的 schema 定义。基于此,MCP 化是需要一定时间来实现的。

3 多 Agent 当前的问题不能寄希望于 MCP

随着用户对 Agent 逐渐产生感知,多 Agent 协作也成为大家十分关心的问题。坦白来讲,多 Agent 和 MCP 其实是两个方向的事情,多 Agent 目前要解决的并不是通信问题,而是规划的有效性问题。如果大家了解 Manus 的任务执行过程(不了解的用户可以查看 AI 前线往期试用视频:https://www.infoq.cn/video/grceDHIRrLJBWjvMw4v2),其虚拟机呈现出来的就是每个任务的规划步骤,这个步骤的合理性、有效性是很关键的。

即便这个规划过程没问题,在后续执行过程中大家会发现该任务需要访问用户的私域账号才可以进一步查看信息(AI 前线的试用视频也体现了这一过程,此处不展开),当前的 Agent 产品大多无法与人类产生协同,无法询问用户是否可以用账号登录某平台查看信息。当然,我们可以选择放弃所有私域的内容,但很多时候私域的内容往往更有价值。MCP 让 Agent 可以更好地访问各类软件,但并没有解决规划路径和执行策略中的问题。

4 结语

总结来看,MCP 带来的核心改变是让很多基于人来设计的 API 接口逐渐变为“模型友好”的方式,Software for AI 会成为一个非常重要的趋势,Agent 生态会基于此进入快速发展状态。底层云平台的能力、模型的能力以及 Agent 构建能力都将成为差异化竞争的重要部分。阿里云以及百炼平台已经将整个服务搭建完善,实现了端到端的完整闭环,这也是阿里云致力于让千行百业都建立起生产级 AI 应用的重要一步。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 InfoQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JS底层运行机制
众所周知,计算机是有内存的,计算机会在内存中开辟一块空间去供js执行,这个空间我们称之为执行栈
子夜星辰
2022/11/15
2K0
重学JS基础-作用域链和闭包
JS有一个全局对象,window,在全局声明的变量都属于window的属性,未使用声明符声明的属性也是window的属性。
Jou
2022/08/10
6090
java作用域-javaScript预编译、作用域,作用域链详解
  ES5中只分为全局作用域和函数作用域java作用域,也就是说for,if,while等语句是不会创建作用域的。ES6(let,const)除外。
宜轩
2022/12/29
1.5K0
JS学习系列 06 - 变量对象
上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明的函数和变量,看完这一节,相信大家就不会再迷惑了。
leocoder
2024/02/01
1200
JS学习系列 06 - 变量对象
JS学习系列 06 - 变量对象
上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明的函数和变量,看完这一节,相信大家就不会再迷惑了。
leocoder
2018/10/31
1.3K0
深入理解变量对象、作用域链和闭包
执行上下文、执行栈、作用域链、闭包,这其实是一整套相关的东西,之前转载的文章也有讲到这些。下面两篇文章会更加详细地解释这些概念。
Chor
2019/11/07
7440
深入理解作用域和闭包
JavaScript中的变量是松散类型的,没有规则定义它必须包含什么数据类型,它的值和数据类型在执行期间是可以改变的。
神奇的程序员
2022/04/10
5610
深入理解作用域和闭包
如何编写高质量的 JS 函数(1) -- 敲山震虎篇
此系列文章将会从函数的执行机制、鲁棒性、函数式编程、设计模式等方面,全面阐述如何通过 JavaScript 编写高质量的函数。
2020labs小助手
2019/08/26
1.3K0
深入理解Js中的this
JavaScript作用域为静态作用域static scope,但是在Js中的this却是一个例外,this的指向问题就类似于动态作用域,其并不关心函数和作用域是如何声明以及在何处声明的,只关心它们从何处调用,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,当然实际上this的最终指向的是那个调用它的对象。
WindRunnerMax
2021/02/25
4460
这一次,彻底弄懂 JavaScript 函数执行机制
作用域就是JS函数和变量的可访问范围,分为全局作用域、局部作用域和块级作用域。全局作用域是整个程序都能访问到的区域,web环境下为window对象,node环境下为Global对象。局部作用域也就是函数作用域,在函数内部形成一个独立的作用域,函数执行结束就销毁,函数内部的变量只能在函数内部访问。块级作用域,使用let或const关键字声明变量之后,会生成块级作用域,声明的变量只在这个块中有效,并且在这个块中let或const声明的变量必须先声明后使用。
小丑同学
2021/05/18
1.1K0
这一次,彻底弄懂 JavaScript 函数执行机制
由 JavaScript 的 with 引发的探索
1. 背景 某天吃饭的时候突然想到,都说 with 会有问题,那么是什么问题,是怎样导致的呢?知其然不知其所以然,在好奇心的驱使下,从 with 出发,一路追溯到 VO、AO。那么先来复习一下 with 是干嘛的吧。 2. with js 的 with 是为对象访问提供命名空间式的访问方式,with 创建一个对象的命名空间,在这个命名空间内你可以直接访问对象的属性,而不需要通过对象来访问: const o = { a: 1, b: 2 }; with (o) { console.log(a); /
用户1097444
2022/06/29
3210
由 JavaScript 的 with 引发的探索
JavaScript的预编译过程
在全局环境中会生成一个 GO对象 (Global Object),还是按照上面的四步执行。
FinGet
2019/06/28
4080
JavaScript的预编译过程
手把手教会你JavaScript引擎如何执行JavaScript代码
JavaScript 在运行过程中与其他语言有所不一样,如果不理解 JavaScript 的词法环境、执行上下文等内容,很容易会在开发过程中产生 Bug,比如this指向和预期不一致、某个变量不知道为什么被改了,等等。所以今天我们就来聊一聊 JavaScript 代码的运行过程。
前端皮皮
2022/08/17
4610
手把手教会你JavaScript引擎如何执行JavaScript代码
js常见错误总结
var声明的变量即是全局变量,也相当于给GO(window)设置了一个属性,而且两者建立映射机制
IT工作者
2021/12/30
1.9K0
js堆栈内存详解
变量提升:当前上下文执行之前,会把var/function声明或者定义提升,带var的只声明,带function的声明+定义
花落花相惜
2021/12/15
2K0
javascript中function用法_年终总结反思不足之处
整理了JavaScript中函数Function的各种,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下文,私有变量等知识点的深入理解。
全栈程序员站长
2022/09/20
5270
js堆栈内存
变量提升:当前上下文执行之前,会把var/function声明或者定义提升,带var的只声明,带function的声明+定义
ruochen
2021/11/21
1.9K0
前端入门18-JavaScript进阶之作用域链声明正文-作用域链
作为一个前端小白,入门跟着这几个来源学习,感谢作者的分享,在其基础上,通过自己的理解,梳理出的知识点,或许有遗漏,或许有些理解是错误的,如有发现,欢迎指点下。
请叫我大苏
2018/12/24
4490
深入理解JavaScript 执行上下文
只有理解了执行上下文,才能更好地理解 JavaScript 语言本身,比如变量提升,作用域,闭包等
木子星兮
2020/07/16
3900
JavaScript之再学习
JavaScript 是一种面向对象的动态语言,它包含类型、运算符、标准内置( built-in)对象和方法。它的语法来源于 Java 和 C,所以这两种语言的许多语法特性同样适用于 JavaScript。需要注意的一个主要区别是 JavaScript 不支持类,类这一概念在 JavaScript 通过对象原型(object prototype)得到延续。另一个主要区别是 JavaScript 中的函数也是对象,JavaScript 允许函数在包含可执行代码的同时,能像其他对象一样被传递。
Abalone
2022/07/14
3630
JavaScript之再学习
相关推荐
JS底层运行机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档