為什么 API 必不可少,而 MCP 暫時(shí)是可選的
譯文作者 | Gil Feig
編輯 | 云昭
出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)
AI 助手在產(chǎn)品體驗(yàn)中的重要性日益凸顯,而一種新的標(biāo)準(zhǔn)也應(yīng)運(yùn)而生,它助力 AI 助手的構(gòu)建:模型上下文協(xié)議 (MCP)。隨著 Anthropic、OpenAI 和 Gemini 等主流大型語(yǔ)言模型 (LLM) 提供商的采用,該協(xié)議迅速在更廣泛的軟件生態(tài)系統(tǒng)中獲得了廣泛關(guān)注,各大公司紛紛構(gòu)建自己的 MCP 服務(wù)器。
作為參與構(gòu)建 MCP 服務(wù)器和 API 集成的人員,我親眼目睹了這種快速采用導(dǎo)致的混亂。一些開(kāi)發(fā)人員和產(chǎn)品經(jīng)理將 MCP 視為 API 的替代品,而另一些人則認(rèn)為 MCP 不如 API。
實(shí)際情況則更加微妙:MCP 和 API 是互補(bǔ)的。許多設(shè)計(jì)良好的 AI 系統(tǒng)都需要兩者,而一些 AI 工程師構(gòu)建的系統(tǒng)可能并不足以支持使用 MCP。
為了幫助您了解哪種解決方案適合您的特定場(chǎng)景,我將解釋每種解決方案的工作原理、局限性以及它們?nèi)绾螀f(xié)同工作。
1.MCP 和 API 如何協(xié)同工作
MCP 的核心是為大型語(yǔ)言模型與外部數(shù)據(jù)源交互提供一種標(biāo)準(zhǔn)化的方式,但這些交互通常通過(guò)現(xiàn)有的 API 進(jìn)行。當(dāng) LLM 從 MCP 服務(wù)器調(diào)用某個(gè)工具(例如在 Jira 中創(chuàng)建工單)時(shí),仍然會(huì)向相關(guān)的 Jira 端點(diǎn)發(fā)出 API 調(diào)用。
Hasura 通過(guò)即時(shí)編寫(xiě)由數(shù)據(jù)庫(kù)和服務(wù)支持的 GraphQL API,簡(jiǎn)化數(shù)據(jù)訪問(wèn),從而使開(kāi)發(fā)團(tuán)隊(duì)(或 API 使用者)能夠立即投入工作。GraphQL 本身的特性以及 Hasura 的動(dòng)態(tài)方法使集成和迭代變得簡(jiǎn)單。
MCP 的價(jià)值在于它能夠管理 LLM 與數(shù)據(jù)源之間的上下文。它提供了一個(gè)標(biāo)準(zhǔn)化的框架,用于:
- 工具選擇和調(diào)用: MCP 允許 LLM 根據(jù)用戶(hù)提示動(dòng)態(tài)選擇使用哪些工具,而不需要硬編碼的 API 調(diào)用。
- 上下文保留:該協(xié)議幫助 LLM 保留、更新和獲取上下文,這對(duì)于管理多步驟工作流程至關(guān)重要。
- 簡(jiǎn)化交互: MCP 通過(guò)提供標(biāo)準(zhǔn)協(xié)議使 LLM 和應(yīng)用程序更容易集成。
同時(shí),API 仍然處理核心數(shù)據(jù)傳輸、身份驗(yàn)證流程和與不同應(yīng)用程序的連接。
2.MCP 的安全挑戰(zhàn)需要 API 級(jí)解決方案
MCP 靈活開(kāi)放的架構(gòu)帶來(lái)了獨(dú)特的安全挑戰(zhàn)。開(kāi)發(fā)人員希望使用盡可能多的工具(API 端點(diǎn))。這導(dǎo)致密鑰通??梢栽L問(wèn)電子郵件、機(jī)密規(guī)劃工具和銷(xiāo)售數(shù)據(jù)等敏感服務(wù)。再比如,LLM 可能會(huì)誤認(rèn)為字段標(biāo)簽(將“SN”誤認(rèn)為是社保號(hào)碼而不是姓氏),從而無(wú)意中泄露敏感數(shù)據(jù)。
為了防止此類(lèi)情況發(fā)生,工程師需要集成訪問(wèn)控制級(jí)別、模式執(zhí)行和數(shù)據(jù)丟失防護(hù)。最有效的方法是將 MCP 的上下文管理功能與強(qiáng)大的 API 基礎(chǔ)架構(gòu)相結(jié)合。
例如,API 提供商的身份驗(yàn)證方法(例如 OAuth 2.0)使 LLM 能夠確認(rèn)用戶(hù)是否具有訪問(wèn)底層 API 端點(diǎn)所需的權(quán)限。API 提供商的響應(yīng)代碼可以幫助您的 LLM 診斷和解決問(wèn)題(例如,在請(qǐng)求失敗時(shí)向用戶(hù)發(fā)出警報(bào)并提供解決方案)。
3.大多數(shù) AI 用例僅需要 API
我看到一些 AI 團(tuán)隊(duì)采用 MCP 來(lái)掩蓋更深層次的問(wèn)題,例如混亂的檢索系統(tǒng)、失控的提示鏈以及團(tuán)隊(duì)間缺乏清晰的約定。他們沒(méi)有修復(fù)架構(gòu),反而增加了另一層,導(dǎo)致抽象程度更高,清晰度更低。
這些 AI 團(tuán)隊(duì)目前還不需要 MCP;他們只需要(通過(guò)構(gòu)建強(qiáng)大的 API 集成)清理他們的提示和數(shù)據(jù)管道。如果一個(gè)團(tuán)隊(duì)僅僅使用 MCP 來(lái)組織基礎(chǔ)設(shè)施層,那么現(xiàn)在可能還為時(shí)過(guò)早。
當(dāng)您能夠應(yīng)對(duì)復(fù)雜性時(shí),MCP 會(huì)非常強(qiáng)大:需要處理多個(gè)模型、數(shù)據(jù)源和下游消費(fèi)者,并且需要結(jié)構(gòu)化的合約。但在此之前,請(qǐng)先考慮在整個(gè)基礎(chǔ)架構(gòu)中構(gòu)建一致性,然后實(shí)施自動(dòng)化的歸檔、重復(fù)數(shù)據(jù)刪除和權(quán)限管理策略,以減少手動(dòng)開(kāi)銷(xiāo)并保持秩序。
4.API必不可少,MCP是暫選項(xiàng)
隨著我們構(gòu)建日益復(fù)雜的人工智能助手,理解 MCP 和 API 在集成生態(tài)系統(tǒng)中是互補(bǔ)的層至關(guān)重要。
MCP 提供上下文管理層,幫助 LLM 更有效地與外部系統(tǒng)交互,而API 則提供與這些系統(tǒng)安全可靠的連接。
認(rèn)識(shí)到兩者的關(guān)系對(duì)于成功構(gòu)建AI產(chǎn)品至關(guān)重要。盲目追求 MCP 的做法并不可取,我們需要在構(gòu)建有效的 MCP 實(shí)現(xiàn)之前,還得投入精力構(gòu)建夠硬的 API 基礎(chǔ)設(shè)施、有組織的檢索系統(tǒng)和標(biāo)準(zhǔn)化約定。
參考鏈接:
https://thenewstack.io/author/gilfeig/