Протокол сервиса локальных моделей (LMSP)
- Черновик 1.0
- Обновлено
- Открыть как Markdown
Что делает 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 соотносится с другими протоколами
| Протокол | Что охватывает | Связь с LMSP |
|---|---|---|
| API OpenAI | Размещённые модели. Responses API — его новейший интерфейс. | LMSP следует структуре Responses в основном интерфейсе, а сервис предлагает рядом с ним интерфейс, совместимый с OpenAI. |
| Ollama | Локальная среда выполнения, которая уже предоставляет эндпоинты, совместимые с OpenAI. | Может стоять за сервисом LMSP в роли адаптера, а LMSP определяет необязательные эндпоинты, совместимые с Ollama. |
| MCP | Связывает агентов с инструментами и контекстом. | LMSP связывает агентов с моделями. Оба протокола предпочитают обнаружение без состояния обязательным сессиям. |
| A2A | Взаимодействие между агентами. | LMSP заимствует карточки сервисов и явные состояния задач для описания сервиса и для своих задач. |
Ресурсы
- Спецификация, версия 1.0 (черновик).
- Контракт OpenAPI в формате JSON или YAML.
- llms.txt и llms-full.txt для языковых моделей.
- Каждая страница доступна в формате Markdown. Замените завершающий слэш в её адресе на
.md, например/ru/lmsp/1.0/tasks.md.
Спецификация 1.0
- Обзор
Обзор черновика LMSP 1.0. Что такое Local Model Service Protocol, на каких решениях он основан, его слоистая архитектура, как читать спецификацию и какие термины используются во всём тексте.
- Транспорт и развёртывание
Адреса прослушивания по умолчанию, транспорт, формат потоковой передачи и структура URL сервиса LMSP, а также его работа как службы операционной системы, отдельной от процессов моделей.
- Обнаружение сервисов
Как клиенты LMSP находят локальный сервис через ручную настройку, проверку loopback-адресов и необязательные mDNS/DNS-SD, и как читать well-known-документ с описанием сервиса.
- Эндпоинты
Полная таблица эндпоинтов LMSP 1.0 с методом, путём, уровнем требования и назначением, а также соглашения о путях, аутентификации и необязательных эндпоинтах.
- Каталог моделей
Как сервис LMSP перечисляет свои локальные модели, объект модели и его флаги возможностей, состояния жизненного цикла, стабильные идентификаторы моделей и ревизии каталога.
- Ответы и потоковая передача
Основной диалоговый интерфейс LMSP с запросами и элементами вывода в стиле Responses, синхронной и потоковой генерацией, типами событий SSE, идентификаторами событий, переподключением и вызовами инструментов.
- Асинхронные задачи
Как LMSP выполняет долгие генерации как сохраняемые задачи, с созданием задач, конечным автоматом состояний, идемпотентной отменой, потоками событий и политиками перезапуска для незавершённых задач.
- Совместимость с OpenAI и Ollama
Как сервис LMSP остаётся совместимым с существующими клиентами OpenAI и Ollama благодаря тонкому слою преобразования данных над единым ядром выполнения и где эта совместимость заканчивается.
- Общие правила
Правила, общие для всех эндпоинтов LMSP, включая заголовки версий и расширения, ключи идемпотентности, формат ошибок problem+json с кодами ошибок и проверку работоспособности.
- Локальная безопасность
Требования безопасности к сервисам LMSP, включая привязку к loopback, сопряжение и Bearer-токены, области доступа, проверки Origin и Host против вредоносных веб-страниц, режим LAN и правила журналирования.
- Постоянное хранение
Как сервис LMSP хранит своё состояние, со встроенной базой SQLite, перечнем таблиц, транзакционными правилами для задач и событий, сроком хранения и восстановлением при запуске.
- Минимально жизнеспособный объём
Предлагаемый объём первой реализации 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 — первый публичный черновик, и она ещё может измениться несовместимо. Нормативным является английский текст, а переводы предоставляются для удобства.