MCP是什么?
隨著大語言模型的廣泛應(yīng)用,如何高效地連接模型與工具、數(shù)據(jù)源以及其他智能體,成為了一個亟待解決的問題。本文將深入探討模型上下文協(xié)議(MCP)這一新興技術(shù),它是由 Anthropic 開發(fā)的標(biāo)準(zhǔn)化開放協(xié)議,旨在為 AI 模型與外部資源的無縫交互提供通用解決方案。
先回答比較基礎(chǔ)的問題。
1.MCP是大模型之前的嗎?
答:是的,MCP不同于Function,是模型之外的協(xié)議,F(xiàn)unction是模型參數(shù)內(nèi)部的能力。
2.MCP可以替代Function嗎?
答:不能。先說一件事,春節(jié)發(fā)布的原生態(tài)DeepseekR1無工具調(diào)用能力,所以被很多人成為垃圾。然而5月份發(fā)布的DeepseekR1-0528具備了Function,也就是在MCP發(fā)布之后,Deepseek依舊在增強自己的Function,所以答案顯而易見。
原因:LLM是人類文字語言和類人類語言(編程語言)訓(xùn)練的。他的輸入輸出只有人類語言也就是字符串string格式。但是string(一句話)能說清調(diào)用哪個工具,n8n具有440多個工具接口,你和他說:“調(diào)用edge“(純文字語言)他不清楚。所以需要function輸出JSON結(jié)構(gòu)化數(shù)據(jù)文件給到MCP Client。而且模型調(diào)用能力不僅僅是Function還有參數(shù)內(nèi)部的微調(diào)。
那為什么MCP不能結(jié)構(gòu)化文件?hh,回到那句話,MCP是外部的!?。?!
3.MCP協(xié)議和A2A協(xié)議有什么區(qū)別?
答:調(diào)用的對象是工具還是智能體。
MCP是依據(jù)MCP client和server來調(diào)用某個工具
A2A是調(diào)用某一個Agent(智能體)來達成多智能體協(xié)作。
那又有一個問題了,為什么非得用A2A。
答:小馬用的Openai的swarm架構(gòu)寫的Agent1,小張用Microsoft的AutoGen架構(gòu)(framework)寫的Agent2,作者用google JDK寫的Agent3.這三架構(gòu)能功能協(xié)作嗎?
你用的springboot,我用的JavaEE。
1. 什么是模型上下文協(xié)議 (MCP)?
模型上下文協(xié)議 (MCP)是由 Anthropic 開發(fā)的標(biāo)準(zhǔn)化開放協(xié)議,它使 AI 模型能夠與外部數(shù)據(jù)源和工具無縫交互,充當(dāng) AI 集成的通用連接器。
- MCP code:modelcontextprotocol/servers: Model Context Protocol Servers
- MCP whitebook:https://modelcontextprotocol.io/
2.MCP如何運作?
MCP 遵循client-server(客戶端-服務(wù)器)架構(gòu),其中:
- Host:承載mcp client的程序
- Client:(如 AI 應(yīng)用程序或 LLMs)連接到。Client和server必須1:1.
- Server:(MCP 工具提供程序)向客戶端公開工具、API 或數(shù)據(jù)源。
注:此流程中有兩個協(xié)議。
- LLM to Client。這里你隨意,愿意怎么傳參怎么傳參,可以json可以string
- Client to server:真正的意義的MCP
3.MCP的服務(wù)器示例
- 文件系統(tǒng):訪問本地文件和目錄
- 網(wǎng)頁搜索:運行實時 Web 搜索。
- 數(shù)據(jù)庫:查詢 SQL 或 NoSQL 數(shù)據(jù)庫
- 客戶關(guān)系管理:連接到 Salesforce 等 CRM 系統(tǒng)。
- 版本控制:訪問 Git 等版本控制系統(tǒng)。
具體已有server可查詢github。
4.MCP的具體工作流程
5.function calling和MCP的區(qū)別
(1)function calling 為大模型具備的功能,MCP屬于模型外部調(diào)用功能。我們在搭建agent或者調(diào)用api的時候,有些模型會說明,此模型有函數(shù)調(diào)用。如deepseekv3.有些沒有,如deepseekr1
(2)MCP是統(tǒng)一協(xié)議,function不是統(tǒng)一。例:dify平臺的百度搜索插件和coze的百度搜索插件不統(tǒng)一。但是百度搜索 api client對應(yīng)統(tǒng)一的百度搜索 server。如果agent是工作室自己用code開發(fā)的,那更不統(tǒng)一了。在以后迭代,開發(fā)會非常麻煩。
最后注意:
MCP為MCP Client TO server的協(xié)議,并非llm to client的協(xié)議。Llm to client依舊可以用function calling以json的形式傳送到client因此function calling部分功能可以和MCP共存。如果不用function calling也可以用字符串的形式傳參。
本文由 @無痕丶無殤 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!