大模型原生支持MCP协议是什么意思?
在前面的文章中,我们一起从零开始搭建了适配所有大模型的MCP Client
,无论我们选择什么大模型,都可以完成MCP
工具的调用。由于我们实现的方式是通过在系统提示词中对大模型的输出内容进行限制,并强制规范了大模型的输出结果,当大模型要进行工具调用时,我们利用提示词要求大模型按照MCP
协议输出对应的规范化结果。这样做虽然降低了我们大模型的选择门槛,但是同样会带来一些问题,其中最突出的一个问题就是,一但大模型没有按照MCP
协议的要求输出规范化的结果,那么就会导致MCP
工具调用失败,正是由于这种不确定性的存在,导致很多企业不放心真正在生产中去使用MCP
相关工具,仍然停留在测试环节中。
随着大型语言模型(LLM
)的进一步发展,大模型对于MCP
协议的支持度,也成为了消费者在选择大模型的上的一个参考标准。大模型“原生支持MCP
协议”意味着该模型自身具备内置的、遵循 MCP
(Model Context Protocol
,模型上下文协议)规范的能力,无需额外的适配层或中间件,就能直接与各种数据源、工具和服务进行双向、安全、高效的通信。这样的原生支持不仅提升了模型在调用外部接口时的速度和稳定性,也简化了开发者的集成工作,让模型与应用间的交互如同“开箱即用”般流畅。
说得通俗一点,原生支持
MCP
协议的大模型,就是模型在微调阶段,使用了MCP
协议相关的数据对模型进行过微调,使得大模型原生就知道MCP
协议的规范,那么在调用MCP
工具时,大大降低大模型出错的可能性。
Qwen3简单介绍
4月29日凌晨阿里推出新一代开源大模型Qwen3
系列,在代码、数学、通用能力等基准测试中达到顶级模型水平(如DeepSeek-R1
、o1
、Grok-3
等)。
有效融合推理模式和非推理模式,一个模型同时兼具之前QwQ模型(推理模式,用于数学、代码、逻辑推理等场景)和instruct模型(非推理模式,通用对话等场景)的回复能力。
- 超多尺寸:两款MOE模型:Qwen3-235B-A22B(2350多亿总参数、 220多亿激活参)、Qwen3-32B(300亿总参数、30亿激活参数),以及六个Dense模型:Qwen3-30B-A3B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B、Qwen3-0.6B。
- 推理能力大幅提升:在数学、代码和逻辑推理等评测中,显著超过QwQ(推理模式)和Qwen2.5-Plus-Instruct(非推理模式),达到同规模业界SOTA水平。
- 模型人类偏好能力显著增强:创意写作、角色扮演、多轮对话、指令遵循能力均有明显提升,用户体验预期明显更佳,通用能力显著超过Qwen2.5-Plus-Instruct。
- Agent能力显著增强:在上述两种模式下都达到目前业界领先水平,能够实现精准的外部工具调用。
此外,Qwen3
原生支持MCP
协议,并具备强大的工具调用能力,结合封装了工具调用模板和工具调用解析器的Qwen-Agent
框架。
Qwen3的MCP实测
我们可以使用Qwen-Agent
对Qwen3
的工具调用能力进行测试。
使用uv
工具创建测试工程:
1 | uv init qwen3-mcp-test -p 3.12 |
进入工程,然后创建虚拟环境
1 | cd qwen3-mcp-test |
安装依赖:
1 | uv add qwen-agent[code-interpreter,gui,mcp,rag] |
接下来执行测试代码:
1 | from qwen_agent.agents import Assistant |
注意,这里我调用的是自己写的
MCP Server
,大家需要自己在工程中另外创建一个.env
文件,用来存储自己的密钥。
执行测试代码:
开启调试,查看输出结果的细节信息。
可以看到,responses
一共返回了5
条结果,依次将每条结果打印出来。
从打印结果可以看出,qwen-agent
框架在处理时,整体的流程和Function Call
的处理流程一致。
- 首先根据用户的提问,判断是否需要调用工具。
- 如果需要调用工具,则返回
function_call
字段,并携带工具相关参数。如果不需要调用工具,则直接返回。 - 调用工具执行相关功能,并将工具的返回结果返回。
- 将用户的提问和工具的返回结果一起丢给大模型。
- 大模型综合工具的返回结果和用户的提问,给予用户最终回答。
结论,本质上来讲MCP
是Function Call
的一种特殊形式,所以在Agent
框架中的处理方式和Function Call
的处理方式一致。