Обзор

1.1 Аннотация

Local Model Service Protocol (LMSP) определяет, как клиенты находят и используют сервисы языковых моделей, работающие на устройстве пользователя или в его локальной сети. Он описывает обнаружение сервисов, каталог моделей, синхронную и потоковую генерацию, а также асинхронные задачи, переживающие перезапуск. Кроме того, он определяет, как один и тот же сервис предлагает интерфейс, совместимый с OpenAI, рядом с интерфейсом LMSP, чтобы существующие клиенты продолжали работать.

LMSP не заменяет API OpenAI, Ollama или MCP. Он объединяет их сильные стороны в слое протокола, рассчитанном на резидентный локальный сервис.

1.2 Статус документа

Это первый публичный черновик LMSP 1.0, опубликованный 2026-11-08. «LMSP» — рабочее название. Текст открыт для замечаний и может измениться несовместимо до выхода окончательной версии 1.0.

Нормативным является английский текст. Переводы предоставляются для удобства; при расхождениях приоритет имеет английский текст.

1.3 Основа проектирования

LMSP повторно использует проверенные решения вместо того, чтобы изобретать новые:

  • OpenAI Responses API. Структурированные элементы вывода, семантические события, отправляемые сервером, и фоновое выполнение с запросом состояния и отменой для долгих задач. Это эталон для основного интерфейса диалога LMSP. См. потоковые ответы и фоновый режим.
  • Ollama. Предоставляет эндпоинты /v1/models, /v1/chat/completions и /v1/responses, совместимые с OpenAI, что показывает: один сервис и слой адаптации к OpenAI резко снижают стоимость внедрения. См. совместимость Ollama с OpenAI.
  • Model Context Protocol (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).
  • Совместимость. API, совместимый с OpenAI, и, по желанию, API, совместимый с Ollama (страница 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 и запускает модели через адаптеры.
Клиент Программа, которая обнаруживает и вызывает сервис: агент, приложение или инструмент.
Адаптер Компонент, который соединяет сервис с одной средой выполнения моделей, например llama.cpp, Ollama или vLLM.
Модель Локально доступная модель, обозначаемая стабильным id.
Ответ Результат одного запроса генерации: элементы вывода, статистика использования и статус.
Задача Сохраняемое асинхронное выполнение запроса ответа с явным состоянием.
Событие Одно событие, отправляемое сервером, с порядковым номером, которое выдаётся во время генерации ответа.