駕馭模型上下文協定:AI 整合在 Azure 及其他領域的新紀元
大型語言模型 (LLM) 的出現,無可否認地徹底改變了人工智慧的格局。然而,一個持續存在的挑戰仍然存在:如何有效地將這些模型與專有資料整合。雖然 LLM 擅長處理來自網際網路的大量資訊,但它們真正的潛力在於作為我們應用程式和資料的自然語言介面,讓我們能夠在受控環境中利用它們的預測和生成能力。
為了確保 LLM 輸出的可靠性和相關性,各種策略應運而生,每種策略都旨在彌合這些模型與特定資料集之間的差距。這些策略範圍廣泛,從建立自訂嵌入和採用檢索增強生成 (RAG) 技術(利用圖形資料庫來發現資料中複雜的關係),到利用 LLM 來提取和呈現透過使用者提示觸發的 OpenAPI 呼叫所獲得的資料。此外,OpenAI 的 ChatGPT 推廣的 plug-in 模型提供了另一種資料整合途徑。在這些多樣化的方法中,模型上下文協定 (MCP) 作為一種有前途的解決方案脫穎而出,可標準化 LLM 與外部資料來源之間的連接。
揭開模型上下文協定的面紗
模型上下文協定是由 Anthropic 在 2024 年底推出,代表著在簡化 LLM 與使用者特定資料之間互動方面邁出的重要一步。該協定強調了上下文在 AI 應用程式中的關鍵作用,並認識到 AI 交付連貫且有意義的輸出的能力取決於相關上下文資訊的可用性。僅僅依靠聊天提示來引出明智的回應,充其量是一種樂觀的嘗試,最壞的情況是導致不準確或誤導性結果的配方。為了構建能夠圍繞我們的資料協調工作流程的強大、半自主代理程式,提供資料給這些代理程式的可靠機制至關重要。
作為一個開放原始碼倡議,MCP 為各種程式語言提供了 SDK 實作,並在其 GitHub 儲存庫中提供了全面的文件。此文件使開發人員能夠有效地實作或利用 MCP 伺服器。該專案將 MCP 描述為「AI 應用程式的 USB-C 埠」,恰如其分地捕捉了它的本質,突顯了它標準化與各種資料來源連接的能力。MCP 建立在標準化的基礎之上,可以輕鬆地與現有專案整合,與各種 LLM 和推論提供者無縫連接。
MCP 的架構遵循一個完善的客戶端/伺服器模型,其中代理負責將 MCP 請求轉換為本地或遠端請求。此設計反映了介面定義語言(如 CORBA)的功能,將 MCP 轉換為一個多功能的互操作性層,促進資訊來源和 LLM 應用程式之間的無縫切換。MCP 利用 JSON RPC 連接,透過 Azure API 管理等工具,在個別使用者層級實現細粒度控制。
MCP 促進了 AI 驅動程式碼的通用介面的開發,Microsoft 的 AI 開發平台越來越多地採用它就是證明。從它在 Semantic Kernel 模型協調工具中的整合,到它作為與 Azure OpenAI 和 Azure AI Foundry 相容的 MCP 伺服器的部署,MCP 正在迅速獲得青睞。Microsoft 還在增強 Azure API 管理的功能,以根據使用者憑證控制資料存取,從而進一步鞏固 MCP 在安全且受治理的 AI 部署中的作用。
Azure MCP 伺服器:一個早期的實作
最近公開預覽的開放原始碼 Azure MCP 伺服器,是 Microsoft 平台上 MCP 的早期實作範例。此伺服器充當 AI 存取 Azure 關鍵服務的通用代理,並堅持許多近期 Azure 專案所採用的開放原始碼原則。它的程式碼可以在 GitHub 上輕鬆存取。Azure MCP 伺服器提供對 Azure 平台大部分的存取,包括資料庫、儲存解決方案和 Azure CLI 等服務。
包含對 Azure CLI(和開發人員 CLI)的支援尤其值得注意,因為它使 MCP 驅動的代理程式能夠直接與 Azure 互動,將 MCP 呼叫視為運算子。此功能為構建提供自然語言自助服務介面到 Azure 的代理程式鋪平了道路。例如,代理程式可以獲取基礎架構的描述,並自動產生其部署所需的 ARM 範本。進一步擴展此概念,可以設想一個多模式代理程式,它可以分析白板草圖,得出必要資源的描述,然後部署基礎架構,從而實現立即的程式碼開發。透過 Azure MCP 伺服器存取其他系統管理服務包括列出當前資源群組和利用 KQL 查詢 Azure 監視記錄。
將 Azure MCP 伺服器與 GitHub Copilot Chat 整合
由於它遵循 MCP 標準,Azure MCP 伺服器可以與任何支援 MCP 的 AI 工具無縫整合,例如 GitHub Copilot 代理程式模式。只需將伺服器添加到您的租戶,您就可以開始透過 Copilot 提出問題,可以直接提出,也可以透過 Visual Studio Code 整合提出。後一個選項提供了一種有效的方法來學習如何利用 MCP 並為您自己的基於 MCP 的 AI 應用程式構建提示。
目前,Microsoft 尚未發布適用於其程式語言的專用 MCP 工具,因此需要使用官方 SDK 來開發自訂程式碼。憑藉對 TypeScript、C# 和 Python 的支援,開發人員可以存取必要的工具來建立自己的 Azure MCP 代理程式。可以使用現有的 Azure 憑證在 Visual Studio Code 中進行實驗。
伺服器在您的開發 PC 上運行,並且需要 Node.js。可以直接從專案的 GitHub 儲存庫安裝到 VS Code 中。安裝後,請確保 GitHub Copilot 和 GitHub Copilot Chat 擴充功能都已配置為使用實驗性代理程式模式(可透過 VS Code 設定工具存取)。隨後,開啟 GitHub Copilot 聊天窗格並切換到代理程式模式。驗證 Azure MCP 伺服器是否已安裝在工具下拉式選單中。您現在可以提交查詢,例如「列出我的 Azure 訂閱」。
經證明的工具對於任何使用 Azure 的人來說都是非常寶貴的,並且超出了 Copilot 整合的範圍。Azure MCP 伺服器可以安裝在任何支援 Node.js 的地方,從而可以將其整合到自訂代理程式中。
MCP 在 Azure AI Foundry 中的作用
Microsoft 正在迅速擴展其 MCP 工具組合,透過 MCP 公開現有功能或啟用它們在代理程式應用程式中的使用。這種快速推出包括用於 Copilot Studio 的無程式碼代理程式開發工具,這些工具是在撰寫本文期間宣布的。
Azure AI Foundry 是 Microsoft 用於大規模 AI 應用程式開發的主要開發平台,它也在積極開發 MCP 伺服器,以補充 Azure 的 AI 代理程式服務。此整合旨在將在 Azure AI Foundry 中運行的代理程式與作為其他 AI 應用程式一部分運行的客戶端連接起來。
此服務允許您快速重新利用現有的 AI 程式碼和服務,並將它們連結到新的應用程式。諸如 Fabric 之類的服務將其代理程式功能公開為 AI 代理程式服務端點,使 AI 應用程式能夠無縫連接到核心業務線資料,從而提供基本的基礎,以減輕幻覺和錯誤的風險。
安裝後,伺服器提供一組 MCP 動作,用於連接到代理程式並向其發送查詢。它還可以列出可用的代理程式或利用預設代理程式來執行特定任務。包含對對話線程的支援,從而為代理程式提供用於上下文對話的基本語義記憶體。您將需要 Azure AI 代理程式服務代理程式 ID 才能使用 MCP 呼叫它們。
伺服器是用 Python 實作的,可以使用 Azure CLI 透過 pip
安裝。或者,對於那些喜歡它的人,可以使用 TypeScript 版本。與 Azure MCP 伺服器類似,此伺服器在 AI Foundry 環境之外運行,允許將其安裝在開發 PC 上或作為雲端託管應用程式的一部分安裝在自己的容器或 VM 中,並支援 Windows、macOS 和 Linux。
從 Semantic Kernel AI 應用程式利用 MCP 伺服器
作為一個開放標準,MCP 允許伺服器與任何客戶端相容。GitHub 儲存庫提供了有關如何使用 Anthropic 的 Claude Desktop 建立連接的說明,但真正的價值在於在 Semantic Kernel 中構建自訂代理程式工作流程。
Microsoft 提供了範例程式碼,示範瞭如何將 MCP 支援整合到 Semantic Kernel 協調中,將其視為與熟悉的功能呼叫整合的內核 plug-in。這些整合可以封裝為代理程式並根據需要存取。雖然 MCP 在 Semantic Kernel 中的整合仍在開發中,但它與其現有的功能集無縫整合,只需最少的額外程式碼即可將 MCP 工具從伺服器公開到 AI 應用程式。
諸如 MCP 之類的工具是現代 AI 堆疊的關鍵組件,它提供了一種標準化的方法來構建本地和遠端應用程式的可發現介面。一旦定義,MCP 工具就可以輕鬆呼叫,伺服器提供可用工具的列表,並且 MCP 為 LLM 提供了一種標準化的方式來呼叫這些工具並利用它們的輸出。這種方法極大地有助於為 AI 應用程式提供通用基礎工具,同時使用標準 API、資料庫查詢和 AI 代理程式。