ai对话平台中的functioncalling+mcp

项目中mcp和functioncalling到底做了什么?

mcp是模型上下文协议,是ai与外部工具tool、数据源交互的通用标准化协议,ai界的usb-c万能接口,解决的是工具接入标准化的问题;functioncalling 是agent与大模型之间工具调用约定的对话格式,大模型输出结构化json指令,主动调用外部api、函数、工具执行的实际操作。

项目中我把工具能力层标准化成了独立的mcpserver,然后主聊天服务通过mcpclient去连接和调用这些工具,模型测通过functioncalling is来做工具的选择,这样就形成了,模型决策、服务端编排、mcp工具执行、结果回填、前端可视化的完整闭环,相比于把工具直接写死在业务代码中,这种方式更标准、更容易扩展,也更适合后续接入更多工具来严谨成完整的agent平台。

为什么是functioncalling+mcp的组合

纯functioncalling的能力边界:在ai对话项目中,function calling能够解决让模型知道什么时候调用工具的问题,但是function calling本身并不负责工具标准化管理,跨服务工具的复用,工具协议统一,工具注册、校验、元信息暴露,以及更通用的工具生态接入

**为什么要引入mcp:**当工具数量开始增长,或者是要把工具能力从业务聊天中拆出来,单纯把工具都写在主服务中的话就会遇到问题,比如:聊天编排和工具执行耦合严重,工具元信息不够标准化,后续接入更多工具的话维护成本很高,很难对外说自己是具备标准化agent工具层能力

**引入mcp的核心目标:**做工具层标准化,把工具能力抽离成标准的mcpserver,而不是散落在业务服务中的私有函数;降低业务编排层和工具执行层耦合,主服务负责对话编排,模型交互,状态回传,mcpserver负责工具暴露,参数校验,工具执行,工具结果返回;为后续平台演进预留空间,比如说之后需要更多的业务工具,多个mcpserver,更标准的agent架构

mcp及functioncalling的作用分别是什么

functioncalling:模型通过function calling自主决定调用哪个工具,负责决策。也就是模型理解哪些工具可用,根据用户的问题决定要不要调用工具,模型生成需要调用的工具名和调用参数

mcp:负责用标准的协议暴露工具,提供工具的描述,schema,调用入口,让宿主系统通过标准客户端调用这些工具,也就是负责执行工具逻辑

模型通过function calling产出工具调用意图,后端把这种意图映射到mcpclient上执行.

前端负责交互和展示,Express 负责编排和转发,MCP 负责工具的定义和执行,Qwen 模型负责意图理解和决策。Function Calling 让模型能够自主决定何时调用工具、调用哪个工具,MCP 提供了标准化的工具接口,SSE 实现了实时的流式输出,三者配合实现了智能化的多 Agent 协作对话体验。

相关推荐
峥无2 小时前
Linux进程控制完全笔记(fork→exec→wait→Shell)
linux·笔记·unix
王的宝库2 小时前
【K8s】集群安全机制(二):授权(Authorization)详解与实战
学习·云原生·容器·kubernetes
ReaF_star2 小时前
K8s Pod调度【学习笔记】
笔记·学习·kubernetes
MXN_小南学前端2 小时前
Vue 视频上传实战:视频预览、MediaRecorder 压缩与自定义上传
前端·vue.js
YuanDaima20482 小时前
大语言模型生命周期全链路解析:从架构基石到高效推理
开发语言·人工智能·python·语言模型·架构·transformer
程序员大辉2 小时前
Beaver Notes(海狸笔记)v4.4.0 中文版 ,开源免费、本地存储、零追踪的笔记软件
笔记·开源
Hilaku2 小时前
AI 生成的代码都是一坨屎?聊聊怎么给 Agent 制定工程约束
前端·javascript·ai编程
吴声子夜歌2 小时前
Vue3——使用Vue Router实现路由
前端·javascript·vue.js·vue-router
whinc3 小时前
Node.js技术周刊 2026年第16周
前端·javascript