Video thumbnail for Why MCP really is a big deal | Model Context Protocol with Tim Berglund

MCP模型上下文協議:企業級Agentic AI的關鍵 (附實例解析)

Summary

Language:

Quick Abstract

想在企業環境中專業地開發具備代理功能的AI應用程式嗎?模型上下文協定(Model Context Protocol,MCP)正是一個不容忽視的關鍵。它不僅僅是強化桌面應用,更是構建真正具代理功能的AI的基石。本摘要將解析MCP如何運作,並說明其在企業級AI應用開發中的重要性。拋開將它比作AI應用程式的USB-C的想法,讓我們深入了解其核心概念。

  • Quick Takeaways:

  • MCP允許AI代理存取外部資源,如檔案、資料庫和Kafka主題,擴展了LLM的功能。

  • MCP將代理構建為微服務,主應用程式透過MCP客戶端庫與MCP伺服器互動。

  • MCP伺服器提供工具、資源和提示,並透過RESTful API公開其功能。

  • 客戶端和伺服器之間的通訊可透過標準IO或HTTP/Server Sent Events進行,訊息採用JSON RPC格式。

  • MCP提供插拔性、可發現性和可組合性,讓開發者輕鬆整合和擴展AI應用程式的功能。

透過MCP,AI代理可以動態地發現並利用各種工具和資源,從而更好地響應用戶的請求,例如安排與Peter下週喝咖啡的行程,代理能夠查詢咖啡店資訊並建立行事曆邀請。伺服器本身也可以是另一個伺服器的客戶端,實現功能的組合。別再只是將代理功能嵌入單一應用,擁抱MCP,開啟企業級AI應用開發的新時代吧!

模型上下文協定 (Model Context Protocol, MCP):企業級 Agentic AI 的關鍵

模型上下文協定 (MCP) 是一個重要的概念,但許多人可能沒有充分理解其意義。現在許多人關注如何使用 Agentic 功能增強桌面應用程式,但若要像專業人士一樣在工作中使用 Agentic AI 應用程式,則需要更廣闊的視野。

理解 MCP 的運作方式

為了理解 MCP 的重要性,首先需要了解其運作方式。將 MCP 比喻為 AI 應用程式的 USB-C 可能沒有幫助,反而會造成混淆。

LLM 的基本運作

從外部角度來看,大型語言模型 (LLM) 的基本運作方式是:你提供一個提示 (prompt),LLM 會回覆一個回應。

Agentic AI 的需求

這個回應通常只是文字,如果只需要文字,那沒有問題。但是,如果希望 AI 執行某些動作,這就是 Agentic AI 的重點。 Agentic AI 旨在讓 AI 能夠在現實世界中產生影響,執行動作或調用工具。此外,AI 還需要比核心基礎模型更及時或更廣泛的資訊。

整合外部資源

為了讓 LLM 能夠訪問外部資源,通常會使用 API。

檢索增強生成 (Retrieval Augmented Generation, RAG)

有時會使用檢索增強生成 (RAG) 模式來整合外部資訊。雖然有些人認為 RAG 已經過時,但在企業環境中,RAG 仍然是一種有效的模式,可以用於將企業資料導入 LLM 可以處理的上下文中。

多樣化的外部資源

無論是否使用 RAG,模型都需要訪問各種外部資源,例如:

  • 檔案

  • 二進位檔案

  • 資料庫

  • Kafka 主題中發生的事件

這些資源包含代理 (agent) 需要知道的資訊,但這些資訊不會存在於基礎模型中。

MCP 的架構

MCP 的核心是建立一個代理 (agent),可以將其視為一個微服務。

主機應用程式 (Host Application)

在 MCP 術語中,該代理稱為主機應用程式。主機應用程式使用 MCP 客戶端函式庫來建立客戶端的實例。

MCP 伺服器 (MCP Server)

需要建立一個 MCP 伺服器。這個伺服器可能是現有的,可以利用其功能將 Agentic 功能導入服務中,也可能需要自行建立伺服器。

伺服器內部元件

伺服器內部包含:

  • 工具 (Tools)

  • 資源 (Resources)

  • 提示 (Prompts)

  • 伺服器提供的功能

伺服器會向外部世界描述這些工具、資源和功能。

客戶端與伺服器之間的通訊

客戶端和伺服器之間的連接可以使用:

  • 標準輸入/輸出 (Standard I/O):適用於在本機運行的程序。

  • HTTP 和伺服器發送事件 (Server Sent Events):訊息以 JSON RPC 格式交換。

伺服器可以向客戶端發送非同步通知,客戶端可以向伺服器宣告自身。

MCP 的工作流程範例

假設要建立一個用於安排約會的服務。

建立約會所需的工具和資源

這需要:

  • 建立日曆邀請

  • 日曆 API 整合

  • 查看日曆空閒時間

  • 取得對方日曆的存取權限(如果有的話)

  • 了解會議地點(餐廳、咖啡廳等)

  • 預訂餐廳

這些工具和資源可以整合到代理中,但這會限制其可重用性。 MCP 的目標是將這些功能放在伺服器中,使其可插拔和可發現。

工作流程

  1. 使用者輸入提示,例如「下週想和 Peter 喝咖啡」。
  2. 主機應用程式 (客戶端) 查詢代理的功能。
  3. 客戶端取得資源列表,其中包括每個資源的文字描述。
  4. 客戶端使用 LLM 判斷是否需要這些資源,例如:「這裡是用戶的請求,這裡是一個資源列表:資源一、資源二、資源三。我需要這些嗎?」
  5. LLM 回覆說:「是的,你需要資源二 (附近的咖啡廳列表)。」
  6. 客戶端向 MCP 伺服器請求資源二的詳細資訊。
  7. 客戶端將資源資料附加到下一個提示,並詢問:「這裡是用戶的提示,這裡的資源資料,我應該做什麼?」
  8. 客戶端使用 LLM 幫助其解釋資源。
  9. 對於工具,基礎模型 API 允許將工具的描述包含在 API 呼叫中。
  10. LLM 回覆是否應調用工具,並提供參數。
  11. 客戶端決定是否調用該工具。

MCP 的優點

  • 可插拔性 (Pluggability): 無需了解工具的細節即可使用它。

  • 可發現性 (Discoverability): 可以發現代理提供的功能。

  • 可組合性 (Composability): 伺服器本身可以是另一個伺服器的客戶端,例如,使用 Confluent MCP 伺服器來消耗 Kafka 主題中的資料。

結論

MCP 不僅僅是增強桌面應用程式的工具, 它是構建企業級 Agentic AI 的關鍵。 MCP 具有可插拔性、可發現性和可組合性,為構建真正的 Agentic AI 應用程式提供了一個途徑。

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.