(點擊上方圖片觀看本課視頻)
隨著 AI 代理的使用日增,確保標準化、安全性並支持開放式創新的協議需求也越來越大。在本課中,我們將介紹 3 個旨在滿足此需求的協議——模型上下文協議(MCP)、代理對代理(A2A)和自然語言網頁(NLWeb)。
本課將涵蓋:
• 如何透過 MCP 讓 AI 代理存取外部工具和數據以完成使用者任務。
• 如何使用 A2A 促進不同 AI 代理之間的通訊和協作。
• 如何利用 NLWeb 為任何網站提供自然語言介面,使 AI 代理能發現並互動網站內容。
• 識別 MCP、A2A 和 NLWeb 在 AI 代理情境中的核心目的和優勢。
• 解釋 各協議如何促進大型語言模型、工具和其他代理之間的溝通與互動。
• 認識 每個協議在構建複雜代理系統中的不同角色。
模型上下文協議(MCP) 是一個開放標準,提供一種標準化方式讓應用程式為大型語言模型(LLM)提供上下文和工具。這使得 AI 代理能以一致方式連接至不同數據源和工具,成為「萬能轉接器」。
讓我們來看看 MCP 的組件、與直接使用 API 的優勢比較,及 AI 代理如何使用 MCP 伺服器的範例。
MCP 採用 客戶端-伺服器架構,核心組件包括:
• 主機(Hosts) 是大型語言模型應用(例如像 VSCode 這樣的程式碼編輯器),它們啟動與 MCP 伺服器的連接。
• 客戶端(Clients) 是主機應用內維持與伺服器一對一連接的元件。
• 伺服器(Servers) 是公開特定功能的輕量級程式。
協議包含三個核心原語,為 MCP 伺服器的能力:
• 工具(Tools):這些是 AI 代理可呼叫以執行動作的離散操作或功能。例如,天氣服務可能公開「取得天氣」工具,電子商務伺服器可能公開「購買商品」工具。MCP 伺服器會在能力清單中廣告每個工具的名稱、描述及輸入/輸出結構。
• 資源(Resources):這些是 MCP 伺服器可提供的唯讀數據項目或文件,客戶端可按需取用。範例包括檔案內容、資料庫紀錄或日誌文件。資源可為文字(如程式碼或 JSON)或二進制(如圖片或 PDF)。
• 提示(Prompts):這些是預定義範本,提供建議提示,允許更複雜的工作流程。
MCP 為 AI 代理提供顯著優勢:
• 動態工具發現:代理可動態接收伺服器上的可用工具清單及其功能描述。與傳統 API 需靜態編碼整合且任何 API 變更都得修改程式碼不同,MCP 提供「一度整合」的方式,大幅提升適應性。
• 跨大語言模型互操作性:MCP 可跨不同 LLM 使用,提供彈性切換核心模型以評估更佳效能。
• 標準化安全性:MCP 包含標準認證方法,當新增 MCP 伺服器時提升擴展性,比管理不同傳統 API 的金鑰和認證方式更為簡單。

想像使用者想透過 MCP 支援的 AI 助理預訂機票。
連接:AI 助理(MCP 客戶端)連接至航空公司提供的 MCP 伺服器。
工具發現:客戶端詢問航空公司 MCP 伺服器「你有哪些工具可用?」伺服器回應「搜尋航班」和「預訂航班」等工具。
工具調用:接著你對 AI 助理說:「請搜尋從波特蘭到火奴魯魯的航班。」AI 助理透過其 LLM 判斷需呼叫「搜尋航班」工具並將相關參數(出發地、目的地)傳給 MCP 伺服器。
執行及回應:MCP 伺服器作為包裝器,實際呼叫航空公司內部的預訂 API,接著取得航班資訊(如 JSON 資料)並返回給 AI 助理。
進一步互動:AI 助理呈現航班選項。你選擇航班後,助理可能呼叫同一 MCP 伺服器上的「預訂航班」工具,完成預訂。
MCP 專注於連接 LLM 與工具,而 代理對代理(A2A)協議 更進一步,使不同 AI 代理間能通訊與合作。A2A 將不同組織、環境和技術堆疊的 AI 代理連接起來,共同完成共享任務。
我們將探討 A2A 的組件與優勢,以及它在旅行應用中的應用範例。
A2A 專注於使代理間溝通,並合作完成使用者子任務。協議的每個組件皆有助於此:
類似 MCP 伺服器分享工具清單,代理卡包含:
代理執行器負責將使用者聊天上下文傳遞給遠端代理,遠端代理需要該上下文以理解需完成的任務。在 A2A 伺服器中,代理使用自身的大型語言模型(LLM)解析輸入請求並透過自身內部工具執行任務。
當遠端代理完成請求任務後,會創建一個藝品。藝品包含代理工作的結果、完成功能描述及通過協議傳送的文字上下文。發送藝品後,遠端代理連接被關閉,直到再次需要。
此組件用於處理更新和傳遞訊息。在生產環境中的代理系統特別重要,用以防止代理間連接在任務完成前被關閉,尤其是當任務完成時間較長時。
• 增強協作:支持不同廠商和平台的代理互動、共享上下文和合作,使得原本分離的系統能無縫自動化。
• 模型選擇彈性:每個 A2A 代理可選擇使用的 LLM,方便根據代理優化或微調模型,不同於某些 MCP 場景只連接單一 LLM。
• 內建認證:認證直接整合於 A2A 協議中,提供代理互動的強健安全架構。

讓我們以旅行預訂場景為例,但這次採用 A2A 協議。
使用者向多代理請求:使用者透過「旅行代理」A2A 客戶端/代理,說:「請幫我預訂下週前往火奴魯魯的全套行程,包括機票、飯店和租車」。
旅行代理協調:旅行代理收到複雜請求,使用其 LLM 推理出需與其他專業代理互動。
代理間通訊:旅行代理使用 A2A 協議連接下游代理,如由不同公司建立的「航空代理」、「飯店代理」和「租車代理」。
委派任務執行:旅行代理將具體任務(例如「尋找火奴魯魯航班」、「訂飯店」、「租車」)發送給這些專業代理。各代理使用自己的 LLM 並運用自身工具(可能也是 MCP 伺服器)完成各自部分。
整合回應:下游代理完成任務後,旅行代理匯總結果(航班細節、飯店確認、租車預訂),並以聊天式回應完整回覆使用者。
網站長期以來一直是使用者訪問互聯網信息與數據的主要途徑。
讓我們來看看 NLWeb 的不同組件、優勢,以及透過旅行應用例子來理解 NLWeb 運作方式。
NLWeb 應用(核心服務程式碼):處理自然語言問題的系統。連接平台不同部分以創建回應。你可以將它視為推動網站自然語言功能的引擎。
NLWeb 協議:網站自然語言互動的基本規則集。以 JSON 格式(通常使用 Schema.org)回傳回應。其目標是為「AI 網絡」創造簡單基礎,就如同 HTML 讓線上文件分享成為可能。
MCP 伺服器(模型上下文協議端點):每個 NLWeb 設置同時也是一個 MCP 伺服器。這表示它能與其他 AI 系統分享工具(如「問」方法)和資料。實務上,這讓網站的內容與功能能被 AI 代理使用,使網站成為更廣泛「代理生態系」的一部分。
嵌入模型:用於將網站內容轉換成數值表現形式(向量)的模型。這些向量捕捉意義,使電腦可以比較和搜索。向量儲存在特別資料庫內,使用者可以選擇想用的向量模型。
向量資料庫(檢索機制):這個資料庫儲存網站內容的向量嵌入。當有人提問時,NLWeb 會檢查向量資料庫,快速找到最相關信息,提供相似度排名的備選答案清單。NLWeb 支援多種向量存儲系統,如 Qdrant、Snowflake、Milvus、Azure AI Search 和 Elasticsearch。

再次以旅行預訂網站為例,但這次由 NLWeb 提供動力。
資料攝取:旅行網站現有產品目錄(如航班列表、飯店描述、旅遊套裝行程)用 Schema.org 格式化或透過 RSS 載入。NLWeb 工具攝取這些結構化數據,創建嵌入並存儲於本地或遠端向量資料庫。
自然語言查詢(人類):使用者訪問網站,不瀏覽選單,而在聊天介面中輸入:「幫我找下週在火奴魯魯有泳池、適合家庭的飯店」。
NLWeb 處理:NLWeb 應用接收查詢。它將查詢發送給 LLM 理解,並同時檢索向量資料庫中的相關飯店列表。
精確結果:LLM 協助解讀資料庫檢索結果,根據「適合家庭」、「泳池」、「火奴魯魯」條件找出最佳匹配,並格式化自然語言回應。關鍵是回應基於網站目錄的實際飯店,避免憑空捏造資訊。
AI 代理互動:因為 NLWeb 同時作為 MCP 伺服器,外部 AI 旅行代理可連接該網站的 NLWeb 實例。AI 代理可使用 ask MCP 方法直接詢問網站:ask("酒店推薦的火奴魯魯區內有符合素食者的餐廳嗎?")。NLWeb 實例將處理該查詢,利用其餐廳資訊資料庫(如果有載入),並返回結構化 JSON 回應。
加入 Microsoft Foundry Discord,與其他學習者交流,參加開放時段並獲得 AI 代理問題解答。
免責聲明: 本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。