ollama-local inference route supports only one model per sandbox, breaking OpenClaw's multi-model dashboard picker
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 43m
- Merged PRs (30d)
- 718
Description
## Summary
`nemoclaw inference set` / onboarding only ever registers **one** model with OpenClaw's inference route per sandbox, even when the backing Ollama host serves many. OpenClaw's own dashboard already has a working multi-model picker (see openclaw/openclaw#141540, openclaw/openclaw#139433), but it has nothing to switch *to* in a NemoClaw sandbox because only one model is ever surfaced by the OpenShell inference route.
## Reproduction
Environment: NemoClaw v0.0.109, `ollama-local` provider, OpenShell Docker-driver gateway, single sandbox (`agent: openclaw`).
1. `nemoclaw onboard --name mysandbox` with `NEMOCLAW_PROVIDER=ollama`, `NEMOCLAW_MODEL=llama3.1:8b` — onboarding completes, sandbox healthy, model `llama3.1:8b` works.
2. Add a secondary agent bound to a different model already present on the same Ollama host: `openclaw agents add coder --model qwen3-coder:latest --workspace /sandbox/agents/coder`. Command succeeds, agent is listed.
3. Run a turn against the new agent: `nemoclaw mysandbox agent --agent coder -m "hello"`.
4. Result: `GatewayClientRequestError: FailoverError: Unknown model: openai/qwen3-coder:latest`.
5. Switching the sandbox-wide route instead (`nemoclaw inference set --provider ollama-local --model qwen3-coder:latest --sandbox mysandbox`) does make `qwen3-coder` work — but now `llama3.1:8b` (and every other previously-working agent/model) fails the same way. Confirmed via `openshell inference get`: it's a single `{provider, model}` pair scoped to the whole sandbox, not a per-agent or list-based route.
## Expected
Since all these models share one endpoint (the same Ollama host, differentiated only by the `model` field in each request), there's no technical reason the OpenShell inference route couldn't carry a *list* of allowed models for a `compatible`/`ollama-local` provider instead of exactly one. That would let:
- `nemoclaw onboard` / `nemoclaw inference set` register the full model list once
- OpenClaw's existing (and already-working) dashboard model picker have real options to switch between, in the same session, without a CLI round-trip that currently breaks every other agent's model when it's flipped
## Why this matters
Right now, using more than one Ollama model in a NemoClaw sandbox requires manually round-tripping `nemoclaw inference set` before every single request that wants a different model — and doing so silently breaks every other agent configured against a different model in the same sandbox, with no warning at onboarding or agent-add time that this will happen.
## Environment
- NemoClaw: 0.0.109
- Agent runtime: OpenClaw
- Provider: ollama-local (OpenShell Docker-driver gateway)
- OS: Ubuntu 26.04 (LXD VM)
Contributor guide
Research direction
Start with the `nemoclaw onboard`, `nemoclaw inference set`, and `openshell inference get` entry points, using the reported Ollama reproduction to trace the sandbox-wide provider/model configuration. Done means the inference route can expose the relevant Ollama models together so OpenClaw's existing picker can switch models without breaking other configured agents.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ollama
- Domain
- ai, api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100