微信扫码
添加专属顾问
我要投稿
探索大模型与外部世界交互的新路径。 核心内容: 1. Function Call概念及其扩展大模型能力的机制 2. 扣子平台插件的构建过程和关键步骤 3. 模型上下文协议(MCP)的开放标准及其应用前景
对于大语言模型来说,有个局限性,就是训练的数据不可能是实时的数据,也没有其他私有信息。就如同“知识很丰富,却被困在房间里面的人”。
为了获取外部数据,2023年,OpenAI提出了Function Call的概念,它通过了将自然语言转成结构化调用,来扩展模型的能力,像是给模型加装各种外挂,可以让模型获取外部的实时天气,发送邮件,调用外部计算引擎进行计算等。有了Function Call这个桥梁,以大模型为中心,让LLM不仅能够聊天,而且还能自动化执行一系列操作,让其成为智能代理。
扣子(Coze)是新一代 AI 应用开发平台上面的各种插件就是基于Function Call构建的:
以OpenAI官网上获取天气信息的例子,整个处理步骤如下:
简单来说由以下步骤组成:
关键点:
分类 | 优点 | 缺点 |
---|---|---|
能力扩展 | ||
精准性 | ||
安全性 | ||
灵活性 | ||
成本 | ||
适用性 |
模型上下文协议(MCP)是由Anthropic(Claude AI 助手背后的公司)公司提出的一种开放标准协议,旨在解决大型语言模型(LLM)与外部数据源及工具之间的集成问题。MCP的核心目标是打破信息孤岛,使得AI模型能够实时访问和处理动态数据,从而生成更准确和相关的响应。
“可以将 MCP 想象成AI 应用的“USB-C 端口”——一个标准化的即插即用接口,用于连接各种工具和数据。” 有了通用的标准之后,基于MCP协议开发的服务可以适配任何支持此协议的大模型。
按照我自己的理解,为了屏蔽各种功能接口,增加了两个中间层,一个叫MCP server,封装了外部的各种服务提供统一接口、一个叫MCP Client 来减少MCP host(通常是各种大模型)的各种差异;
针对后台的资源或功能,开发者开发出一套MCP server后,就可以适配众多LLM模型,不用为每个模型做定制开发,提升了开发效率。
简洁点的架构图:
说明:
MCP 主机 | |||
MCP 客户端 | |||
MCP 服务器 | |||
MCP 协议 | stdio ;远程:HTTP+SSE |
1.资源(resource)模型可以为上下文检索提供基础数据,比如只读文件内容、只读数据库内容等;在MCP中, 资源通常由类似 URI 的标识符引用,客户端请求资源,服务器返回资源插入到和LLM交互的上下文中。这样LLM就可以获取最新的数据了。
2. 工具(tools)模型可以调用的可执行函数或操作(通常需要用户授权),它可以执行计算、调用API、发送消息等。LLM可以在需要的时候调用这些工具,扩展了LLM的能力,让LLM可以方便和外部系统进行交互;
3. 提示词(prompt)预定义的提示模板或对话工作流可以将提示视为预先设定的指导或多轮模板,可在需要时和数据一起发送给LLM。比如服务器可以提供代码审查的相关模版,通过这些模版,可以让AI遵循特定的模式,以保证结果的一致性;
MCP 通信基于JSON-RPC 2.0,这是一种使用 JSON 的轻量级 RPC(远程过程调用)格式。这意味着每个请求或响应都是一个具有定义结构({"jsonrpc": "2.0", "method": ..., "params": ...}等)的 JSON 对象,使其与语言无关且易于解析。 MCP整个交互流程(去除了大模型的参与,实际中有大模型的参与)如下:
整个交互过程是:
你也许会问,大模型起什么作用?
关键点
MCP客户端和MCP服务器通常有两种连接方式,一种是stdio,本地类似unix的管道方式进行通信,服务器作为本地运行的进程,这种方式高效、简单、减少网络通信开销;
MCP客户端和MCP服务器的第二种通讯方式是HTTP+SSE。 MCP客户端通过 HTTP的POST来发送请求,MCP服务器通过SSE,推送的方式来完成事件响应;这里面的HTTP连接为长连接;
MCP客户端和MCP服务器在初始化阶段,会获取MCP服务器上的工具列表、资源列表和提示词列表,以便后续使用;
**MCP 客户端-服务器连接特性:
1. 长连接机制
- 连接持续活跃,支持多轮交互。
- 客户端控制生命周期(可关闭或维持服务器)。
2. 异步事件处理
- 服务器通过JSON-RPC通知推送事件(如文件变更)。
- 客户端响应方式:更新上下文/触发用户通知。
3. 状态保持能力
- 服务器可跨请求维护上下文(例如缓存数据、跟踪API会话状态)。
想尝试MCP,需要根据需求,找到MCP Client和MCP Server,这两者市面上已经开发了很多了,我们找最简单的来实践下即可;
MCP Client 可以是开发工具、或者使用大模型的编程工具,综合各种比较,国内比较适合:
可以在哪里找到MCP Server那,可以从以下地方获取:
官网的MCP Server集合的github集合:https://github.com/modelcontextprotocol/servers
第三方MCP Server集合:https://mcp.so/
MCP市场:https://mcpmarket.cn/
https://smithery.ai/
MCP Server 开发用python或nodejs比较多,所以一般通过npx或uvx运行,如果用其他语言写的比如rust或go,可以直接通过命令行方式执行;
NPX:
1. NPM(nodejs包管理工具)的一部分;
2. 可以从NPM仓库运行一个包;
3. NPX可以缓存包提升性能;
UVX:
1. uv工具链组成部分;
2. 专注于python虚拟环境;
3. 创建虚拟环境;
4. 执行后自动清理;
运行NPX需要安装nodejs环境,安装npm;uvx需要安装python环境;
首先准备下数据目录,里面放着学习信息、成绩表、老师表,每个表的数据都采用csv文件形式; 其次就是在cherry studio配置,我们直接在里面找个文件系统的MCP服务器;
点击我们添加的服务器,进行参数配置
运行,我默认配置的DeepSeek这个大模型,在大模型聊天框中,首席点击下面的命令提示符选择MCP服务器: 问了个简单的问题:
现在有多少个学生,超过90分的学生有多少个?
可以看到大模型:
安装Cline 这个比较简单,搜索vscode插件,然后选个下载最多的安装;
配置Cline配置MCP服务器
配置好了之后,每次运行都要批准比较慢,可以直接设置自动批准:
配置文件:
{
"mcpServers": {
"filesystem": {
"isActive": true,
"name": "Filesystem MCP Server",
"type": "stdio",
"description": "用于获取本地目录列表、读写本地文件的 MCP Server",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/mac/git/AI/datas"
]
}
}
}
{
"mcpServers": {
"fileSystem": {
"autoApprove": [
],
"disabled": false,
"timeout": 60,
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/mac/Desktop"
],
"transportType": "stdio"
}
}
}
交互测试如下,问了个问题,问:/Users/mac/git/AI/datas目录下有多少个学生? 通过多次交互,去遍历这个目录,找到students.csv文件,然后遍历得到20个学生的结论。注意:最好用vscode打开这个目录,作为工作目录,不然每次都在桌面去找
大模型不再是困于数据牢笼中的智者,Function Call 与 MCP 的出现,如同为其打开了与现实世界相连的 “任意门”。Function Call 以结构化调用拓展能力边界,MCP 则用标准化协议搭建交互桥梁,二者携手让 AI 走出 “象牙塔”,真正融入复杂多变的外部环境。当大模型学会调用实时数据、操作外部工具,智能体的终极形态已初现曙光。。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-12
Multi-Agent-Workflow && Data Flow
2025-05-12
EI与MCP的故事
2025-05-12
顶尖AI研究员揭秘:为什么99%的模型评测都是在骗你
2025-05-12
ByteBrain团队FSE25 | 基于LLM的自动化Oncall升级
2025-05-12
深度剖析MCP:当AI协议遇上糟糕的工程实践
2025-05-11
DB-GPT V0.7.1 版本更新:支持多模态模型、支持 Qwen3 系列,GLM4 系列模型 、支持Oracle数据库等
2025-05-11
使用MCP实现QGIS自动工作流
2025-05-11
从0.1到∞:MCP协议的技术谦卑与生态野望
2024-08-13
2024-06-13
2024-08-21
2024-09-23
2024-07-31
2024-05-28
2024-08-04
2024-04-26
2024-07-09
2024-09-17
2025-05-11
2025-05-09
2025-05-08
2025-05-07
2025-04-30
2025-04-29
2025-04-29
2025-04-29