3.5 KiB
3.5 KiB
name, description
| name | description |
|---|---|
| model-selector | Safely change an agent's primary and fallback models by validating IDs against the live LLM proxy model list. Use for model switches, fallback chain updates, and model-availability troubleshooting. |
Model Selector
Core Rules
- Never edit config files directly; always use
openclaw configcommands. - Validate model IDs against both
/v1/modelsand localopenclaw.jsonllm-proxy catalog before proposing changes. - Keep at least 2 fallback models (unless user explicitly asks otherwise).
- Do not remove a primary model without setting a replacement.
- Use exact IDs from the model catalog; do not guess.
- Prefer provider diversity in fallbacks.
- Get explicit user approval before writing config.
- Treat
/modelas temporary; it creates per-session overrides. - After backend default changes, clear session pins and reset active sessions.
- Always report back the exact
openclaw configcommands executed.
Workflow
1) Fetch Available Models
bash {baseDir}/scripts/list-models.sh
bash {baseDir}/scripts/list-models.sh --providers
2) Validate Candidate IDs
bash {baseDir}/scripts/validate-model.sh "nvidia_nim/moonshotai/kimi-k2.5"
3) Inspect Current Configuration
bash {baseDir}/scripts/show-current.sh
4) Apply Backend Model Changes
Preferred (comprehensive) flow:
bash {baseDir}/scripts/switch-models.sh \
--non-main-primary "nanogpt/zai-org/glm-5" \
--non-main-fallbacks "lightning_ai/lightning-ai/kimi-k2.5,nanogpt/zai-org/glm-4.7" \
--clear-session-pins \
--pattern "gemini-3-flash"
Legacy defaults-only flow (does not migrate runtime session pins by itself):
# Primary only
bash {baseDir}/scripts/update-model.sh --primary "nanogpt/moonshotai/kimi-k2.5"
# Fallbacks only
bash {baseDir}/scripts/update-model.sh --fallbacks "nvidia_nim/moonshotai/kimi-k2.5,chutes/zai-org/GLM-5-TEE"
# Primary + fallbacks
bash {baseDir}/scripts/update-model.sh \
--primary "nanogpt/moonshotai/kimi-k2.5" \
--fallbacks "nvidia_nim/moonshotai/kimi-k2.5,chutes/zai-org/GLM-5-TEE"
5) Required Rollout Sequence (Do Not Skip)
- Update config with a schema-safe path (
agents.list[].modelfor per-agent overrides). - Clear per-session model pins so defaults/agent model can apply.
- Run model-state audit to confirm no stale references.
- Restart gateway so in-memory runtime state reloads config.
- In active channels/threads, run
/reset(or/new) before testing.
Use helpers:
# Clear all session model pins for an agent
bash {baseDir}/scripts/clear-session-model-pins.sh --agent home
# Clear only one channel session family
bash {baseDir}/scripts/clear-session-model-pins.sh --agent home --channel 1470162839284224184
# Audit config + cron + session pins for stale model refs
bash {baseDir}/scripts/audit-model-state.sh "gemini-3-flash"
Model ID Format
- Catalog ID format:
<provider>/<model-path> - Config reference format:
llm-proxy/<catalog-id>
Examples:
nanogpt/moonshotai/kimi-k2.5->llm-proxy/nanogpt/moonshotai/kimi-k2.5nvidia_nim/moonshotai/kimi-k2.5->llm-proxy/nvidia_nim/moonshotai/kimi-k2.5
For /model inside a session, use catalog IDs (without llm-proxy/).
Troubleshooting Quick Checks
- Model missing: rerun
list-models.shand validate exact ID. - Old model still used: clear session pins + restart gateway +
/reset. - Unexpected fallbacks: confirm fallback chain order in
show-current.sh.