* feat(models): add session-only model selection * fix(models): use trailing session scope option * test(models): satisfy session scope lint * fix(models): reject duplicate model options * fix(models): clarify default and session scope * fix(models): require complete session option tokens * fix(models): report configured default dispatch * fix(models): keep directive handler within lint limit * fix(models): parse model options in either order * fix(models): apply session scope to aliases * fix(models): align alias scope with reply routing * fix(discord): surface model selection scope in picker * fix(models): preserve mixed-text model selection * fix(models): centralize command selection ownership * fix(models): align session scope lifecycle * fix(models): preserve command and auth ownership * fixup! fix(models): preserve command and auth ownership * fix(auth): preserve scoped CLI provider discovery * test(models): align result and cron fixtures * test(models): nest result timing metadata * fix(discord): narrow silent dispatch results * fix(transcript): preserve admitted turn identity * fix(context-engine): fence the admitted transcript turn * fix(context-engine): stabilize plugin compatibility contract * chore(plugin-sdk): refresh context engine API baseline * chore(plugin-sdk): use Linux context engine API baseline * fix(context-engine): align fallback ownership * fix(fallback): scope auth skip cache by profile * fix(context-engine): settle only accepted fallback turns * refactor(sessions): issue canonical turn admissions * refactor(context-engine): own logical turn advancement * fix(context-engine): settle cron fallback winners * fix(models): align picker and fallback transactions * fix(delivery): notify block admission after queueing * fix(sessions): preserve canonical admission receipts * chore(plugin-sdk): refresh API baseline hash * fix(context-engine): commit accepted turns durably * fix(context-engine): validate durable host transitions * fix(context-engine): preserve fallback turn ownership * fix(context-engine): preserve queued turn order * fix(models): preserve fallback retry ownership * fix(context-engine): enforce durable transcript anchors * fix(runtime): close fallback persistence gaps * fix(context-engine): preflight fallback harnesses * chore(plugin-sdk): use Linux API baseline * fix(context-engine): drain durable commits before reads * fix(models): scope harness auth failures by profile * fix(codex): fence legacy transcript history * fix(commands): honor suppressed directive interpretation * chore(runtime): remove unused branch exports * test(context-engine): derive private outbox payload type * fix(context-engine): apply durable drain degradation * fix(context-engine): recover durable turn intents * fix(context-engine): settle durable turn intents * refactor(context-engine): satisfy branch quality gates * fix(context-engine): close durable recovery gaps * fix(discord): preserve dropped model command outcome * test(copilot): keep journal fixture types local * fix(auto-reply): preserve model alias provenance * fix: close model scope review gaps * fix(models): close review-found scope leaks * fix(review): satisfy branch line budgets * fix(agents): preserve context engine turn facts * fix(agents): finalize silent context turns * fix(context-engine): preserve compatibility window * test(agents): cover both harness preparations * fix(context-engine): retain blocked turn advancements * fix(models): parse compact runtime options * fix(telegram): report runtime resets accurately * fix(models): isolate automatic auth failure skips * fix(context-engine): project commit turn host params --------- Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com> Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
6.6 KiB
summary, title, read_when
| summary | title | read_when | ||
|---|---|---|---|---|
| Baseten setup for Inkling and hosted Model APIs | Baseten |
|
Baseten Model APIs provide hosted, OpenAI-compatible access to frontier models. The official external plugin uses authenticated discovery, so OpenClaw follows the complete model set enabled for your Baseten account. Its offline fallback contains every Model API available when this OpenClaw release was built.
| Property | Value |
|---|---|
| Provider id | baseten |
| Plugin | official external package (@openclaw/baseten-provider) |
| Auth env var | BASETEN_API_KEY |
| Onboarding flag | --auth-choice baseten-api-key |
| Direct CLI flag | --baseten-api-key <key> |
| API | OpenAI-compatible (openai-completions) |
| Base URL | https://inference.baseten.co/v1 |
| Default model | baseten/thinkingmachines/inkling |
Install plugin
openclaw plugins install @openclaw/baseten-provider
openclaw gateway restart
Getting started
Baseten's Basic plan has no monthly platform fee; Model API calls are usage-priced. Create a key in [Baseten API key settings](https://app.baseten.co/settings/api_keys) and check current rates on the [pricing page](https://www.baseten.co/pricing).openclaw onboard --auth-choice baseten-api-key
openclaw onboard --non-interactive \
--auth-choice baseten-api-key \
--baseten-api-key "$BASETEN_API_KEY"
export BASETEN_API_KEY=...
</CodeGroup>
```bash
openclaw models list --provider baseten
```
With usable auth, the plugin requests `GET /v1/models` and lists every model returned for the account. Without auth, it stays offline and uses the bundled fallback.
Inkling
Thinking Machines Lab's Inkling is the default model. In OpenClaw it supports text and image input, tool calling, structured tool schemas, configurable reasoning effort, a 1.048M-token context window, and up to 32k output tokens:
{
agents: {
defaults: {
model: { primary: "baseten/thinkingmachines/inkling" },
},
},
}
Use /model baseten/thinkingmachines/inkling -s to switch the current session.
Bundled fallback catalog
The authenticated live catalog is authoritative. These rows keep setup and model selection useful before discovery succeeds:
| Model ref | Input | Context | Max output |
|---|---|---|---|
baseten/deepseek-ai/DeepSeek-V4-Pro |
text | 262k | 262k |
baseten/zai-org/GLM-4.7 |
text | 200k | 200k |
baseten/zai-org/GLM-5 |
text | 202k | 202k |
baseten/zai-org/GLM-5.1 |
text | 202k | 202k |
baseten/zai-org/GLM-5.2 |
text | 524k | 262k |
baseten/zai-org/GLM-5.2-Fast |
text | 524k | 262k |
baseten/thinkingmachines/inkling |
text, image | 1.048M | 32k |
baseten/moonshotai/Kimi-K2.5 |
text, image | 262k | 262k |
baseten/moonshotai/Kimi-K2.6 |
text, image | 262k | 262k |
baseten/moonshotai/Kimi-K2.7-Code |
text, image | 262k | 262k |
baseten/nvidia/Nemotron-120B-A12B |
text | 202k | 202k |
baseten/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B |
text | 202k | 202k |
baseten/openai/gpt-oss-120b |
text | 128k | 128k |
All bundled models support tool calling and reasoning. OpenClaw maps its thinking levels to models with native reasoning_effort. Baseten's opt-in GLM, Kimi, and Nemotron models default to thinking off; most expose a binary off/on control, while GLM 5.2 exposes off, high, and max. OpenClaw sends these choices through Baseten's chat_template_args.enable_thinking control and, for GLM 5.2, the validated top-level reasoning_effort parameter.
Manual config
Most setups only need the API key. To pin the provider explicitly:
{
env: { BASETEN_API_KEY: "..." },
agents: {
defaults: {
model: { primary: "baseten/thinkingmachines/inkling" },
},
},
models: {
mode: "merge",
providers: {
baseten: {
baseUrl: "https://inference.baseten.co/v1",
apiKey: "${BASETEN_API_KEY}",
api: "openai-completions",
models: [
{
id: "thinkingmachines/inkling",
name: "Inkling",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048000,
maxTokens: 32000,
},
],
},
},
},
}