前端的AI路其之一: MCP与Function Calling

前言

AI已经来了。24年末到25年的这几个月里面尤为明显,AI已经开始入侵我们生活的方方面面。总有人说:程序员要被替代了。为了不被替代,为了乘着这股浪潮,作为前端,也只能all in AI了。 接下来,我将以我的视角,来记录一个前端在ai的学习路程。愿你我共勉

1.何为Function Calling

在阐述MCP之前,我想先聊一下Function Calling 。不知道各位有没有体验过Function Calling。如果一句话总结就是 Funcion Calling 是给大模型插上手脚,让我们通过对话的方式,让模型调用对应的工具达到你要的效果 其实很像Siri或者 小爱同学的使用方式。 比如我们想十分钟后让Siri叫我们一下,就可以说: 嘿 Siri,定一个十分钟后的闹钟。然后Siri就会在电脑上建一个闹钟,十分钟后叫醒你。 这其实就像Function Calling实现的效果。给模型插上手脚

1.1 举个栗子

我们举个栗子来描述一下吧。

如果从程序的角度实现这样一个定闹钟的功能,你会怎么做?

如果是我,首先得有一个软件A,然后我会写好这个定闹钟的脚本,支持输入闹钟的时间,然后将这个方法给软件使用。 接下来,用户就可以在软件上通过表单填写提交等方式来定闹钟。

这样一个定闹钟的功能 涉及了三方: 脚本、软件、用户。脚本提供定闹钟的功能、软件提供使用平台、 用户是调用方。 现在作为用户,不想填写脚本了,觉得麻烦,能不能让软件自己搞,用户吩咐一下就行?

可以!我们把大模型看做软件。现在用户说了:定一个十分钟后的闹钟。那么模型该怎么做呢?首先肯定要理解这句话,用户要定一个十分钟后的闹钟。接下来再看下自己能不能做。

那么怎么让模型知道自己能不能做,以及该怎么做呢?这就是Function Calling的存在意义了。它让模型能够理解我们的脚本,并在对应的时候执行这个脚本。

了解了Function Calling,我们再来看MCP

2 何为MCP

2.1 官方定义

官方定义

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

理解一下就是 MCP提供了一种标准化的方式,让模型能够连接到不同的数据源和工具。就像USB-C端口一样。不论什么牌子的电脑,只要有USB端口,那么可以插各种外置,键盘啊、鼠标啊、音响啊。只要是USB-C端口,就可以。

2.2 图解

图上提到了了几个概念 MCP Hosts(MCP主机)MCP Clients(MCP客户端)MCP Servers(MCP服务器)Local Data Sources(本地数据源)Remote Services(远程服务)其实我感觉 Clinet 和 Hosts其实不应该分开来看。我把他们看做一个概念Clinet: 即有能力通过MCP访问外部服务的软件

这里也可以用一句话来描述:Server A、B、C 是具有访问本机数据以及远程数据的能力,并且按照MCP协议提供了该能力,Clinet可以通过MCP协议调用A、B、C以使用他们的能力。

2.3 再举个栗子

上面的例子,我在软件A上实现了一个闹钟功能,突然有一天,另外有一个软件B,它也有闹钟功能的诉求,后面还有软件C、D等等。而且他们各自技术栈不一样。怎么办?基于他们各自写一套?这时候,如果能有一套标准就好了,我们将闹钟功能单独提供,各个软件按照标准接入、调用,是不是就一劳永逸了? 同理,如果不同的大模型都遵循同一套协议,那么是不是可以实现一个闹钟,多方调用? 这个统一的协议就是 模型上下文协议(MCP Model Contex Protocol)

如果我们再用一句话总结 MCP就是大模型界的HTTP 。类比到前后端,不论后端是JavaGoNode、前端是JSRust。只要遵循HTTP,那就可以相互通信。 MCP也是类似,不论是什么样的模型,只要遵循MCP协议,Function Calling也遵循MCP协议开发,那么就可以实现无差别复用。

结语

这只是我对Function CallingMCP的浅显理解。为什么会在聊MCP的时候先聊了Function Calling?是因为我看到了很多把他们放在一起比较的文章,但是不论怎么解释,我都觉得好像有些不太合心意。最后,我得到了一个启示,MCP是协议,Function Calling是工具,二者不是一个层面东西,放在一起比较没有意义。最后,我发现MCP应该说是是Function Calling的标准化形态。它让Function Calling的适用性大大提升,把我们从适配中解放出来,让我们更专注于创造。

最后,如果文章有不对之处,欢迎各位指正。虚心求教,不为面子,只为真相。

愿你我共勉,祝好。

参考

相关推荐
AI掘金17 小时前
DeepSeek实战--蒸馏
微调·aigc·蒸馏·ai应用·deepseek·小模型推理
DisonTangor1 天前
LLaMA-Omni 2:基于 LLM 的自回归流语音合成实时口语聊天机器人
人工智能·开源·aigc·音视频·llama
AI掘金1 天前
DeepSeek实战--微调
ai·大模型·aigc·大模型微调·ai应用
虹科网络安全1 天前
艾体宝方案丨深度解析生成式 AI 安全风险,Lepide 为数据安全护航
人工智能·aigc·ai监控·lepide·ai安全风险
yi念zhi间1 天前
如何把ASP.NET Core WebApi打造成Mcp Server
后端·ai·mcp
create172 天前
使用 AI 如何高效解析视频内容?生成思维导图或分时段概括总结
人工智能·aigc·语音识别·ai写作
碣石潇湘无限路2 天前
【AI】基于生活案例的LLM强化学习(入门帖)
人工智能·经验分享·笔记·生活·openai·强化学习
郭不耐2 天前
DeepSeek智能时空数据分析(九):NL2SQL绘制河流名字-如何给轨迹添加说明文字
信息可视化·数据分析·aigc·数据可视化·大屏端
杨浦老苏2 天前
MCPHub:一站式MCP服务器聚合平台
人工智能·docker·ai·群晖·mcp