# 개요

> LMSP 1.0 초안의 개요. 로컬 모델 서비스 프로토콜이 무엇인지, 바탕이 된 설계, 계층형 아키텍처, 사양을 읽는 방법, 문서 전체에서 쓰는 용어를 설명합니다.

Source: https://madeforagent.com/ko/lmsp/1.0/
Language: ko
Specification: LMSP 1.0 (draft)
Updated: 2026-11-08

## 1.1 요약 {#abstract}

로컬 모델 서비스 프로토콜(LMSP)은 클라이언트가 사용자의 기기나 로컬 네트워크에서 실행되는 언어 모델 서비스를 찾아 사용하는 방법을 정의한다. 서비스 검색, 모델 카탈로그, 동기 생성과 스트리밍 생성, 재시작 후에도 유지되는 비동기 작업을 규정한다. 또한 하나의 서비스가 LMSP 인터페이스와 함께 OpenAI 호환 인터페이스를 제공하는 방법을 정의하여, 기존 클라이언트가 계속 동작하도록 한다.

LMSP는 OpenAI API, Ollama, MCP를 대체하지 않는다. 각각의 강점을 상주형 로컬 서비스에 맞는 프로토콜 계층으로 묶은 것이다.

## 1.2 이 문서의 상태 {#status}

이 문서는 2026-11-08에 공개된 LMSP 1.0의 첫 공개 초안이다. "LMSP"는 가칭이다. 내용은 피드백을 받고 있으며, 1.0이 확정되기 전까지는 호환되지 않는 방식으로 바뀔 수 있다.

영어 텍스트가 규범이다. 번역본은 편의를 위해 제공되며, 둘이 다를 경우 영어 텍스트가 우선한다.

## 1.3 설계 기반 {#design-basis}

LMSP는 새로운 설계를 발명하지 않고, 검증된 설계를 재사용한다.

- **OpenAI Responses API.** 구조화된 출력 항목, 의미를 가진 서버 전송 이벤트, 장시간 작업을 위한 조회와 취소를 갖춘 백그라운드 실행. LMSP 핵심 대화 인터페이스의 기준이다. [스트리밍 응답](https://developers.openai.com/api/docs/guides/streaming-responses)과 [백그라운드 모드](https://developers.openai.com/api/docs/guides/background)를 참고한다.
- **Ollama.** OpenAI 호환 `/v1/models`, `/v1/chat/completions`, `/v1/responses` 엔드포인트를 제공하며, 하나의 서비스에 OpenAI 적응 계층을 더하면 도입 비용이 크게 낮아진다는 것을 보여 준다. [Ollama의 OpenAI 호환성](https://docs.ollama.com/api/openai-compatibility)을 참고한다.
- **Model Context Protocol(MCP).** 최신 설계는 필수 세션 초기화에서 무상태 검색으로 옮겨 갔다. 모든 요청이 자체 버전 정보를 담고, 클라이언트는 검색 인터페이스를 통해 기능을 알아낸다. 재시작, 클라이언트 충돌, 연결 끊김이 있어도 프로토콜 상태가 손상되어서는 안 되는 로컬 서비스에 알맞다. [MCP](https://modelcontextprotocol.io/)를 참고한다.
- **Agent2Agent(A2A).** 서비스 카드, 명시적인 작업 상태, 작업 구독과 취소는 LMSP의 서비스 설명과 비동기 작업 모델에 영향을 주었다. [A2A](https://a2a-protocol.org/)를 참고한다.

## 1.4 아키텍처 {#architecture}

LMSP는 모델 런타임과 통신하는 어댑터 위에 3개의 계층으로 구성된다.

```text
+---------------------------------------------------------------+
| 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장](https://madeforagent.com/ko/lmsp/1.0/discovery.md)).
- **핵심.** 모델 카탈로그, 동기 응답, 서버 전송 이벤트, 비동기 작업([5~7장](https://madeforagent.com/ko/lmsp/1.0/models.md)).
- **호환.** OpenAI 호환 API와 선택적인 Ollama 호환 API([8장](https://madeforagent.com/ko/lmsp/1.0/compatibility.md)).
- **어댑터.** llama.cpp, Ollama, vLLM 또는 사용자 정의 런타임으로의 브리지.

기본 원칙은 **하나의 모델 실행 코어, 두 개의 인터페이스 계열**이다. 서비스는 같은 코어 위에서 LMSP 인터페이스와 OpenAI 인터페이스를 제공하므로, 모델을 로드하고 요청을 실행하고 작업을 추적하는 곳이 한 군데로 정해진다.

## 1.5 적합성 표현 {#conformance}

이 문서에서 굵게 표기된 **해야 한다**(MUST), **해서는 안 된다**(MUST NOT), **필수**(REQUIRED), **것이 좋다**(SHOULD), **않는 것이 좋다**(SHOULD NOT), **권장**(RECOMMENDED), **수 있다**(MAY), **선택**(OPTIONAL)은 [BCP 14](https://www.rfc-editor.org/info/bcp14)([RFC 2119](https://www.rfc-editor.org/rfc/rfc2119), [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174))에 설명된 대로 해석한다. 굵게 표기되지 않은 경우에는 일반적인 말로 쓰인 것이다.

각 페이지에는 규범적인지 참고용인지가 표시되어 있다. 규범적 페이지는 요구 사항을 정의하고, 참고용 페이지는 안내를 제공한다. 예시는 모두 참고용이다. JSON은 UTF-8을 쓰며, 필드 이름은 `snake_case`를 쓴다.

## 1.6 용어 {#terminology}

| 용어 | 의미 |
| --- | --- |
| 서비스 | LMSP를 구현하고 어댑터를 통해 모델을 실행하는 상주 프로세스. |
| 클라이언트 | 서비스를 찾아 호출하는 소프트웨어. 에이전트, 애플리케이션, 도구 등. |
| 어댑터 | 서비스를 하나의 모델 런타임(llama.cpp, Ollama, vLLM 등)에 연결하는 구성 요소. |
| 모델 | 로컬에서 사용할 수 있는 모델. 안정적인 `id`로 식별된다. |
| 응답 | 하나의 생성 요청의 결과. 출력 항목, 사용량, 상태로 이루어진다. |
| 작업 | 응답 요청을 영속화하여 비동기로 실행하는 것. 명시적인 상태를 가진다. |
| 이벤트 | 응답이 생성되는 동안 내보내는, 순번이 붙은 서버 전송 이벤트 하나. |
