(點擊上方圖片查看本課程視頻)
隨著 AI 代理的使用日益增長,保證標準化、安全性及支持開放創新的協議需求也在增加。本課程將介紹三種旨在滿足這些需求的協議——模型上下文協議(MCP)、代理對代理(A2A)以及自然語言網絡(NLWeb)。
本課程將涵蓋:
• 如何通過 MCP 讓 AI 代理訪問外部工具和數據,以完成用戶任務。
• 如何通過 A2A 實現不同 AI 代理之間的通訊與協作。
• 如何通過 NLWeb 為任何網站帶來自然語言介面,讓 AI 代理能夠發現並互動內容。
• 識別 MCP、A2A 及 NLWeb 在 AI 代理語境中的核心目的與優勢。
• 解釋 各協議如何促進大型語言模型(LLM)、工具及其他代理之間的通訊與互動。
• 認識 各協議在構建複雜智能代理系統中的不同角色。
模型上下文協議(MCP) 是一個開放標準,提供應用程式向大型語言模型提供上下文和工具的標準化方式。這使得 AI 代理能夠以一致的方式連接到不同的數據來源和工具,如同萬能轉接器一樣。
讓我們來看看 MCP 的組件、與直接使用 API 相比的優勢,以及 AI 代理如何使用 MCP 伺服器的示例。
MCP 採用客戶端-伺服器架構,核心組件包括:
• 主機(Hosts):是啟動與 MCP 伺服器連接的大型語言模型應用(例如 VSCode 等程式碼編輯器)。
• 客戶端(Clients):是主機內部維持與伺服器一對一連接的組件。
• 伺服器(Servers):是暴露特定功能的輕量級程式。
協議中包含三個核心原語,是 MCP 伺服器的功能:
• 工具(Tools):AI 代理可以調用來執行操作的離散動作或功能。例如,天氣服務可能會提供「獲取天氣」工具,電子商務伺服器可能會提供「購買產品」工具。MCP 伺服器在其功能列表中宣告每個工具的名稱、描述及輸入/輸出架構。
• 資源(Resources):MCP 伺服器可提供的只讀資料或文件,客戶端可按需檢索。範例包括檔案內容、資料庫記錄或日誌檔。資源可以是文本(如代碼或 JSON)或二進制(如圖片或 PDF)。
• 提示(Prompts):預定義模板,提供建議的提示詞,支持更複雜的工作流程。
MCP 對 AI 代理帶來的顯著優勢:
• 動態工具發現:代理能動態獲取伺服器提供的工具清單及其功能說明。這與傳統 API 需靜態編碼整合並且每次 API 變更都要更新代碼不同,MCP 提供一次整合、持續適應的方案。
• 跨 LLM 的互操作性:MCP 支援不同大型語言模型,靈活切換核心模型以求最佳表現。
• 標準化安全性:MCP 包含標準身份驗證方法,提高擴展多 MCP 伺服器訪問的便利度,簡化了不同傳統 API 授權憑證和身份驗證類型管理。

想象用戶想借助 MCP 驅動的 AI 助手訂機票。
連接:AI 助手(MCP 客戶端)連接航空公司提供的 MCP 伺服器。
工具發現:客戶端詢問航空公司的 MCP 伺服器「你提供哪些工具?」伺服器回答列出如「搜尋航班」和「訂購航班」等工具。
調用工具:用戶對 AI 助手說「請幫我找一趟從波特蘭到檀香山的航班」。AI 助手利用其大型語言模型辨識出需要調用「搜尋航班」工具,並將起點、終點等參數傳給 MCP 伺服器。
執行與回應:MCP 伺服器作為調用包裝器,實際調用航空公司內部訂票 API,獲得航班資訊(如 JSON 數據)後返回給 AI 助手。
後續互動:AI 助手展示航班選項,當用戶選定航班後,助手可能調用同一 MCP 伺服器上的「訂購航班」工具完成訂票流程。
MCP 著眼於連接 LLM 與工具,而 代理對代理(A2A)協議 更進一步,使不同 AI 代理間能溝通與協作。A2A 連接來自不同組織、環境與技術棧的 AI 代理,共同完成用戶任務。
我們將探討 A2A 的組件與優點,並示範其如何應用於旅遊應用場景。
A2A 著重於代理間溝通,協同完成用戶子任務。協議的各組件助力此目標:
類似 MCP 伺服器分享工具清單,代理卡包含:
代理執行器負責將用戶聊天上下文傳遞給遠端代理,遠端代理需此資訊來理解需要完成的任務。在 A2A 伺服器中,代理利用自己的大型語言模型解析請求並用其內部工具執行任務。
遠端代理完成任務後,會產生一個成果物。成果物包含代理工作的結果、完成工作描述以及通過協議傳送的文本上下文。成果物發出後,與遠端代理的連線會關閉,直至再次需要。
此組件用於處理更新並傳遞消息,對於生產環境中智能代理系統尤其重要,能防止代理間連線在任務長時間執行時意外斷開。
• 加強協作:令不同供應商和平台的代理互相溝通、共享上下文、協作,有助於打通傳統孤立系統的自動化流程。
• 模型選擇彈性:每個 A2A 代理能自主選擇使用哪個大型語言模型服務請求,支援優化或微調,多於某些 MCP 場景下單一 LLM 連接。
• 內建身份驗證:身份驗證直接整合於 A2A 協議,為代理交互提供堅固安全架構。

現在擴展我們的旅遊訂票場景,這次用 A2A 協議實現。
用戶向多代理請求:用戶與「旅遊代理」A2A 客戶端/代理互動,說:「請幫我訂下週前往檀香山的整個行程,包括航班、酒店與租車」。
旅遊代理協調:旅遊代理接收複雜請求,利用其大型語言模型推理任務,決定需與其他專門代理互動。
代理間通訊:旅遊代理使用 A2A 協議連接下游代理,如來自不同公司的「航空公司代理」、「酒店代理」和「租車代理」。
任務分派執行:旅遊代理把具體任務分派給這些專門代理(如「搜尋檀香山航班」、「訂酒店」、「租車」)。各專門代理運行自己的大型語言模型並使用自身工具(也可能是 MCP 伺服器),完成相應任務。
整合回應:所有下游代理完成任務後,旅遊代理集合結果(航班詳情、酒店確認及租車預訂)並以聊天式回應形式發給用戶。
網站長久以來是用戶訪問互聯網資訊與數據的主要方式。
讓我們了解 NLWeb 的不同組成部分、NLWeb 的優勢,並通過旅遊應用範例說明 NLWeb 的工作原理。
NLWeb 應用(核心服務代碼):處理自然語言問題的系統。它連接平台的不同部分以生成回應。可將其視為推動網站自然語言功能的引擎。
NLWeb 協議:網站自然語言互動的基本規則集。以 JSON 格式(常用 Schema.org)回傳回應。其目標如同 HTML 促成文件分享般,為「AI 網絡」奠定簡單基礎。
MCP 伺服器(模型上下文協議端點):每個 NLWeb 設置同時作為一個MCP 伺服器。這意味著它能與其他 AI 系統共享工具(如“問答”方法)和數據。實務上讓網站內容及能力可被 AI 代理使用,使該站成為更廣泛「代理生態系」的一部分。
嵌入模型:用來將網站內容轉換為數值向量(嵌入向量)的模型。這些向量以可比較、可檢索方式捕捉語義。向量存於專用資料庫,使用者可選擇使用何種嵌入模型。
向量資料庫(檢索機制):儲存網站內容嵌入向量的資料庫。NLWeb 在收到查詢時,檢索向量資料庫找最相關資訊,快速列出按相似度排序的可能答案。NLWeb 支援多種類向量存儲系統,包含 Qdrant、Snowflake、Milvus、Azure AI 搜尋及 Elasticsearch。

再次以我們的旅遊訂票網站為例,這次其後端由 NLWeb 支持。
數據導入:旅遊網站現有產品目錄(如航班清單、酒店描述、旅遊套餐)使用 Schema.org 格式或經由 RSS 提要載入。NLWeb 工具將這些結構化資料轉為嵌入向量,存入本地或遠端向量資料庫。
自然語言查詢(人類):用戶訪問網站,未透過選單而在聊天介面輸入:「幫我找台檀香山有泳池且適合家庭入住的酒店,下週入住」。
NLWeb 處理:NLWeb 應用收取查詢,傳給大型語言模型理解,同時檢索其向量資料庫找相符酒店清單。
準確結果:大型語言模型協助解釋資料庫檢索結果,根據「家庭友好」、「泳池」及「檀香山」條件找出最佳匹配,並格式化自然語言回答。重要的是答案基於網站實際酒店目錄,而非虛構資訊。
AI 代理互動:因為 NLWeb 也作為 MCP 伺服器,外部 AI 旅遊代理可連接此網站的 NLWeb 實例。該 AI 代理可使用 ask MCP 方法直接查詢網站:ask("酒店推薦的檀香山地區是否有素食餐廳?")。NLWeb 處理該查詢,利用餐廳資訊庫(如已載入)並返回結構化 JSON 回應。
加入 Microsoft Foundry Discord,與其他學習者交流、參加答疑時段並獲得 AI 代理相關問題解答。
免責聲明: 本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。