10多年前,我還在IBM工作,內部有個特定的崗位叫做BA(Business Analyst),有點兒像現在的產品經理,就是負責和客戶打交道,收集、分析客戶需求,然后讓程序員在系統中實現。
有一回我遇到了一個與眾不同的老外BA,全名我忘了,名字以J開頭,就叫她J姐吧。
別的BA在測試系統時也就是在界面上操作,點來點去,看看對不對,而J姐不一樣,在界面上點完后,一頭扎進數據庫,直接用SQL查看數據庫的數據。
然后提一個Bug:你這個表的數據不對啊,應該是這樣這樣的....
把我們都給整懵了,這太嚇人了,程序員都沒有活路了。
后來,我在一個Java文件的開頭注釋中看到了J姐的大名,原來J姐程序員出身,這個系統的早期版本就是她寫的,對代碼和數據庫比我們都熟。
轉眼10多年過去了,我再也沒有遇到過像J姐這樣的,一般的BA/產品經理是不懂代碼和SQL,即使懂一些,也很難對系統底層有這么精深的理解。
01
更厲害的“J姐”
最近,我發現一個更加強大、更加通用的“J姐”出現了。
Anthropic推出的MCP(Model Context Protocol) ,利用MCP,可以讓各種AI助理用自然語言輕松地訪問各種數據源,執行各種分析和查詢。
說概念沒啥意思,看一個例子吧,使用Claude Desktop訪問本地的SQLite數據庫。
1. 讓它連接上數據庫:
直接用自然語言就行,連接完成以后,它還非常貼心地把數據庫中的表都給讀了出來。
2. 查看產品表中有哪些產品和價格:
3.計算一下平均價格
4.分析一下價格分布,并且給出價格優化方案
是不是挺厲害的?可以這么說,有了MCP以后,你想要的任何SQL查詢都可以通過自然語言來進行了。
02
這不就是Chat2DB嗎?
你可能覺得,這不就是Chat2DB嗎?
還真不一樣,Chat2DB是人家自己訓練了一個大模型,實現自然語言到SQL的轉換。
這個MCP更像大模型一個通用的“外掛”,它是一種更具普遍性的協議,更加靈活,它可以支持各種數據源:數據庫、文件、GitHub、Google Drive、Google Maps、Slack.....
它的架構是這樣的,典型的Client/Server:
MCP Client可以運行在Claude Desktop,Zed(代碼編輯器當中)。
MCP Server其實就是對某一種數據源的封裝,把這個數據源的能力給暴露出來,讓Client去訪問。
例如對于SQLite,你就需要暴露出可以被訪問的“函數”read_query,write_query等。
當然,對于Server的每個操作,MCP協議都精確地定義了輸入和輸出,這樣Client才可以理解它有哪些能力。
types.Tool(
name="read_query",
description="Execute a SELECT query on the SQLite database",
inputSchema={
"type": "object",
"properties": {
"query": {"type": "string", "description": "SELECT SQL query to execute"},
},
"required": ["query"],
},
),
types.Tool(
name="write_query",
description="Execute an INSERT, UPDATE, or DELETE query on the SQLite database",
inputSchema={
"type": "object",
"properties": {
"query": {"type": "string", "description": "SQL query to execute"},
},
"required": ["query"],
},
),
MCP Server 寫好以后,需要在Claude中配置一下,告訴Claude,現在有這個數據源可以訪問了。
當你向Claude發出查詢“產品表的平均價格是多少?” 執行流程是這樣的:
(1) Claude利用大模型的能力把自然語言轉化成需要執行的“函數”(read-query),交由MCP Server來執行。
(2) MCP Server則把“函數”轉化為SQL,交給SQLite數據庫來執行。
SQLite是這樣,其他數據源也是如此,官方已經推出了各種各樣的MCP Server,可以直接使用:
03
美國人又領先了一步
即使是最復雜最強大的大模型,也是被困在一個信息孤島之中,和外界是隔離的。對每個數據源,都需要需要做“定制”,才能和大模型做連接。
Anthropic提出的這個MCP協議,其實就是避免大家重復造輪子,它就像電腦上的USB Type-C接口,給各種外圍設備提供了一種標準的方式,讓AI大模型可以輕松連接不同的數據源。
當年的JDBC用統一的接口屏蔽了底層數據庫的差異,讓Java代碼可以訪問各種數據庫,MCP也有點兒像。
這個協議并不是只有Anthropic 的Claude 模型可以使用,任何大模型都可以使用,這很有可能打開一個全新的賽道。
MCP協議能不能做成,還依賴于OpenAI、谷歌、微軟、Meta等AI巨頭對它的接受度,以及是否愿意把它標準化,然后推廣到整個業界。
看到MCP,我的第一感覺就是:可惜可惜,美國人又領先了一步。
MCP很難嗎? 并不難,這玩意兒正如它的名字所說Model Context Protocol,只是一個協議,只要能想到就能把它定義出來,然后一開源,有望成為一個重要標準。
它沒有誕生在國內AI相關的公司,著實可惜?。?/p>
全文完,覺得不錯的話點個贊或者在看吧!
近期爆文:
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.