Протокол сервиса локальных моделей (LMSP)

Что делает LMSP

LMSP (Local Model Service Protocol) — открытый протокол для программ, которые запускают языковые модели на устройстве пользователя или в его локальной сети, и для клиентов, которые пользуются этими программами.

Резидентный локальный сервис описывает себя по well-known-адресу и перечисляет свои модели. На запросы генерации он отвечает в формате JSON или событиями, отправляемыми сервером, а долгие генерации выполняет как сохраняемые задачи, которые можно отменить и снова отследить после разрыва соединения. Тот же сервис говорит и на API OpenAI, поэтому существующие сегодня клиенты продолжают работать.

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

Коротко

Тема Кратко
Адрес по умолчанию http://127.0.0.1:17832
Описание сервиса GET /.well-known/lmsp.json
Основной интерфейс /lmsp/v1, JSON поверх HTTP, потоковая передача событиями, отправляемыми сервером
Интерфейсы совместимости /v1 для клиентов OpenAI, необязательный /api для клиентов Ollama
Обнаружение Адрес вручную, проверка локальных адресов, необязательные mDNS и DNS-SD (_lmsp._tcp.local.)
Аутентификация Bearer-токены, полученные при локальном сопряжении
Хранение Встроенная SQLite, задачи переживают перезапуск
Контракт OpenAPI 3.2

Попробуйте

Если на вашем компьютере запущен сервис LMSP, весь сценарий выглядит так. Сначала выполните сопряжение и получите токен, как описано в разделе 10.2, и сохраните его в LMSP_TOKEN.

# 1. Обнаружить сервис
curl http://127.0.0.1:17832/.well-known/lmsp.json

# 2. Получить список локальных моделей
curl http://127.0.0.1:17832/lmsp/v1/models \
  -H "Authorization: Bearer $LMSP_TOKEN"

# 3. Сгенерировать ответ
curl http://127.0.0.1:17832/lmsp/v1/responses \
  -H "Authorization: Bearer $LMSP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3:14b-q4_k_m","input":[{"type":"message","role":"user","content":[{"type":"input_text","text":"Hello"}]}]}'
Протокол Что охватывает Связь с LMSP
API OpenAI Размещённые модели. Responses API — его новейший интерфейс. LMSP следует структуре Responses в основном интерфейсе, а сервис предлагает рядом с ним интерфейс, совместимый с OpenAI.
Ollama Локальная среда выполнения, которая уже предоставляет эндпоинты, совместимые с OpenAI. Может стоять за сервисом LMSP в роли адаптера, а LMSP определяет необязательные эндпоинты, совместимые с Ollama.
MCP Связывает агентов с инструментами и контекстом. LMSP связывает агентов с моделями. Оба протокола предпочитают обнаружение без состояния обязательным сессиям.
A2A Взаимодействие между агентами. LMSP заимствует карточки сервисов и явные состояния задач для описания сервиса и для своих задач.

Ресурсы

Спецификация 1.0

  1. Обзор

    Обзор черновика LMSP 1.0. Что такое Local Model Service Protocol, на каких решениях он основан, его слоистая архитектура, как читать спецификацию и какие термины используются во всём тексте.

  2. Транспорт и развёртывание

    Адреса прослушивания по умолчанию, транспорт, формат потоковой передачи и структура URL сервиса LMSP, а также его работа как службы операционной системы, отдельной от процессов моделей.

  3. Обнаружение сервисов

    Как клиенты LMSP находят локальный сервис через ручную настройку, проверку loopback-адресов и необязательные mDNS/DNS-SD, и как читать well-known-документ с описанием сервиса.

  4. Эндпоинты

    Полная таблица эндпоинтов LMSP 1.0 с методом, путём, уровнем требования и назначением, а также соглашения о путях, аутентификации и необязательных эндпоинтах.

  5. Каталог моделей

    Как сервис LMSP перечисляет свои локальные модели, объект модели и его флаги возможностей, состояния жизненного цикла, стабильные идентификаторы моделей и ревизии каталога.

  6. Ответы и потоковая передача

    Основной диалоговый интерфейс LMSP с запросами и элементами вывода в стиле Responses, синхронной и потоковой генерацией, типами событий SSE, идентификаторами событий, переподключением и вызовами инструментов.

  7. Асинхронные задачи

    Как LMSP выполняет долгие генерации как сохраняемые задачи, с созданием задач, конечным автоматом состояний, идемпотентной отменой, потоками событий и политиками перезапуска для незавершённых задач.

  8. Совместимость с OpenAI и Ollama

    Как сервис LMSP остаётся совместимым с существующими клиентами OpenAI и Ollama благодаря тонкому слою преобразования данных над единым ядром выполнения и где эта совместимость заканчивается.

  9. Общие правила

    Правила, общие для всех эндпоинтов LMSP, включая заголовки версий и расширения, ключи идемпотентности, формат ошибок problem+json с кодами ошибок и проверку работоспособности.

  10. Локальная безопасность

    Требования безопасности к сервисам LMSP, включая привязку к loopback, сопряжение и Bearer-токены, области доступа, проверки Origin и Host против вредоносных веб-страниц, режим LAN и правила журналирования.

  11. Постоянное хранение

    Как сервис LMSP хранит своё состояние, со встроенной базой SQLite, перечнем таблиц, транзакционными правилами для задач и событий, сроком хранения и восстановлением при запуске.

  12. Минимально жизнеспособный объём

    Предлагаемый объём первой реализации LMSP с десятью элементами, образующими работоспособный замкнутый цикл, и частями спецификации, которые могут подождать до следующих выпусков.

Часто задаваемые вопросы

Что такое LMSP?

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

Заменяет ли LMSP API OpenAI, Ollama или MCP?

Нет. LMSP опирается на них. Его основной интерфейс повторяет структуру OpenAI Responses, сервис может предоставлять эндпоинты, совместимые с OpenAI и Ollama, а от MCP протокол берёт обнаружение без состояния, от A2A — состояния задач.

Могут ли существующие клиенты OpenAI пользоваться сервисом LMSP?

Обычно да. Им нужен другой базовый URL и токен LMSP в качестве API-ключа. Сервис они автоматически не находят, потому что для обнаружения нужен клиент с поддержкой LMSP.

Как клиент находит локальный сервис LMSP?

Он пробует три способа по порядку. Сначала адрес, введённый вручную, затем стандартный локальный адрес, по которому запрашивает /.well-known/lmsp.json, и наконец, по желанию, поиск _lmsp._tcp.local. через mDNS и DNS-SD в локальной сети.

Безопасен ли сервис моделей на localhost?

Не автоматически, потому что веб-страницы могут пытаться обращаться к локальным портам. Сервисы LMSP по умолчанию привязываются к loopback, требуют Bearer-токены, полученные при локальном сопряжении, проверяют заголовки Origin и Host и требуют аутентификации в режиме LAN.

В каком состоянии спецификация?

Версия 1.0 — первый публичный черновик, и она ещё может измениться несовместимо. Нормативным является английский текст, а переводы предоставляются для удобства.