跳至內容

模型上下文協定

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
模型上下文協定
開發單位Anthropic
規範發布2024年11月25日 (2024-11-25)
官方網站modelcontextprotocol.io 編輯維基數據鏈結

模型上下文協定(英語:Model Context Protocol,縮寫:MCP)是Anthropic所推動的一項開放標準[1],目的是為大型語言模型應用提供一個標準化介面,使其能夠連接外部資料來源和工具,並與其互動[2]

MCP的目標在克服大型語言模型應用僅依賴其訓練資料的局限性,使其能夠取得所需的上下文資訊,以執行更廣泛的任務。MCP通過定義一套通用的準則和格式,使得大型語言模型應用可以在需要時動態地取得相關資訊、執行操作,從而增強其功能和使用範圍。

概述

[編輯]
MCP客戶端與伺服器的關係

模型上下文協定的核心在於建立一個標準化的通訊層,使得大型語言模型能夠在處理使用者請求或執行任務時,如果需要訪問外部資訊或功能,可以通過MCP客戶端向MCP伺服器傳送請求。MCP伺服器則負責與相應的外部資料來源或工具進行互動,取得資料並按照MCP協定規範進行格式化,最後將格式化後的資料返回給大型語言模型。大型語言模型接收到上下文資訊後,可以將其用於生成更準確、更相關的回覆,或者執行使用者請求的操作。

核心概念

[編輯]
  • 協定規範(Protocol Specification): 定義了客戶端和伺服器端之間通訊的規則、資料格式、請求和回應結構以及錯誤處理機制。[3]
  • MCP客戶端(MCP Client): 在 LLM或其服務基礎設施端的實現,負責構建請求並行送給MCP伺服器。Anthropic 提供了多種程式語言(如Python、TypeScript和Java)的SDK,以簡化MCP客戶端的開發。[4]
  • MCP伺服器(MCP Server): 在外部系統端的實現,接收來自MCP客戶端的請求,與實際的資料來源或工具進行互動,並將取得的資料按照MCP協定規範格式化後返回給客戶端。
  • 上下文資訊交換(Contextual Information Exchange): 促進大型語言模型與外部系統之間上下文資訊的雙向交換。
  • 能力協商(Capability Negotiation): 允許客戶端和伺服器在通訊開始時確定彼此支援的功能和協定版本。[5]

技術細節

[編輯]

模型上下文協定 的技術實現旨在為大型語言模型應用與外部資料來源和工具之間的無縫整合提供標準化的方法。[2] 該協定基於JSON-RPC 2.0訊息格式,建立狀態連接,並支援伺服器和客戶端的能力協商。[2]

基礎協定

[編輯]

MCP的核心通訊協定基於JSON-RPC 2.0訊息格式。[6] 這是一種輕量級的遠端程序呼叫協定,使用JSON作為資料格式。[6] MCP連接是狀態化的,允許在連接的生命周期內進行多次請求和回應。[2] 協定還支援 伺服器和客戶端的能力協商,使得雙方在通訊開始時可以確定彼此支援的功能。[2]

通訊方式

[編輯]

MCP使用JSON-RPC 2.0訊息在主機(發起連接的大型語言模型應用)、[2] 客戶端(主機應用內的連接器)[2] 和伺服器(提供上下文和能力的外部服務)[2] 之間建立通訊。[2]

伺服器功能

[編輯]

MCP伺服器可以向客戶端提供以下功能:

  • 資源(Resources): 供使用者或 AI 模型使用的上下文和資料。[2]
  • 提示(Prompts): 供使用者使用的模板化訊息和工作流。[2]
  • 工具(Tools): 供 AI 模型執行的函式。[2]

客戶端功能

[編輯]

MCP客戶端可以向伺服器提供以下功能:

  • 採樣(Sampling): 伺服器發起的代理行為和遞迴 LLM 互動。[2]

附加實用工具

[編輯]

MCP 還定義了以下附加實用工具,以增強協定的功能:

  • 組態(Configuration)[2]
  • 進度跟蹤(Progress tracking)[2]
  • 取消(Cancellation)[2]
  • 錯誤報告(Error reporting)[2]
  • 紀錄檔記錄(Logging)[2]

應用場景

[編輯]

MCP可以應用於增強型AI助手、知識管理系統、客戶服務聊天機器人、內容創作工具、軟體開發、金融分析和醫療保健等領域。[7][8]

參見

[編輯]

參考資料

[編輯]

外部連結

[編輯]