Protocole de service de modèles locaux (LMSP)

Ce que fait LMSP

LMSP (Local Model Service Protocol) est un protocole ouvert destiné aux logiciels qui exécutent des modèles de langage sur l’appareil ou le réseau local de l’utilisateur, et aux clients qui utilisent ces logiciels.

Un service local résident se décrit à une adresse bien connue et liste ses modèles. Il répond aux requêtes de génération en JSON ou par des événements envoyés par le serveur, et exécute les longues générations sous forme de tâches persistantes qui peuvent être annulées et suivies de nouveau après une déconnexion. Le même service parle aussi l’API OpenAI, de sorte que les clients qui existent aujourd’hui continuent de fonctionner.

LMSP ne remplace ni l’API OpenAI, ni Ollama, ni MCP. Il combine leurs points forts dans une couche de protocole conçue pour les services locaux résidents.

En un coup d’œil

Sujet Résumé
Adresse par défaut http://127.0.0.1:17832
Description du service GET /.well-known/lmsp.json
Interface principale /lmsp/v1, JSON sur HTTP, streaming avec des événements envoyés par le serveur
Interfaces de compatibilité /v1 pour les clients OpenAI, /api facultatif pour les clients Ollama
Découverte Adresse manuelle, sondage des adresses locales, mDNS et DNS-SD facultatifs (_lmsp._tcp.local.)
Authentification Jetons porteurs obtenus par appairage local
Persistance SQLite intégré, avec des tâches qui survivent à un redémarrage
Contrat OpenAPI 3.2

Essayez

Si un service LMSP s’exécute sur votre machine, voici tout le déroulé. Appairez-vous d’abord pour obtenir un jeton, comme décrit à la section 10.2, et conservez-le dans LMSP_TOKEN.

# 1. Découvrir le service
curl http://127.0.0.1:17832/.well-known/lmsp.json

# 2. Lister les modèles locaux
curl http://127.0.0.1:17832/lmsp/v1/models \
  -H "Authorization: Bearer $LMSP_TOKEN"

# 3. Générer une réponse
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"}]}]}'
Protocole Ce qu’il couvre Lien avec LMSP
API OpenAI Modèles hébergés. L’API Responses est son interface la plus récente. LMSP suit la structure de Responses pour son interface principale, et un service propose à côté une interface compatible OpenAI.
Ollama Un environnement d’exécution local qui sert déjà des points de terminaison compatibles OpenAI. Il peut se placer derrière un service LMSP en tant qu’adaptateur, et LMSP définit des points de terminaison facultatifs compatibles Ollama.
MCP Relie les agents aux outils et au contexte. LMSP relie les agents aux modèles. Tous deux préfèrent la découverte sans état aux sessions obligatoires.
A2A Collaboration entre agents. LMSP emprunte les cartes de service et les états de tâche explicites pour sa description de service et ses tâches.

Ressources

Spécification 1.0

  1. Vue d’ensemble

    Vue d’ensemble du brouillon de LMSP 1.0. Ce qu’est le Local Model Service Protocol, les conceptions sur lesquelles il s’appuie, son architecture en couches, la façon de lire la spécification et les termes employés.

  2. Transport et déploiement

    Adresses d’écoute par défaut, transport, format de streaming et organisation des URL d’un service LMSP, et façon dont il s’exécute comme service du système d’exploitation, séparé des processus de modèle.

  3. Découverte de services

    Comment les clients LMSP trouvent un service local par configuration manuelle, sondage de loopback et mDNS/DNS-SD facultatif, et comment lire le document de description de service à l’adresse bien connue.

  4. Points de terminaison

    Le tableau complet des points de terminaison de LMSP 1.0 avec méthode, chemin, niveau d’exigence et rôle, ainsi que les conventions sur les chemins, l’authentification et les points de terminaison facultatifs.

  5. Catalogue de modèles

    Comment un service LMSP liste ses modèles locaux, l’objet modèle et ses indicateurs de capacité, les états du cycle de vie d’un modèle, les identifiants de modèle stables et les révisions du catalogue.

  6. Réponses et streaming

    L’interface de conversation principale de LMSP, avec requêtes et éléments de sortie de style Responses, génération synchrone et en streaming, événements envoyés par le serveur, reconnexion et appels d’outils.

  7. Tâches asynchrones

    Comment LMSP exécute les longues générations sous forme de tâches persistées, avec création de tâche, machine à états, annulation idempotente, flux d’événements et politiques de redémarrage des tâches inachevées.

  8. Compatibilité OpenAI et Ollama

    Comment un service LMSP reste compatible avec les clients OpenAI et Ollama existants grâce à une fine couche de conversion de données au-dessus d’un seul cœur d’exécution, et où s’arrête cette compatibilité.

  9. Règles communes

    Règles partagées par tous les points de terminaison LMSP, avec les en-têtes de version et les extensions, les clés d’idempotence, le format d’erreur problem+json et ses codes, et le contrôle d’état.

  10. Sécurité locale

    Exigences de sécurité des services LMSP, avec liaison à loopback, appairage et jetons porteurs, portées, vérifications d’Origin et de Host contre les pages web malveillantes, mode LAN et règles de journalisation.

  11. Persistance

    Comment un service LMSP stocke son état, avec une base SQLite intégrée, les tables à conserver, les règles transactionnelles pour les tâches et les événements, la conservation et la reprise au démarrage.

  12. Périmètre minimal viable

    Un périmètre suggéré pour une première implémentation de LMSP, avec les dix éléments qui forment une boucle fermée utilisable et les parties de la spécification qui peuvent attendre des versions ultérieures.

Questions fréquentes

Qu’est-ce que LMSP ?

LMSP, le Local Model Service Protocol (protocole de service de modèles locaux), est un protocole ouvert pour les services de modèles de langage qui s’exécutent sur l’appareil de l’utilisateur ou sur son réseau local. Il définit la façon dont les clients découvrent un service, listent ses modèles, demandent des réponses, reçoivent la sortie en streaming et exécutent des tâches longues.

LMSP remplace-t-il l’API OpenAI, Ollama ou MCP ?

Non. LMSP s’appuie sur eux. Son interface principale suit la structure d’OpenAI Responses, un service peut proposer des points de terminaison compatibles OpenAI et Ollama, et le protocole emprunte à MCP la découverte sans état et à A2A les états des tâches.

Les clients OpenAI existants peuvent-ils utiliser un service LMSP ?

Généralement oui. Ils ont besoin d’une autre URL de base et du jeton LMSP comme clé d’API. Ils ne trouvent pas le service automatiquement, car la découverte demande un client qui prend en charge LMSP.

Comment un client trouve-t-il un service LMSP local ?

Il essaie trois choses dans l’ordre. D’abord une adresse saisie à la main, puis l’adresse locale conventionnelle, où il demande /.well-known/lmsp.json, et enfin, en option, la recherche mDNS et DNS-SD de _lmsp._tcp.local. sur le réseau local.

Un service de modèles sur localhost est-il sûr ?

Pas automatiquement, car des pages web peuvent essayer d’atteindre des ports locaux. Les services LMSP écoutent par défaut sur loopback, exigent des jetons porteurs obtenus par appairage local, vérifient les en-têtes Origin et Host, et exigent une authentification en mode LAN.

Quel est l’état de la spécification ?

La version 1.0 est un premier brouillon public et peut encore changer de façon incompatible. Le texte anglais fait foi, et les traductions sont fournies par commodité.