概述
- 資料性
- 草案 1.0
- 更新於
- 檢視 Markdown
1.1 摘要
本地模型服務協定(LMSP)規定了客戶端如何發現並使用執行在使用者自己裝置或區域網路中的語言模型服務。它定義了服務發現、模型目錄、同步與串流生成,以及在服務重啟後仍然保留的非同步任務,還規定了同一個服務如何在 LMSP 介面之外提供相容 OpenAI 的介面,使現有客戶端可以繼續使用。
LMSP 並不取代 OpenAI API、Ollama 或 MCP,而是把它們的優點組合成一個適合本地常駐服務的協定層。
1.2 本文件的狀態
這是 LMSP 1.0 的首個公開草案,發佈於 2026-11-08。「LMSP」是暫定名稱。本文歡迎回饋,在 1.0 定稿之前可能發生不相容的修改。
英文文本是規範性文本。譯文僅為方便閱讀而提供;兩者如有差異,以英文為準。
1.3 設計依據
LMSP 複用已被驗證的設計,而不是另起爐灶:
- OpenAI Responses API。 結構化的輸出項、語義化的伺服器傳送事件,以及支援查詢和取消的長任務背景執行。它是 LMSP 核心對話介面的參考。參見串流回應和背景模式。
- Ollama。 它提供相容 OpenAI 的
/v1/models、/v1/chat/completions和/v1/responses介面,說明「統一服務+OpenAI 適配層」能顯著降低現有客戶端的接入成本。參見 Ollama 的 OpenAI 相容性。 - 模型上下文協定(MCP)。 其最新設計已從強制初始化工作階段轉向無狀態發現:每個請求獨立攜帶版本資訊,客戶端透過發現介面取得伺服端能力。這非常適合本地服務,因為服務重啟、客戶端崩潰和連線斷開都不應破壞協定狀態。參見 MCP。
- Agent2Agent(A2A)。 服務卡片、顯式任務狀態、任務訂閱和取消機制,為 LMSP 的服務描述和非同步任務模型提供了借鑑。參見 A2A。
1.4 架構
LMSP 分為三層,其下是對接各模型執行環境的轉接器:
+---------------------------------------------------------------+
| Discovery mDNS / DNS-SD + well-known service document |
+---------------------------------------------------------------+
| Core model catalog, responses, SSE, async tasks |
+---------------------------------------------------------------+
| Compatibility OpenAI API, optional Ollama API |
+---------------------------------------------------------------+
| Adapters llama.cpp, Ollama, vLLM, custom runtimes |
+---------------------------------------------------------------+
- 發現層。 mDNS/DNS-SD 與 Well-Known 服務描述文件(第 3 章)。
- 核心層。 模型目錄、同步回應、伺服器傳送事件和非同步任務(第 5 至 7 章)。
- 相容層。 相容 OpenAI 的 API,以及可選的相容 Ollama 的 API(第 8 章)。
- 轉接器。 對接 llama.cpp、Ollama、vLLM 或自研執行環境的橋接層。
核心原則是:一個模型執行核心,對外同時提供 LMSP 和 OpenAI 兩種介面。服務在同一個核心之上提供這兩類介面,因此模型載入、請求執行和任務跟蹤都只有一處實作。
1.5 規範性用語
本文中的關鍵詞 必須(MUST)、不得(MUST NOT)、必需(REQUIRED)、應(SHOULD)、不應(SHOULD NOT)、建議(RECOMMENDED)、可以(MAY)和可選(OPTIONAL),僅當以粗體出現時,才按 BCP 14(RFC 2119、RFC 8174)中的含義解釋。
每一章都標明是規範性的還是資料性的。規範性章節定義要求,資料性章節提供指引,範例均為資料性內容。JSON 使用 UTF-8 編碼,欄位名使用 snake_case。
1.6 術語
| 術語 | 含義 |
|---|---|
| 服務 | 實作 LMSP 並透過轉接器執行模型的常駐行程。 |
| 客戶端 | 發現並呼叫服務的軟體:AI 代理、應用或工具。 |
| 轉接器 | 把服務連線到某個模型執行環境(如 llama.cpp、Ollama 或 vLLM)的元件。 |
| 模型 | 本地可用的模型,由穩定的 id 標識。 |
| 回應 | 一次生成請求的結果:輸出項、用量和狀態。 |
| 任務 | 對回應請求的持久化非同步執行,具有明確的狀態。 |
| 事件 | 生成回應期間發出的一條帶序號的伺服器傳送事件。 |