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 协作对话体验。

相关推荐
IT_陈寒16 分钟前
React状态更新总是不及时?你可能漏了这步批处理机制
前端·人工智能·后端
恋猫de小郭26 分钟前
AI Agent 开发究竟是啥?如何用 AI 开发 Agent ?深入浅出给你一套概念
android·前端·ai编程
前端双越老师28 分钟前
我开发 AI Agent 项目踩过的 5个坑
前端·agent·全栈
晓得迷路了1 小时前
栗子前端技术周刊第 134 期 - React Router v8、TypeScript 7 RC、React Native 0.86...
前端·javascript·react.js
Carson带你学Android1 小时前
Android 17 正式发布:AI 终于成了系统能力
android·前端·ai编程
Mike_jia1 小时前
ZbxTable:Zabbix开源报表神器,从运维数据到决策洞察的最后一公里
前端
LinXunFeng10 小时前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
乘风gg14 小时前
为什么AI 时代来临,大部分人吃不到红利
前端·ai编程·claude
恋猫de小郭14 小时前
Android 限制侧载新进展,谷歌联合国内厂商推验证计划
android·前端·flutter
IT_陈寒14 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端