3.6 KiB
3.6 KiB
summary, read_when
| summary | read_when | |||
|---|---|---|---|---|
| Plan for models CLI: scan, list, aliases, fallbacks, status |
|
Models CLI plan
Goal: give clear model visibility + control (configured vs available), plus scan tooling that prefers tool-call + image-capable models and maintains ordered fallbacks.
Command tree (draft)
clawdbot models list- default: configured models only
- flags:
--all(full catalog),--local,--provider <name>,--json,--plain
clawdbot models status- show default model + aliases + fallbacks + configured models
clawdbot models set <modelOrAlias>- writes
agent.model.primaryand ensuresagent.modelsentry
- writes
clawdbot models set-image <modelOrAlias>- writes
agent.imageModel.primaryand ensuresagent.modelsentry
- writes
clawdbot models aliases list|add|remove- writes
agent.models.*.alias
- writes
clawdbot models fallbacks list|add|remove|clear- writes
agent.model.fallbacks
- writes
clawdbot models image-fallbacks list|add|remove|clear- writes
agent.imageModel.fallbacks
- writes
clawdbot models scan- OpenRouter :free scan; probe tool-call + image; interactive selection
Config changes
agent.models(configured model catalog + aliases).agent.model.primary+agent.model.fallbacks.agent.imageModel.primary+agent.imageModel.fallbacks(optional).auth.profiles+auth.orderfor per-provider auth failover.
Scan behavior (models scan)
Input
- OpenRouter
/modelslist (filter:free) - Requires OpenRouter API key from auth profiles or
OPENROUTER_API_KEY - Optional filters:
--max-age-days,--min-params,--provider,--max-candidates - Probe controls:
--timeout,--concurrency
Probes (direct pi-ai complete)
- Tool-call probe (required):
- Provide a dummy tool, verify tool call emitted.
- Image probe (preferred):
- Prompt includes 1x1 PNG; success if no "unsupported image" error.
Scoring/selection
- Prefer models passing tool + image for text/tool fallbacks.
- Prefer image-only models for image tool fallback (even if tool probe fails).
- Rank by: image ok, then lower tool latency, then larger context, then params.
Interactive selection (TTY)
- Multiselect list with per-model stats:
- model id, tool ok, image ok, median latency, context, inferred params.
- Pre-select top N (default 6).
- Non-TTY: auto-select; require
--yes/--no-inputto apply.
Output
- Writes
agent.model.fallbacksordered. - Writes
agent.imageModel.fallbacksordered (image-capable models). - Ensures
agent.modelsentries exist for selected models. - Optional
--set-defaultto setagent.model.primary. - Optional
--set-imageto setagent.imageModel.primary.
Runtime fallback
- On model failure: try
agent.model.fallbacksin order. - Per-provider auth failover uses
auth.order(or stored profile order) before moving to the next model. - Image routing uses
agent.imageModelonly when configured and the primary model lacks image input. - Persist last successful provider/model to session entry; auth profile success is global.
- See
docs/model-failover.mdfor auth profile rotation, cooldowns, and timeout handling.
Tests
- Unit: scan selection ordering + probe classification.
- CLI: list/aliases/fallbacks add/remove + scan writes config.
- Status: shows last used model + fallbacks.
Docs
- Update
docs/configuration.mdwithagent.models+agent.model+agent.imageModel. - Keep this doc current when CLI surface or scan logic changes.