로컬 모델 서비스 프로토콜(LMSP)
- 초안 1.0
- 갱신일
- Markdown으로 보기
LMSP가 하는 일
LMSP(Local Model Service Protocol)는 사용자의 기기나 로컬 네트워크에서 언어 모델을 실행하는 소프트웨어와, 그 소프트웨어를 사용하는 클라이언트를 위한 오픈 프로토콜입니다.
상주하는 로컬 서비스는 잘 알려진 주소에서 스스로를 설명하고 모델을 나열합니다. 생성 요청에는 JSON 또는 서버 전송 이벤트로 응답하고, 장시간 생성은 영속화된 작업으로 실행합니다. 작업은 취소할 수 있고, 연결이 끊긴 뒤에도 다시 따라갈 수 있습니다. 같은 서비스가 OpenAI API도 지원하므로, 지금 있는 클라이언트가 그대로 동작합니다.
LMSP는 OpenAI API, Ollama, MCP를 대체하지 않습니다. 각각의 강점을 상주형 로컬 서비스에 맞는 프로토콜 계층으로 묶은 것입니다.
한눈에 보기
| 항목 | 요약 |
|---|---|
| 기본 주소 | http://127.0.0.1:17832 |
| 서비스 설명 | GET /.well-known/lmsp.json |
| 핵심 인터페이스 | /lmsp/v1. HTTP 위의 JSON이며, 스트리밍은 서버 전송 이벤트 사용 |
| 호환 인터페이스 | OpenAI 클라이언트용 /v1, Ollama 클라이언트용 선택적 /api |
| 검색 | 수동 주소, 로컬 주소 탐색, 선택적 mDNS 및 DNS-SD(_lmsp._tcp.local.) |
| 인증 | 로컬 페어링으로 얻는 베어러 토큰 |
| 영속화 | 내장 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와의 관계 |
|---|---|---|
| OpenAI API | 호스팅되는 모델. 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로 바꾸세요. 예:/ko/lmsp/1.0/tasks.md.
사양 1.0
- 개요
LMSP 1.0 초안의 개요. 로컬 모델 서비스 프로토콜이 무엇인지, 바탕이 된 설계, 계층형 아키텍처, 사양을 읽는 방법, 문서 전체에서 쓰는 용어를 설명합니다.
- 전송과 배포
LMSP 서비스의 기본 수신 주소, 전송 방식, 스트리밍 형식, URL 구성과 함께, 모델 프로세스와 분리된 운영체제 서비스로 상시 실행하는 방법을 정의합니다.
- 서비스 검색
LMSP 클라이언트가 수동 설정, 루프백 탐색, 선택적 mDNS/DNS-SD로 로컬 서비스를 찾는 방법과, well-known 서비스 설명 문서를 읽는 방법을 설명합니다.
- 엔드포인트
LMSP 1.0 엔드포인트 전체 표. 메서드, 경로, 요구 수준, 용도와 함께 경로, 인증, 선택적 엔드포인트에 관한 규칙을 정리합니다.
- 모델 카탈로그
LMSP 서비스가 로컬 모델을 나열하는 방법, 모델 객체와 기능 플래그, 모델 수명 주기 상태, 안정적인 모델 id, 카탈로그 리비전을 설명합니다.
- 응답과 스트리밍
LMSP의 핵심 대화 인터페이스. Responses 형식의 요청과 출력 항목, 동기 생성과 스트리밍 생성, 서버 전송 이벤트 유형, 이벤트 id, 재연결, 도구 호출을 정의합니다.
- 비동기 작업
LMSP가 장시간 생성을 영속화된 작업으로 실행하는 방법. 작업 생성, 작업 상태 기계, 멱등한 취소, 이벤트 스트림, 미완료 작업의 재시작 정책을 정의합니다.
- OpenAI 및 Ollama 호환성
LMSP 서비스가 하나의 실행 코어 위에 얇은 데이터 변환 계층을 두어 기존 OpenAI 및 Ollama 클라이언트와 호환되는 방법과, 그 호환성의 한계를 설명합니다.
- 공통 규칙
모든 LMSP 엔드포인트가 공유하는 규칙. 버전 헤더와 확장, 멱등성 키, 오류 코드를 가진 problem+json 오류 형식, 상태 점검을 정의합니다.
- 로컬 보안
LMSP 서비스의 보안 요구 사항. 루프백 바인딩, 페어링과 베어러 토큰, 스코프, 악성 웹 페이지에 대비한 Origin 및 Host 검사, LAN 모드, 로깅 규칙을 정의합니다.
- 영속화
LMSP 서비스가 상태를 저장하는 방법. 내장 SQLite 데이터베이스, 유지할 테이블, 작업과 이벤트에 대한 트랜잭션 규칙, 보존 기간, 시작 시 복구를 정의합니다.
- 최소 실행 가능 범위
첫 LMSP 구현을 위한 권장 범위. 쓸 만한 닫힌 흐름을 이루는 열 가지 항목과, 사양 중 이후 릴리스로 미룰 수 있는 부분을 제시합니다.
자주 묻는 질문
LMSP란 무엇인가요?
LMSP(Local Model Service Protocol)는 사용자의 기기나 로컬 네트워크에서 실행되는 언어 모델 서비스를 위한 오픈 프로토콜입니다. 클라이언트가 서비스를 찾고, 모델을 나열하고, 응답을 요청하고, 출력을 스트리밍하고, 장시간 작업을 실행하는 방법을 정의합니다.
LMSP는 OpenAI API, Ollama, MCP를 대체하나요?
아니요. LMSP는 이들 위에 구축됩니다. 핵심 인터페이스는 OpenAI Responses 구조를 따르고, 서비스는 OpenAI 호환 및 Ollama 호환 엔드포인트를 함께 제공할 수 있으며, 프로토콜은 MCP의 무상태 검색과 A2A의 작업 상태를 가져옵니다.
기존 OpenAI 클라이언트로 LMSP 서비스를 사용할 수 있나요?
대체로 가능합니다. 기본 URL을 바꾸고 LMSP 토큰을 API 키로 쓰면 됩니다. 다만 서비스 검색에는 LMSP를 지원하는 클라이언트가 필요하므로, 서비스를 자동으로 찾지는 못합니다.
클라이언트는 로컬 LMSP 서비스를 어떻게 찾나요?
세 가지를 순서대로 시도합니다. 먼저 직접 입력한 주소, 그다음 관례적인 로컬 주소에서 /.well-known/lmsp.json을 요청하는 방법, 마지막으로 로컬 네트워크에서 mDNS와 DNS-SD로 _lmsp._tcp.local.을 찾는 선택적 방법입니다.
localhost에서 실행되는 모델 서비스는 안전한가요?
자동으로 안전해지지는 않습니다. 웹 페이지가 로컬 포트에 접근을 시도할 수 있기 때문입니다. LMSP 서비스는 기본적으로 루프백에 바인딩하고, 로컬 페어링으로 얻은 베어러 토큰을 요구하고, Origin과 Host 헤더를 검사하며, LAN 모드에서는 인증을 요구합니다.
사양의 현재 상태는 어떤가요?
1.0 버전은 첫 공개 초안이며 앞으로 호환되지 않는 방식으로 바뀔 수 있습니다. 영어 텍스트가 규범이며, 번역본은 편의를 위해 제공됩니다.