MCP 架構(gòu)設(shè)計(jì)剖析:從 Service Mesh 演進(jìn)到 Agentic Mesh 原創(chuàng) 精華
MCP 最近越來越火熱,MCP 從架構(gòu)設(shè)計(jì)的角度來看,它本質(zhì)上是數(shù)據(jù)或者工具的代理層(Proxy),隨著多 Agents 智能體應(yīng)用在企業(yè)復(fù)雜業(yè)務(wù)場景中的落地,如何讓自主 Agent 間能夠相互發(fā)現(xiàn)、協(xié)作、互動和交易?Agentic Mesh 應(yīng)運(yùn)而生。而 MCP 架構(gòu)正是 Agentic Mesh 的一種落地實(shí)現(xiàn)方式,下我詳細(xì)剖析。
為了幫助大家理解 Mesh 架構(gòu)的設(shè)計(jì),我們先剖析下 Service Mesh。
1、Service Mesh 架構(gòu)設(shè)計(jì)剖析
第一、Service Mesh 架構(gòu)定義
微服務(wù)架構(gòu)繼續(xù)演進(jìn),就變成了 Service Mesh 架構(gòu)(服務(wù)網(wǎng)格)。Servie Mesh 架構(gòu)最早由開發(fā) Linkerd 的 Buoyant 公司提出,并在內(nèi)部使用。2016年09月29日第一次公開使用,2017年初進(jìn)入國內(nèi)技術(shù)社區(qū)視野。Service Mesh 到底是什么?我們來看看 Linerd 公司 CEO Willian Morgan 對 Service Mesh 的定義如下圖所示:
Service Mesh 是一個(gè)基礎(chǔ)設(shè)施層,用于處理服務(wù)間交互。云原生應(yīng)用有著復(fù)雜的服務(wù)拓?fù)洌琒ervice Mesh 負(fù)責(zé)在這些拓?fù)渲袑?shí)現(xiàn)請求的可靠傳遞。在線上實(shí)踐中,Service Mesh 通常實(shí)現(xiàn)為一組輕量級的網(wǎng)絡(luò)代理(Sidecar 邊車),它們與應(yīng)用程序部署在一起,并且對應(yīng)用程序透明。
如上圖所示,應(yīng)用程序A和應(yīng)用程序B交互,請求調(diào)用關(guān)系如下:應(yīng)用程序A調(diào)用本地的 Sidecar A,Sidecar A 在通過網(wǎng)絡(luò)交互調(diào)用遠(yuǎn)端的 Sidecar B,再由 Sidecar B 把請求傳遞給應(yīng)用程序B。請求回應(yīng)關(guān)系也是類似:應(yīng)用程序B調(diào)用 Sidecar B,Sidecar B 在通過網(wǎng)絡(luò)交互調(diào)用遠(yuǎn)端的 Sidecar A,再由 Sidecar A 把請求回應(yīng)傳遞給應(yīng)用程序A。通過把服務(wù)治理功能從服務(wù)自身中物理剝離出來,下沉形成獨(dú)立的進(jìn)程,從而物理解耦。
在這樣的架構(gòu)模式下,業(yè)務(wù)應(yīng)用程序再也不需要關(guān)注服務(wù)治理的功能,服務(wù)治理的功能升級也不要依賴于服務(wù)自身,從而能夠讓業(yè)務(wù)迭代更快速和高效。同時(shí)由于服務(wù)治理功能變成一個(gè)獨(dú)立的進(jìn)程,只需要使用一種語言打造即可,業(yè)務(wù)服務(wù)自身可以選擇業(yè)務(wù)團(tuán)隊(duì)擅長的語言進(jìn)行編寫,從而能夠真正達(dá)到馬丁福勒對微服務(wù)的期望。
我們再深入分析下協(xié)議,在通信協(xié)議方面,業(yè)務(wù)應(yīng)用程序和 Sidecar 的通信可以基于 TCP 長連接,也可以基于 HTTP 1.0 或者 2.0 的長連接(思考下:是否一定要使用長連接?),Sidecar 間的通信協(xié)議沒有特殊要求;在數(shù)據(jù)傳輸協(xié)議方面,可以是 JSON/XML 等跨語言的文本協(xié)議,也可以選擇 Protobuffers/MessagePack 等跨語言的二進(jìn)制協(xié)議。
保證了通信協(xié)議和數(shù)據(jù)傳輸協(xié)議的跨語言,不同語言的應(yīng)用程序就可以無縫地和 Sidecar 進(jìn)行交互。在應(yīng)用程序和對應(yīng)的 Sidecar 部署層面,需要部署在同機(jī)(可以是同一臺物理機(jī)/虛擬機(jī),也可以是同一個(gè)Pod)。
思考下:如果部署在不同的機(jī)器上,就會又引入服務(wù)通信交互的問題,那么就會變成無解的難題:為了解決通信交互的問題,又引入新的通信交互的問題。
第二、Service Mesh 架構(gòu)落地實(shí)踐
在企業(yè)中落地 Service Mesh 的架構(gòu)設(shè)計(jì)如下圖所示:
Service Mesh 架構(gòu)框架方面,業(yè)內(nèi)陸續(xù)開源了不少的優(yōu)秀框架,Istio 是集大成者,由 Google、IBM、Lyft 等三家公司聯(lián)合打造,并已經(jīng)開源,社區(qū)版本也已經(jīng)發(fā)展到 Istio 1.25.0。IstioService Mesh 邏輯上分為數(shù)據(jù)面板(執(zhí)行者)和控制面板(指揮者),數(shù)據(jù)面板由一組智能代理(Envoy)組成,代理部署為 Sidecar,調(diào)解和控制微服務(wù)之間所有的網(wǎng)絡(luò)通信。控制面板負(fù)責(zé)管理和配置代理來路由流量,以及在運(yùn)行時(shí)執(zhí)行策略。如下圖所示,控制面板(Pilot、Mixer、Citadel)加數(shù)據(jù)面板(Envoy Proxy)即是服務(wù)治理功能,svcA 和 svcB 是業(yè)務(wù)服務(wù)自身。
2、MCP:Agentic Mesh 架構(gòu)設(shè)計(jì)剖析
第一、AI 大模型新時(shí)代的應(yīng)用:Agent 智能體
Agent 智能體正逐漸成為企業(yè) AI 的中流砥柱。這些數(shù)字化的“員工”能夠獨(dú)立完成任務(wù)、做出決策,并與其他 Agent 智能體協(xié)同工作,幾乎不需要人工干預(yù)。目前面臨的主要挑戰(zhàn)包括:
- 如何構(gòu)建可擴(kuò)展的 Agent 系統(tǒng);
- 確保 Agent 系統(tǒng)的安全性和可靠性;
- 實(shí)現(xiàn)不同 Agent 間的順暢協(xié)作;
- 使 AI 決策與企業(yè)目標(biāo)高度一致。
Agentic Mesh 被視作企業(yè)的“AI 協(xié)作平臺”,它提供了一個(gè)標(biāo)準(zhǔn)化框架,使得:
- 不同功能的 Agent 能夠安全高效地互聯(lián)互通;
- 支持復(fù)雜業(yè)務(wù)流程的自動化處理;
- 確保整個(gè) Agent 系統(tǒng)隨著業(yè)務(wù)發(fā)展的靈活擴(kuò)展。
這相當(dāng)于為企業(yè)建立了一個(gè)“數(shù)字員工團(tuán)隊(duì)”,他們各司其職且緊密協(xié)作,顯著提高運(yùn)營效率和決策質(zhì)量。
Agent 是一種能夠感知環(huán)境、處理信息并執(zhí)行行動以實(shí)現(xiàn)特定目標(biāo)的系統(tǒng),其主要特性包括:
- 自主性/自治性:無需直接人為干預(yù)即可運(yùn)作的能力;
- 反應(yīng)性:能夠?qū)崟r(shí)響應(yīng)環(huán)境變化;
- 主動性:能夠預(yù)測未來的需求并采取相應(yīng)行動;
- 社交性:能夠與其他個(gè)體、人類和系統(tǒng)進(jìn)行互動與合作。
這些特性使得自治 Agent 能夠推動企業(yè)環(huán)境中的自動化、優(yōu)化流程和改進(jìn)決策。
第二、MCP:Agentic Mesh 架構(gòu)設(shè)計(jì)
Agentic Mesh 是讓自主 Agent 能夠相互發(fā)現(xiàn)、協(xié)作、互動和交易的互聯(lián)生態(tài)系統(tǒng)。Agentic Mesh 生態(tài)系統(tǒng)組成包括:
- Marketplace:用戶發(fā)現(xiàn)和使用 Agent 的主界面;
- Registry:Agent 元數(shù)據(jù)的中央存儲庫;
- DNS 系統(tǒng):Agent 定位和連接服務(wù);
- 自主 Agent:由 GenAI 驅(qū)動的執(zhí)行實(shí)體
Agentic Mesh 包括3大核心流程:Agent 注冊流程、Agent 發(fā)現(xiàn)流程、Agent 執(zhí)行流程。
1.Agent 注冊流程
Agentic Mesh 的注冊流程包括:通信 API、控制服務(wù)、元數(shù)據(jù)管理、運(yùn)行時(shí)等4個(gè)模塊層,詳細(xì)如下:
2.Agent 發(fā)現(xiàn)流程
3.Agent 執(zhí)行流程
為了打造一個(gè)具備彈性和可伸縮性的 Agentic Mesh,我們需要遵循以下關(guān)鍵原則來設(shè)計(jì)系統(tǒng):
- 可發(fā)現(xiàn)性:Agent 必須能夠動態(tài)注冊、定位以及與其他相關(guān)節(jié)點(diǎn)進(jìn)行交互。
- 互操作性:跨平臺和跨 Agent 的通信必須無縫,利用開放標(biāo)準(zhǔn),比如:API、語義本體和協(xié)議緩沖。
- 安全性和信任:必須嵌入加密方法、身份管理和訪問控制,以防止未經(jīng)授權(quán)的交互并確保 Agent 的完整性。
- 可伸縮性:體系結(jié)構(gòu)應(yīng)支持越來越多的 Agent 和任務(wù),同時(shí)不降低性能。
- 治理和合規(guī)性:必須制定政策和執(zhí)行機(jī)制,以規(guī)范 Agent 行為并確保遵從企業(yè)法規(guī)。
通過整合這些原則,組織可以構(gòu)建一個(gè)模塊化、有彈性的生態(tài)系統(tǒng),Agentic Mesh 能夠有效處理不同的企業(yè)工作負(fù)載。
AI Agent 不僅能執(zhí)行預(yù)定義的任務(wù),而且能夠產(chǎn)生新見解、綜合信息并自主地改進(jìn)策略。Agentic Mesh 將在確保這些 AI 驅(qū)動的系統(tǒng)保持互操作性、安全性和與企業(yè)目標(biāo)一致方面發(fā)揮關(guān)鍵作用。
為了構(gòu)建 Agentic Mesh,需要實(shí)踐:
- 開發(fā)標(biāo)準(zhǔn)化的 Agent協(xié)議:建立 Agent 到 Agent 通信的最佳實(shí)踐。
- 實(shí)施 AI 治理框架:確保 AI 的道德使用和遵守監(jiān)管準(zhǔn)則。
- 采用混合 AI 部署策略:利用云部署、私有部署和邊緣部署來實(shí)現(xiàn)最佳 Agent 性能。
- 多 Agent 仿真實(shí)驗(yàn):在產(chǎn)品推出之前在沙箱環(huán)境中測試大規(guī)模的 Agent 交互。
設(shè)計(jì)這些生態(tài)系統(tǒng)時(shí),首先考慮可伸縮性、安全性和治理,以確保可持續(xù)和有效的采用。通過擁抱 Agentic Mesh,企業(yè)可以釋放新的效率,提高決策,并加速AI驅(qū)動的大規(guī)模創(chuàng)新。
然而,Agentic Mesh 的解決方案尚未經(jīng)過大規(guī)模的實(shí)際考驗(yàn),也未形成業(yè)界的最佳實(shí)踐,需要我們?nèi)ヌ剿骱蛯?shí)驗(yàn)。
最近興起的 MCP(Model Context Protocol)是個(gè)不錯(cuò)的選擇,本質(zhì)是 Agentic Mesh 的一種架構(gòu)設(shè)計(jì)和實(shí)現(xiàn),它提供了一種連接 AI 應(yīng)用與外部系統(tǒng)的開放標(biāo)準(zhǔn),有助于推動 Agentic Mesh 的發(fā)展和實(shí)現(xiàn)。
總之,Data Mesh 面向的是數(shù)據(jù)產(chǎn)品, Servcie Mesh 面對的是服務(wù)的復(fù)雜性管理,而 Agentic Mesh 則是多 Agent 系統(tǒng)的一種實(shí)現(xiàn)方式 ,它們的架構(gòu)設(shè)計(jì)理念是類似的,只不過 Agentic Mesh 仍然在實(shí)踐探索之中,MCP 有望成為 Agentic Mesh 架構(gòu)設(shè)計(jì)落地的一種優(yōu)雅實(shí)現(xiàn)方案。
本文轉(zhuǎn)載自公眾號玄姐聊AGI 作者:玄姐
