Repository navigation
lm15 2.3.0 for R
In R: new_router(base_models = list("tinker://..." = "Qwen/Qwen3.5-4B")) (also new_lm(base_models = )), then "tinker:tinker://..." as the model.
Tinker (Thinking Machines): base models and the models you trained there (lm15-contract 18b3788; 2,266 of 2,266 checks, the same in every lm15 language; the new rules MAP-21, MAP-22 and MAP-23 are decided and wait for ratification).
- Two new providers, one key (
TINKER_API_KEY).tinkerspeaks Chat Completions (also spelledthinkingmachines);tinker-anthropicspeaks the Anthropic Messages wire. Both serve Tinker's base models (tinker:Qwen/Qwen3.5-4B) and any sampler checkpoint by its path. - A URI is one model name.
tinker://<run>:train:0/sampler_weights/<n>routes to Tinker whole. Before, anyname://…string was read as providernamewith model//…. - Reasoning is switched the way each model family takes it. On
tinker, Qwen 3/3.5/3.6, Kimi K2.6 and Nemotron take an on/off switch (an effort word turns reasoning on, and the substitution is recorded); Inkling takes the effort words. A checkpoint follows the family of the model it was trained from when you name that model (the line above). Listing models ontinkershows your checkpoints as fine-tunes with their base model. - Error messages from FastAPI servers are kept. An error body that is
{"detail": "…"}used to raise with an empty message on every OpenAI-family and Anthropic-family adapter; the detail is now the message (MAP-21). stopmeans the same everywhere. Tinker returns the stop sequence it stopped at; lm15 cuts it off (MAP-22).- New compat values: thinking format
reasoning_effort_switch, reasoning offswitch, JSON schemanone(a server that applies noresponse_format: dropped with a record), andstop_in_text. Registry entries may carry aliases. - Known, not changed in this release: the reader for a Chat Completions response body that did not come through lm15 (
response_from_openai_chatin Python; the same door under each language's spelling) is given no request, so a Tinker body that stopped at a stop sequence keeps the sequence at its end. Ordinary calls and streams cut it. On the Messages door, Tinker itself refuses reasoning off and effort words for the on/off families; usetinkerfor those.
Nothing is removed and no field changes meaning. Tinker calls both of its doors beta.