Video thumbnail for 99% of Developers Don't Get MCP

告別無腦ChatGPT!99%開發者不知道的MCP模型上下文協議詳解

Summary

Language:

Quick Abstract

想知道如何讓你的 ChatGPT 從普通變得超強嗎?本文將帶你深入了解 Model Context Protocol (MCP),一種由 Anthropic 開發的突破性架構,它能讓大型語言模型 (LLM) 具備與外部工具和系統互動的能力,解決知識過時、環境限制和無法操作等痛點。立即探索 MCP 如何革新 AI 應用!

  • MCP 簡介: 標準化 LLM 與外部系統的互動方式,如同 USB-C 連接各種設備。

  • 三大架構組成: MCP 主機 (orchestrator)、客戶端 (translation layer) 和伺服器 (external tool/service)。

  • 動態探索: LLM 可以透過 introspection 動態發現工具並請求操作。

  • JSON RPC 協定: 定義 LLM 與工具間的溝通方式,確保安全和效率。

  • DeepAgent: Abacus AI 的 DeepAgent 支援 MCP,能夠連接現有工具和服務,自主執行複雜的工作流程。

  • 應用場景: 從 Figma 設計稿生成網站,分析 GitHub 代碼,甚至規劃最佳咖啡館路線。

  • 解決方案: 知識過時、環境限制和無法操作等痛點,透過安全的外掛介面動態擴展 LLM 能力。

99%的開發者不了解MCP

在我每次前往最喜歡的咖啡館專心寫程式時,所見到的都是人們在隨興編碼或向ChatGPT提問。如果你還沒使用過ChatGPT,那你可能是年紀大了,或者根本不接觸數位世界。但我現在要告訴你,一般的ChatGPT和我即將展示給你的東西之間有著巨大的差距。今天,朋友們,我要帶你們踏上一段瘋狂的旅程,從沒有上下文的ChatGPT到使用Model Context Protocol(MCP)強化的ChatGPT。

大型語言模型的演變

近年來,大型語言模型經歷了深刻的變革。最初,像GPT-2和早期的GPT-3這樣的模型被設計為在大型語料庫上訓練的文本預測引擎,主要用於根據給定的提示生成類似人類的文本回應。這些模型本質上是靜態的,它們無法實時更新知識或與外部環境互動,其效用受到訓練數據的限制,並且僅限於可以嵌入固定長度提示中的內容。

儘管它們的輸出連貫,給用戶留下了深刻的印象,但在最新知識和動態適應性方面存在根本的限制。為了部分緩解這些限制,開發人員引入了上下文學習,即將特定任務的信息、示例和指令填充到模型的上下文窗口中。這種方法通過基本上欺騙模型使其認為輸入提示是其訓練分佈的一部分,從而使模型能夠比以前更好地執行零樣本或少樣本任務。

雖然這提高了許多任務的準確性,但它仍然缺乏可擴展性和模塊性。這些模型無法自主尋求超出硬編碼到提示中的額外上下文,也無法動態執行任務或檢索外部知識。

檢索增強生成(RAG)

這導致了檢索增強生成(RAG)的興起,這是一種將大型語言模型與信息檢索系統相結合的框架。RAG允許模型從外部知識庫中檢索相關文檔,通常是通過使用向量數據庫的語義搜索,然後將該信息納入生成過程。這種架構有助於彌合模型預訓練和當前信息之間的知識差距,有效地成為構建需要特定領域或最新信息的AI應用程序的主要方法。

然而,這裡的主要問題是RAG基本上是唯讀的。模型可以觀察數據,但不能與之互動。它無法執行事務、查詢API或影響世界上的有狀態系統。

工具增強代理

下一個飛躍是工具增強代理的出現,它允許大型語言模型超越被動檢索,進入行動執行階段。這種方法使大型語言模型能夠在對話期間動態調用外部API、數據庫或其他軟件工具。然而,這種能力需要新的基礎設施和設計模式,以確保一致性、安全性和開發人員的易用性。

Model Context Protocol(MCP)

這就是Model Context Protocol(MCP)的用武之地。它是由Anthropic(構建Claude的公司)開發的一種突破性架構,並在AI社區中越來越被採用,以規範大型語言模型和工具之間的接口。

MCP引入了一種基於標準化JSON RPC的協議,允許大型語言模型或客戶端通過主機應用程序與外部函數或系統(如服務器)進行通信。每個工具都會公開一個清單,描述其可用的方法、參數、預期的輸入輸出以及可選的身份驗證方案(如OAuth 2.0)。

當大型語言模型確定需要採取行動時,它可以編寫並向外部工具發送結構化請求,等待響應,並將其納入正在進行的任務中。這從根本上將大型語言模型變成了一個推理引擎和協調器,能夠執行多步操作,如數據庫查詢、代碼執行,甚至是針對用戶的推薦。客戶端大型語言模型不訪問原始機密或內部基礎設施,它只是通過協議使用定義的方法。它們不再僅僅依賴於預訓練或檢索,而是可以通過安全的可插拔接口動態擴展其能力。這解決了幾個關鍵的痛點,如知識過時、上下文有限以及無法採取行動。

贊助商:Abacus AI的DeepAgent

今天影片的贊助商是Abacus AI的DeepAgent。DeepAgent是ChatLLM生態系統的一部分,是一個強大的系統,旨在與幾乎任何MCP服務器集成。DeepAgent可以連接到您現有的工具和服務,理解複雜的目標,並自主執行複雜的多步工作流程。它是真正的智能自動化。

  • 使用DeepAgent的Figma MCP,您可以輕鬆地將複雜的模型轉換為完全編碼的響應式網站。HTML、CSS和JavaScript一氣呵成,節省了您數天的開發時間。

  • 將DeepAgent連接到GitHub,它可以分析拉取請求和代碼庫。它可以確定關鍵的代碼更改,檢測API修改,甚至突出顯示主要的架構變化。

  • DeepAgent還可以智能地與Google Maps聊天,根據您的動態需求規劃優化的多站路線。例如,它可以在一英里半徑內找到評價最高的咖啡店,並創建一個完美的行程來訪問其中的三家。

DeepAgent推出了兩件大事:全面的MCP支持已經上線,並且有一個新的DeepAgent週度競賽。如果您是DeepAgent的訂閱者,提交您最具創新性的創作,就有機會贏得2,500美元。要了解有關Abacus AI的DeepAgent的更多信息,請查看固定評論和描述以獲取詳細信息。

上下文作為模擬記憶

有一個非常核心的概念,即上下文作為模擬記憶。像GPT-4這樣的大型語言模型本質上是無狀態的。除非我們明確給它們一個記憶,否則它們在每次運行之間都沒有記憶。每次您發送提示時,模型都會從頭開始處理它,而對過去的交互沒有任何固有的意識,除非這些交互再次包含在提示本身中。

這意味著我們在多次交互中模擬的任何形式的智能,無論是跟蹤對話、始終如一地響應偏好,還是從長文檔中合成知識,都完全取決於我們在推理時包含在模型輸入窗口中的內容。這個輸入被稱為上下文。

MCP之前的集成問題

在MCP之前,將大型語言模型與外部系統集成是一項複雜的工作。每個新工具或數據源都需要自定義連接器,導致大量定制解決方案的出現,這些解決方案難以維護和擴展。這種M×N集成問題意味著對於模型和工具的每種組合,都必須開發一個獨特的集成,從而導致大量的工程開銷和潛在的錯誤。

MCP的作用

MCP是由Anthropic設計的一種開放協議,它標準化了應用程序向大型語言模型提供上下文的方式。可以將MCP想像成AI應用程序的USB-C端口。就像USB-C提供了一種標準化的方式將您的設備連接到各種外圍設備和配件一樣,MCP提供了一種標準化的方式將AI模型連接到不同的數據源和工具。它使這些大型語言模型能夠以結構化和聲明式的方式與外部系統(如工具、數據和API)進行交互。

MCP抽象了大型語言模型與其工具使用上下文之間的接口,允許模型請求其內部沒有的功能或數據,同時使工具提供者能夠安全且可擴展地公開其功能。

MCP的高級架構概述

MCP定義了一個三部分架構:

MCP主機

這是運行大型語言模型或將其集成到更大的軟件系統中的容器環境。可以將其視為協調器。它管理客戶端的生命周期,在大型語言模型和外部世界之間路由請求,實施權限範圍和安全策略等。在技術上,它通常與模型運行時緊密耦合,負責啟動和協調MCP客戶端。

MCP客戶端

每個MCP客戶端都是一個翻譯層,使大型語言模型能夠通過主機以標準化和基於模式的方式與外部系統進行交互。它將大型語言模型的意圖(通常是JSON請求)轉換為對基礎MCP服務器的結構化調用。它處理會話和連接管理,並將模型的請求解釋為操作,並以可用格式返回服務器響應。客戶端與MCP服務器保持一對一的連接,並使用標準I/O進行本地工具訪問,或使用HTTP和服務器發送事件(SSE)進行遠程或基於雲的資源訪問。

  • 標準I/O:用於本地工具或CLI風格的實用程序。客戶端和服務器在同一台機器上作為子進程運行。數據通過標準輸入和標準輸出進行管道輸入和輸出。例如,一個包裝grep或本地Python腳本的客戶端。它非常快,沒有網絡延遲,實現簡單,非常適合本地開發工具或沙盒插件。

  • HTTP和服務器發送事件(SSE):用於遠程或網絡工具,通常在雲或容器化環境中。客戶端發送HTTP POST請求以調用操作或獲取資源,服務器使用SSE流式傳回響應。SSE允許增量或流式結果,例如日誌跟蹤、部分響應或異步作業狀態。它還支持長期交互而不會阻塞,就像原始HTTP一樣。例如,模型通過其客戶端要求GitHub工具獲取PR評論。客戶端發送HTTP POST,服務器發送SSE流回評論。

MCP服務器

這是模型試圖訪問的外部工具或服務。服務器實現MCP規範,使用資源(可檢索對象,如文件或文檔)、工具(執行操作或進行更改)和提示(可重用的大型語言模型調用模板)的結構化JSON模式公開一組功能。每個服務器都提供一個內省端點,描述其接口,允許主機或模型查詢和推理它可以做什麼。

MCP的協議設計原則

  • 聲明式和自描述:MCP服務器是可內省的。它們聲明它們公開的資源、工具和提示,這使得模型能夠進行動態發現和自適應推理。這種內省模型類似於API的OpenAPI或GraphQL的內省系統。

  • 可擴展性和模塊性:任何人都可以為任何工具或API編寫符合MCP的服務器。模型可以同時與數十個這樣的工具進行交互,並且可以熱插拔新工具,而無需重新訓練或重新配置模型本身。

推薦:CodeCrafters

如果你曾經好奇如何從頭開始構建Redis、Docker、HTTP服務器、編譯器或DNS服務器,我強烈建議你查看CodeCrafters,在那裡你可以學習如何構建這些複雜的開發人員工具。這是我絕對最喜歡的基於項目的學習平台,支持超過20種不同的語言,包括我最喜歡的Go語言。你可以在描述中找到所有訂閱的40%折扣。我強烈建議查看他們的從頭開始構建Git。學習如何創建blob、樹對象、提交和存儲庫非常有趣。所以一定要查看CodeCrafters。我強烈推薦這個平台。

結尾

如果你在本影片中學到了新東西,我非常感謝你給本影片點贊並訂閱頻道。如果你想了解未來的更新,也可以考慮打開所有帖子通知。如果你想進一步支持我,我在描述中留下了我的Patreon鏈接。一如既往,非常感謝你觀看本影片,祝你編碼愉快。

Was this summary helpful?

Quick Actions

Watch on YouTube

Related Summaries

No related summaries found.

Summarize a New YouTube Video

Enter a YouTube video URL below to get a quick summary and key takeaways.