Files
odysseus/specs/model-providers/lm-studio.md
T

46 lines
1.9 KiB
Markdown

# LM Studio Provider Shape
Last updated: dev@e57f60b | 2026-07-20
## Scope
Canonical provider ID `lmstudio`; native LM Studio v1 plus OpenAI Chat and
Responses compatibility; reader `src/model_capability_readers/lmstudio.py`.
## Catalog Shapes
Preferred shape is `GET /api/v1/models` with root `models[]`. Current fields
include `key`, `type` (`llm` or `embedding`), display/publisher data,
`architecture`, quantization/format/size, `max_context_length`,
`loaded_instances[].config.context_length`, and a capability object containing
`vision`, `trained_for_tool_use`, and reasoning options/defaults.
Compatibility shape `GET /api/v0/models` uses `data[]` with `id`, `type`
(`llm`, `vlm`, or embeddings), `arch`, `compatibility_type`, state, and
context metadata. It is an explicit older shape, not a loose fallback.
OpenAI `/v1/models` is identity-only when native endpoints are unavailable.
Loaded-instance context is the effective runtime context; maximum context is a
separate limit. Model type maps family, explicit capability booleans map
vision/tools/reasoning, and architecture is provider-reported model family.
## Request And Response Shape
Native v1 chat is `/api/v1/chat` and can expose stateful/MCP-oriented output;
LM Studio also supports OpenAI Chat and Responses compatibility. Keep dialect
selection explicit because tool/MCP features differ between native and
compatible paths.
## Fallback And Safety
Current reader detection identifies port 1234 as LM Studio. Prefer pathless
native `/api/v1/models` discovery where configured (#1122, #3615), then v0,
then general identity. The port mapping is a normalization hint, not endpoint
trust. An error object from an unsupported native route is not a model list.
## Current Gaps
- Runtime discovery does not yet persist native capability records.
- LM Studio API capabilities continue to evolve; each new native version needs
an explicit shape fixture before promotion.