Install
openclaw skills install resilience-monitorMonitor and manage OpenClaw API errors, track model performance, configure retry strategies, generate reports, and oversee task recovery status.
openclaw skills install resilience-monitorLLM API error tracking, classification, retry, and task recovery for OpenClaw.
This skill provides visibility into API call health and automated retry management. Use it to:
Open the live web dashboard in your browser for real-time error stats and retry strategy management.
Parameters:
action: "open" (default) | "status" | "stop"Features:
URL: http://127.0.0.1:18765/ (default port, configurable via dashboardPort)
Voice / natural language examples:
resilience_dashboard({ action: "open" })resilience_dashboard({ action: "open" })resilience_dashboard({ action: "open" })The dashboard starts automatically when OpenClaw Gateway starts (unless dashboardEnabled: false).
Configuration lives in ~/.openclaw/openclaw.json under plugins.entries.resilience.config (not only api.pluginConfig at hook time). Example:
"resilience": {
"enabled": true,
"config": {
"dashboardPort": 18765,
"dashboardEnabled": true,
"instanceLabel": "my-workspace"
}
}
At gateway_start, config is read from ctx.config + ctx.workspaceDir.
Multi-instance: Use the instance dropdown to view all instances (aggregated) or a single Gateway. Each instance stores data under ~/.openclaw/plugins/resilience/instances/<id>/. Strategy edits apply only to the local Gateway instance.
View API error statistics by time period or model.
Parameters:
query (optional): Natural language query
"today" or empty — today's full summary"hour" — current hour stats"week" — current week stats"mimo-v2.5") — model-specific statsExamples:
resilience_stats({ query: "today" })resilience_stats({ query: "mimo-v2.5" })resilience_stats({ query: "week" })View, add, update, or reset retry strategies.
Parameters:
action: "list" (default) | "add" | "update" | "reset"strategyName: Strategy name (required for add/update)updates: Fields to update (for add/update)Examples:
resilience_strategies({ action: "list" })resilience_strategies({ action: "update", strategyName: "default-exponential", updates: { type: "exponential" } })resilience_strategies({ action: "add", strategyName: "my-strategy", updates: { type: "custom", maxRetries: 3, intervals: [60000, 300000, 600000] } })resilience_strategies({ action: "reset" })Generate detailed error reports.
Parameters:
reportType: "daily" (default) | "model" | "recovery" | "full"target: Model name or date (YYYY-MM-DD)Examples:
resilience_report({ reportType: "daily" })resilience_report({ reportType: "model", target: "mimo-v2.5" })resilience_report({ reportType: "recovery" })resilience_report({ reportType: "full" })| Category | Description | Retryable |
|---|---|---|
rate_limit | 429 Too Many Requests | ✅ |
server_overload | 503 Service Unavailable | ✅ |
timeout | Request timeout | ✅ |
auth_failed | 401/403 Authentication failed | ❌ |
network_error | Connection errors | ✅ |
model_unavailable | Model not found or offline | ✅ |
context_too_long | Context length exceeded | ❌ |
unknown | Unclassified errors | ❌ |
| Name | Type | Max Retries | Intervals | Error Types |
|---|---|---|---|---|
| default-exponential | exponential | 5 | 1m→15m | rate_limit, server_overload, timeout, network_error |
| rate-limit-fixed | fixed | 3 | 30s | rate_limit |
| model-backoff | custom | 6 | 1m→2h | server_overload, model_unavailable |
| network-retry | exponential | 4 | 5s→1m | network_error |
Per-instance data: ~/.openclaw/plugins/resilience/instances/<instance-id>/ (stats, logs, strategies, tasks). Legacy root layout is still read as default.
~/.openclaw/plugins/resilience/instances/<instance-id>/
├── meta.json
├── stats.json
├── strategies.json
├── active-retries.json
├── logs/YYYY-MM-DD.jsonl
└── tasks/