偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

暴論:2025年,程序員必學(xué)技能就是 MCP 原創(chuàng) 精華

發(fā)布于 2025-4-1 08:19
瀏覽
1收藏

MCP(模型上下文協(xié)議)就像是大模型世界里的“最后一公里”。大膽地說(shuō)一句,MCP 應(yīng)該是每個(gè)程序員在 2025 年必須掌握的知識(shí)點(diǎn)。

大模型的功能確實(shí)很強(qiáng)大,但它們也有明顯的短板。例如,大模型在數(shù)學(xué)計(jì)算方面表現(xiàn)不佳。曾經(jīng)有一個(gè)知名的測(cè)試,讓大模型比較 9.8 和 9.11 哪個(gè)數(shù)更大,大約半年前,大部分大模型都會(huì)錯(cuò)誤地回答 9.8 更小。如今,這種情況已經(jīng)基本得到糾正,這主要得益于 RAG(檢索增強(qiáng)生成)技術(shù)。RAG 的原理與 MCP 有異曲同工之妙,它們都像是一個(gè)“外掛程序”,只不過(guò) RAG 掛在了 LLM(大型語(yǔ)言模型)端,而 MCP 掛在了客戶(hù)端。

再比如,在大模型具備聯(lián)網(wǎng)功能之前,它無(wú)法告訴你實(shí)時(shí)天氣。大模型在處理推理工作時(shí)表現(xiàn)得更為出色,比如做總結(jié)、出報(bào)告、寫(xiě)文章等。這也很合理,畢竟 LLM 的全稱(chēng)是“大型語(yǔ)言模型”,它在處理語(yǔ)言方面自然更有優(yōu)勢(shì)。再看看多模態(tài)模型,比如生圖模型,你讓它畫(huà)一幅畫(huà),畫(huà)出的是梵高風(fēng)格還是莫奈風(fēng)格,對(duì)于很多人來(lái)說(shuō)并不重要,只要畫(huà)作好看就行。

總結(jié)來(lái)說(shuō),大模型更擅長(zhǎng)處理推理類(lèi)的工作,或者說(shuō)它在處理那些形而上的事物時(shí)更為得心應(yīng)手。然而,當(dāng)涉及到特別精細(xì)化的工具化操作,尤其是定制化需求時(shí),大模型的表現(xiàn)就不那么理想了。

1、MCP 機(jī)制剖析

第一、什么是 MCP?

MCP,全稱(chēng) Model Context Protocol,是由 Anthropic 在 2024 年 11 月推出的一項(xiàng)創(chuàng)新技術(shù)。Anthropic 是目前公認(rèn)的在代碼生成領(lǐng)域表現(xiàn)最為出色的大模型 Claude 的開(kāi)發(fā)公司。MCP 作為一個(gè)社區(qū)共建的開(kāi)放協(xié)議,旨在提供一個(gè)通用的開(kāi)放標(biāo)準(zhǔn),用于連接大語(yǔ)言模型(LLM)和外部數(shù)據(jù)及行為。

MCP 的重要性在于它提供了一個(gè)標(biāo)準(zhǔn)化的接口,使得大語(yǔ)言模型能夠更高效地與外部世界進(jìn)行交互。這就好比電腦上的 USB 接口或手機(jī)上的 Type-C 接口,無(wú)論哪個(gè)廠家生產(chǎn)的數(shù)據(jù)線(xiàn),只要遵循 USB 或 Type-C 標(biāo)準(zhǔn),就能用來(lái)充電或傳輸數(shù)據(jù)。同樣,無(wú)論哪個(gè)硬盤(pán)廠商生產(chǎn)的硬盤(pán),只要支持 Type-C 接口,就能連接到電腦上使用。


暴論:2025年,程序員必學(xué)技能就是 MCP-AI.x社區(qū)

再舉一個(gè)開(kāi)發(fā)中的例子,我們通常使用 JSON 格式進(jìn)行接口調(diào)用。JSON 的格式就是一個(gè)標(biāo)準(zhǔn),只要數(shù)據(jù)格式符合 JSON 規(guī)范,無(wú)論誰(shuí)來(lái)接收數(shù)據(jù),無(wú)論使用哪個(gè) JSON 庫(kù),甚至手動(dòng)解析,只要符合 JSON 格式,數(shù)據(jù)傳輸就能暢通無(wú)阻。

Anthropic 通過(guò) MCP 制定了一套標(biāo)準(zhǔn),使得開(kāi)發(fā)者可以基于這一標(biāo)準(zhǔn)構(gòu)建和連接各種工具和服務(wù)。這不僅簡(jiǎn)化了開(kāi)發(fā)流程,還極大地?cái)U(kuò)展了大語(yǔ)言模型的應(yīng)用場(chǎng)景。通過(guò) MCP,開(kāi)發(fā)者可以輕松地將 LLM 與各種外部數(shù)據(jù)源和工具集成,從而實(shí)現(xiàn)更復(fù)雜、更高效的任務(wù)處理。

第二、MCP 的核心組件

1.MCP 主機(jī)(MCP Hosts)

MCP 主機(jī)是那些希望通過(guò) MCP 訪(fǎng)問(wèn)數(shù)據(jù)的程序,例如 Claude Desktop、IDE 或其他 AI 工具。目前,像 VsCode 中的 Cline 插件、Cursor、WindSurf 等都支持 MCP,未來(lái)支持 MCP 調(diào)用的終端都可以成為 MCP 主機(jī)。甚至,你自己也可以開(kāi)發(fā)一個(gè)客戶(hù)端。

2.MCP 客戶(hù)端(MCP Clients)

MCP 客戶(hù)端是通過(guò)協(xié)議與服務(wù)器保持 1:1 連接的程序。主機(jī)和客戶(hù)端通常是一起的,客戶(hù)端更偏重于編程概念中的解釋??梢灶?lèi)比數(shù)據(jù)庫(kù)工具,比如 Navicat 軟件本身可以理解為主機(jī),而一個(gè) Navicat 可以同時(shí)連接多個(gè)數(shù)據(jù)庫(kù),每連接一個(gè)數(shù)據(jù)庫(kù)需要一個(gè)連接(設(shè)置多個(gè)),這些連接可以理解為 MCP 里的客戶(hù)端。

3.MCP 服務(wù)器(MCP Servers)

MCP 服務(wù)器是輕量級(jí)程序,每個(gè)程序通過(guò)標(biāo)準(zhǔn)化的模型上下文協(xié)議暴露特定功能。這部分是“最后一公里”的具體實(shí)現(xiàn),需要根據(jù)具體需求開(kāi)發(fā)。例如,如果你想讓 LLM 訪(fǎng)問(wèn)自研系統(tǒng)的數(shù)據(jù),就需要提供開(kāi)放接口并供 LLM 使用,這部分就是 MCP 服務(wù)器。

MCP 服務(wù)可以用 Python、JavaScript(NodeJS)、Java 來(lái)開(kāi)發(fā),目前官方已經(jīng)開(kāi)放了這些語(yǔ)言的 SDK。未來(lái),還會(huì)有 Go、Rust、.NET 等語(yǔ)言的 SDK。

4.本地?cái)?shù)據(jù)源(Local Data Sources)

本地?cái)?shù)據(jù)源包括你的計(jì)算機(jī)文件、數(shù)據(jù)庫(kù)和服務(wù),MCP 服務(wù)器可以安全地訪(fǎng)問(wèn)這些數(shù)據(jù)源。

5.遠(yuǎn)程服務(wù)(Remote Services)

遠(yuǎn)程服務(wù)是可以通過(guò)互聯(lián)網(wǎng)訪(fǎng)問(wèn)的外部系統(tǒng)(例如,通過(guò) API),MCP 服務(wù)器可以連接到這些服務(wù)。例如,查詢(xún)實(shí)時(shí)天氣時(shí),你的 MCP 服務(wù)器需要去國(guó)家氣象局等第三方平臺(tái)獲取數(shù)據(jù),這需要 API 調(diào)用。

第三、調(diào)用機(jī)制

MCP 的調(diào)用機(jī)制需要客戶(hù)端、MCP 服務(wù)端和 LLM 三方配合。

1.啟動(dòng) MCP 服務(wù)

例如,一個(gè)查詢(xún)天氣的 Spring Boot 應(yīng)用,按照官方標(biāo)準(zhǔn)實(shí)現(xiàn)具體的服務(wù)接口,并在本地啟動(dòng)。

將服務(wù)在客戶(hù)端進(jìn)行配置,就像在注冊(cè)中心注冊(cè)一樣,通常是啟動(dòng)命令,例如 npx 或 java??蛻?hù)端打開(kāi)后,在本地同時(shí)啟動(dòng) MCP 服務(wù)。

配置文件示例:

{
  "mcpServers": {
    "spring-ai-mcp-weather": {
      "command": "java",
      "args": [
        "-Dspring.ai.mcp.server.stdio=true",
        "-jar",
        "/Users/fengzheng/model-context-protocol/weather/starter-stdio-server/target/mcp-weather-stdio-server-0.0.1-SNAPSHOT.jar"
      ]
    },
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ],
      "env": {
        "BRAVE_API_KEY": "xxxx"
      },
      "autoApprove": [
        "brave_web_search"
      ]
    }
  }
}

2.調(diào)用流程

暴論:2025年,程序員必學(xué)技能就是 MCP-AI.x社區(qū)

  • 用戶(hù)發(fā)送消息:用戶(hù)通過(guò)客戶(hù)端應(yīng)用程序發(fā)送一條消息。
  • 客戶(hù)端傳遞消息:客戶(hù)端將用戶(hù)的消息傳遞給 LLM。
  • LLM 請(qǐng)求工具或數(shù)據(jù):LLM 可能需要額外的工具或數(shù)據(jù)來(lái)處理請(qǐng)求,因此向客戶(hù)端發(fā)出請(qǐng)求。
  • 客戶(hù)端向 MCP 服務(wù)器請(qǐng)求:客戶(hù)端根據(jù) LLM 的需求,通過(guò) MCP 協(xié)議向 MCP 服務(wù)器發(fā)送請(qǐng)求。
  • MCP 服務(wù)器訪(fǎng)問(wèn)數(shù)據(jù)源:MCP 服務(wù)器根據(jù)請(qǐng)求訪(fǎng)問(wèn)相應(yīng)的數(shù)據(jù)源。
  • 數(shù)據(jù)源返回?cái)?shù)據(jù):數(shù)據(jù)源將所需的數(shù)據(jù)返回給 MCP 服務(wù)器。
  • MCP 服務(wù)器返回工具或數(shù)據(jù):MCP 服務(wù)器將獲取到的工具或數(shù)據(jù)返回給客戶(hù)端。
  • 客戶(hù)端提供工具或數(shù)據(jù)給 LLM:客戶(hù)端將工具或數(shù)據(jù)傳遞給 LLM。
  • LLM 返回處理結(jié)果:LLM 使用提供的工具或數(shù)據(jù)生成處理結(jié)果,并返回給客戶(hù)端。
  • 客戶(hù)端顯示最終結(jié)果:客戶(hù)端將 LLM 的處理結(jié)果展示給用戶(hù)。

整個(gè)原理其實(shí)比較簡(jiǎn)單,但通過(guò)這種機(jī)制,MCP 能夠極大地?cái)U(kuò)展 LLM 的能力,使其能夠處理更復(fù)雜的任務(wù)。

第四、為什么 MCP 重要?

文章開(kāi)頭提到,盡管大模型功能強(qiáng)大,但它們也有明顯的短板。而這些短板往往對(duì)應(yīng)著一部分用戶(hù)的真實(shí)需求。例如,有人需要精確的實(shí)時(shí)天氣信息,這正是大模型的一個(gè)短板。有人可能會(huì)說(shuō),查天氣直接打開(kāi)一個(gè) APP 不就行了嗎?當(dāng)然可以,但如果能在一個(gè)應(yīng)用或終端中直接完成,豈不是更方便,省去了拿起手機(jī)打開(kāi) APP 的麻煩。

再比如,在大模型聊天窗口中直接操作本地?cái)?shù)據(jù)庫(kù),現(xiàn)在已經(jīng)有多種 MCP 服務(wù)可以實(shí)現(xiàn)這一點(diǎn)。

又比如,想要建立自己的知識(shí)庫(kù)。假設(shè)我對(duì)大模型說(shuō):“把我曾經(jīng)寫(xiě)的關(guān)于 JVM 的文章找出來(lái),并給我匯總成一篇帶目錄結(jié)構(gòu)的文章合集。” 如果沒(méi)有 MCP 的輔助,現(xiàn)有的任何大模型客戶(hù)端都無(wú)法實(shí)現(xiàn)這一需求。但有了可以訪(fǎng)問(wèn)本地文件的 MCP,這個(gè)需求就有可能實(shí)現(xiàn)。

類(lèi)似的需求數(shù)不勝數(shù),幾乎每一個(gè)現(xiàn)有 APP 的功能都可能成為 MCP 需要支持的功能。

2、MCP、Function Calling、Agent 區(qū)別

說(shuō)到 MCP,就不得不提到 Function Calling 和 Agent。從表面上看,這三者似乎功能相似,目的也相近,都是為了彌補(bǔ)大模型的短板。

第一、MCP

MCP(Model Context Protocol)是一種開(kāi)放協(xié)議,旨在提供一個(gè)通用的開(kāi)放標(biāo)準(zhǔn),用于連接大語(yǔ)言模型(LLM)和外部數(shù)據(jù)及行為。MCP 運(yùn)行在本地(至少目前是),由像 Cursor 這樣的主機(jī)(或統(tǒng)稱(chēng)為終端)調(diào)用,可以訪(fǎng)問(wèn)本地資源、個(gè)性化的 API 等。

第二、Function Calling

Function Calling 是 AI 模型與外部函數(shù)或服務(wù)交互的一種機(jī)制。在這種模式下,模型生成一個(gè)函數(shù)調(diào)用請(qǐng)求,宿主應(yīng)用解析該請(qǐng)求并執(zhí)行相應(yīng)的操作,然后將結(jié)果返回給模型。Function Calling 通常具有以下特點(diǎn):

同步執(zhí)行:調(diào)用函數(shù)后,程序會(huì)等待函數(shù)執(zhí)行完畢并返回結(jié)果,才繼續(xù)執(zhí)行后續(xù)代碼。

緊耦合:模型與函數(shù)或服務(wù)之間的關(guān)系較為緊密,需要在代碼中明確指定。

特定實(shí)現(xiàn):函數(shù)調(diào)用的實(shí)現(xiàn)方式可能因平臺(tái)或服務(wù)提供商而異,缺乏統(tǒng)一標(biāo)準(zhǔn)。

第三、Agent

Agent(智能體)是具備自主行動(dòng)能力的系統(tǒng),能夠執(zhí)行一系列復(fù)雜的任務(wù),比如前一段時(shí)間很火的 Manus。Agent 通常具備以下特征:

自主性:能夠根據(jù)環(huán)境變化和目標(biāo)自主做出決策。

任務(wù)執(zhí)行:能夠執(zhí)行多步驟、多環(huán)節(jié)的任務(wù),往往需要調(diào)用多個(gè)工具或服務(wù)。

集成性:通常集成多種功能模塊,如 MCP 和 Function Calling,以實(shí)現(xiàn)復(fù)雜的任務(wù)處理。

第四、主要區(qū)別

MCP:作為一種協(xié)議,主要解決模型與外部工具和數(shù)據(jù)源之間的交互問(wèn)題,提供標(biāo)準(zhǔn)化的接口和通信方式。它非常靈活,只要遵循標(biāo)準(zhǔn),幾乎能實(shí)現(xiàn)任何功能。

Function Calling:是模型與特定函數(shù)或服務(wù)交互的具體實(shí)現(xiàn)方式,關(guān)注如何在代碼層面實(shí)現(xiàn)功能調(diào)用。它需要大模型和特定客戶(hù)端緊密綁定,靈活性較低。

Agent:是一個(gè)復(fù)雜的系統(tǒng),能夠自主執(zhí)行任務(wù),通常需要結(jié)合 MCP 和 Function Calling 等機(jī)制,以實(shí)現(xiàn)復(fù)雜的功能。

通過(guò)這些對(duì)比,我們可以更清晰地理解 MCP、Function Calling 和 Agent 的功能和應(yīng)用場(chǎng)景。

3、MCP 發(fā)展預(yù)測(cè)

隨著 AI 的迅猛發(fā)展,它將在未來(lái)生活的各個(gè)領(lǐng)域扮演越來(lái)越重要的角色,而 MCP(Model Context Protocol)也將順應(yīng)這一趨勢(shì)不斷進(jìn)化。以下是對(duì)未來(lái)可能出現(xiàn)的幾種情況的預(yù)測(cè),其中一些已經(jīng)在逐步成為現(xiàn)實(shí)。

第一、超級(jí)客戶(hù)端的出現(xiàn)

目前,我們?yōu)榱耸褂貌煌墓δ?,往往需要打開(kāi)各種各樣的 APP。然而,隨著 AI 的普及,未來(lái)可能會(huì)出現(xiàn)超級(jí)客戶(hù)端或終端,就像豆包或小愛(ài)同學(xué)這樣的智能助手。這些超級(jí)客戶(hù)端將集成多種工具和服務(wù),為用戶(hù)提供統(tǒng)一且無(wú)縫的體驗(yàn)。例如,用戶(hù)可以在一個(gè)應(yīng)用中輕松訪(fǎng)問(wèn)本地文件、數(shù)據(jù)庫(kù)、瀏覽器以及其他服務(wù),無(wú)需頻繁切換不同的 APP,從而大大提高工作效率。

以小愛(ài)同學(xué)為例,目前它主要被用于設(shè)置定時(shí)提醒和查詢(xún)天氣。但如果借助 MCP 的方式,與更多的服務(wù)商進(jìn)行打通,小愛(ài)同學(xué)將能夠?qū)崿F(xiàn)更多樣化的需求,為用戶(hù)提供更豐富的服務(wù)。

第二、MCP 市場(chǎng)的興起

未來(lái)可能會(huì)出現(xiàn)類(lèi)似現(xiàn)在應(yīng)用商店的 MCP 市場(chǎng)。在這個(gè)市場(chǎng)中,無(wú)論是個(gè)人開(kāi)發(fā)者還是公司,都可以提交自己的 MCP。例如,某短視頻平臺(tái)可以提交一個(gè)推薦視頻的接口,用戶(hù)就可以在一個(gè)支持 MCP 的客戶(hù)端中直接刷視頻。目前,Cline 插件已經(jīng)具備了 MCP 市場(chǎng)的功能,用戶(hù)可以查看并安裝各種開(kāi)源的 MCP。不過(guò),這一功能還處于初級(jí)階段,有時(shí)使用起來(lái)可能還不夠便捷。

第三、遠(yuǎn)程運(yùn)行能力的實(shí)現(xiàn)

MCP 支持多種通信方式,包括本地的 STDIO 和網(wǎng)絡(luò)上的 HTTP/SSE。當(dāng)需要跨機(jī)器通信時(shí),MCP 可以利用 HTTP/SSE 實(shí)現(xiàn)工具的遠(yuǎn)程調(diào)用。這意味著,未來(lái)的 MCP 系統(tǒng)將能夠在本地和遠(yuǎn)程環(huán)境中靈活地運(yùn)行工具,為用戶(hù)提供了更廣泛的部署選項(xiàng)。

對(duì)于程序員來(lái)說(shuō),在本地運(yùn)行 Node、Python、Java 等語(yǔ)言的程序并非難事。然而,對(duì)于那些沒(méi)有編程經(jīng)驗(yàn)的人來(lái)說(shuō),這無(wú)疑是一項(xiàng)艱巨的挑戰(zhàn)。因此,如果希望讓更多的人能夠使用 MCP,就必須解決本地啟動(dòng)服務(wù)的問(wèn)題,降低使用門(mén)檻,使 MCP 更加易于上手和使用。


本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI  作者:玄姐

原文鏈接:??https://mp.weixin.qq.com/s/aH9L_9khY9J1X2Qldge9iQ??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2025-4-1 09:28:04修改
收藏 1
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦