-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Feature]: openclaw models status --probe --all — per-model health check across all configured models #63145
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.enhancementNew feature or requestNew feature or requestimpact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.enhancementNew feature or requestNew feature or requestimpact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Type
Fields
Priority
None yet
Summary
Add a --all flag to models status --probe that sends a real completion request to every configured model (primary + fallbacks) and reports per-model health, not just per-provider auth.
Problem to solve
models status --probecurrently validates provider authentication, not individual model IDs. This means:Deprecated/removed models go undetected — A model like
openai/gpt-5.4can sit in config returning 400s, and--probewill still report the provider as healthy because the API key is valid.Fallback chain health is invisible — If your primary model fails and OpenClaw falls back to a model that's deprecated or rate-limited, the entire chain breaks silently. There's no way to pre-validate the fallback sequence.
Multi-model configs are increasingly common — Users on OpenRouter routinely configure 10-15+ models across tiers (primary, fallbacks, image models). The current probe tests one model per provider, leaving the rest unchecked.
The only workaround today is manually curling each model endpoint or writing a bash loop — which requires knowing each provider's API format and isn't integrated with OpenClaw's config resolution.
Proposed solution
Add
--allflag toopenclaw models status --probe:Behavior:
agents.defaults.model.primary,agents.defaults.model.fallbacks, andagents.defaults.imageModel(plus per-agent overrides if--agentis specified)max_tokens: 1, prompt: "hi") to each model ID through the configured provider✅ anthropic/claude-opus-4-6 ok (1.2s)
⚠️ openrouter/google/gemini-3.1-pro rate_limited (429, retry: 30s)
✅ openrouter/deepseek/deepseek-v3 ok (0.8s)
❌ openrouter/openai/gpt-5.4 error (400: model not found)
❌ openrouter/moonshot/kimi-k2.5 timeout (10.0s)
JSON output (
--json):Each entry should include:
model,provider,status(ok | rate_limited | error | timeout | no_auth),latencyMs,httpStatus,message.Scope options:
--probe --all— every configured model--probe --all --provider openrouter— only models under a specific provider--probe(current behavior unchanged) — primary model / auth check onlyTimeout: Respect existing probe timeout, or allow
--probe-timeout <seconds>.Alternatives considered
Bash loop with curl — Works but requires per-provider API knowledge, doesn't read from OpenClaw config, and isn't portable across setups. Not realistic for most users.
openclaw models scan --probe— This exists for OpenRouter's free catalog discovery, but it probes available models on the provider, not your configured models. Different use case.External monitoring (UptimeRobot, cron scripts) — Overkill for config validation. Users just want a pre-flight check, not ongoing monitoring.
Probe on first use (lazy validation) — Would catch broken models at runtime, but by then the user is already mid-conversation and hitting errors. Pre-flight is better UX.
Impact
Affected users: Anyone running multiple models — especially OpenRouter users who configure 5-15+ models across providers and tiers. Also affects multi-agent setups where different agents use different models.
Severity: Blocks workflow silently. A broken fallback model means the entire failover chain is compromised without any warning. Users discover it only when their primary goes down and the fallback also fails.
Frequency: Every time a provider deprecates or renames a model — which on OpenRouter happens regularly. Also relevant after config changes, migrations, or upgrades.
Consequence:
--probepassesEvidence/examples
Related issues:
--probereturning "LLM request timed out" with unclear errorsReal scenario (today):
openclaw models status --probe→ all green (auth valid)openai/gpt-5.4→ 400 (model deprecated on OpenRouter)Workaround used:
This works but shouldn't be necessary.
Additional information
openclaw models scanprobe logic already sends real completion requests to validate tool/image support — similar infrastructure could be reused here for--probe --all