/install cron-model-fix
Cron Model Fix
Diagnose and fix OpenClaw cron job model override issues where configured models are rejected and fall back to agent defaults.
When to Use This Skill
Use when:
- Cron jobs show
"not allowed, falling back to agent defaults"in gateway logs - Unexpected cloud token burn on cron jobs configured with local models
- Slow cron run times (60-180s) when local models should be used
- Model overrides in cron jobs aren't being applied
- Need to validate agent model allowlist configuration
Quick Start
# Diagnose the issue
openclaw skill run cron-model-fix --diagnose
# Apply the fix (adds missing models to allowlist)
openclaw skill run cron-model-fix --fix --model ollama/qwen3.5:0.8b
# Validate configuration
openclaw skill run cron-model-fix --validate
Root Cause
OpenClaw has three model configuration layers. ALL must include the model:
Layer 1: Provider Model Definition
Location: models.providers.\x3Cprovider>.models[]
Purpose: Defines model specs (context, costs, capabilities)
Layer 2: Agent Default Model
Location: agents.defaults.model.primary
Purpose: Default model when none specified
Layer 3: Agent Model Allowlist ← COMMON ISSUE
Location: agents.defaults.models
Purpose: WHICH MODELS ARE PERMITTED for agent/cron use
Problem: Model exists in Layer 1, but missing from Layer 3 (allowlist).
Gateway logs show:
{"subsystem":"cron"}
"payload.model 'ollama/qwen3.5:0.8b' not allowed, falling back to agent defaults"
Diagnosis
Step 1: Check Gateway Logs
tail -100 /tmp/openclaw/openclaw-*.log | grep -i "not allowed\|falling back"
If you see: "payload.model '\x3Cmodel>' not allowed, falling back to agent defaults"
→ Model is missing from agent allowlist
Step 2: Check Agent Allowlist
cat ~/.openclaw/openclaw.json | python3 -c "
import json, sys
config = json.load(sys.stdin)
models = config.get('agents', {}).get('defaults', {}).get('models', {})
print('Allowed models:')
for model in models:
print(f' - {model}')
"
Check if your cron model is in the list. If not, it will be rejected.
Step 3: Check Cron Job Configuration
openclaw cron list
Verify:
- Cron job has
modelspecified in payload - Model format matches allowlist (e.g.,
ollama/qwen3.5:0.8b)
The Fix
Add the model to agents.defaults.models in ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
"model": {
"primary": "ollama/qwen3.5:cloud",
"fallbacks": [...]
},
"models": {
"ollama/glm-4.7-flash": {},
"ollama/kimi-k2.5:cloud": {},
"ollama/qwen2.5vl:7b": {},
"ollama/qwen3.5:397b-cloud": {},
"ollama/qwen3.5:4b-32K": {},
"ollama/qwen3.5:4b-32k": {},
"ollama/qwen3.5:9b-128k": {},
"ollama/qwen3.5:cloud": {},
"ollama/qwen3.5:0.8b": {}, ← ADD THIS
"ollama/qwen3.5:2b": {} ← Optional
}
}
}
}
Manual Fix Steps
-
Edit config:
nano ~/.openclaw/openclaw.json -
Add to
agents.defaults.models:"ollama/qwen3.5:0.8b": {}, -
Restart gateway:
openclaw gateway restart -
Verify:
openclaw cron runs --id \x3Cjob-id> --limit 3Look for
"model": "qwen3.5:0.8b"instead ofqwen3.5:cloud
Automated Fix Script
Use the included script:
python3 ~/.npm-global/lib/node_modules/openclaw/skills/cron-model-fix/scripts/add-model-allowlist.py --model ollama/qwen3.5:0.8b
Expected Results
Before Fix
| Metric | Value |
|---|---|
| Model | Cloud fallback |
| Duration | 60-180 seconds |
| Input Tokens | 200K-600K per run |
| Cost | Cloud token burn |
After Fix
| Metric | Value | Improvement |
|---|---|---|
| Model | Local (e.g., qwen3.5:0.8b) | ✅ Free |
| Duration | 1-13 seconds | 5-14x faster |
| Input Tokens | 5K-36K | 85-95% reduction |
| Cost | ZERO | 100% savings |
Validation
After applying fix, verify:
# Check for model rejection warnings
tail -50 /tmp/openclaw/openclaw-*.log | grep -i "not allowed"
# Should be EMPTY (no warnings)
# Check cron run history
openclaw cron runs --id \x3Cjob-id> --limit 1
# Should show:
# "model": "qwen3.5:0.8b" (not cloud)
# "durationMs": \x3C15000 (fast)
# "input_tokens": \x3C50000 (low)
Common Issues
Issue: Model still not working after fix
Check:
- Gateway restarted after config change?
- Model format matches exactly? (e.g.,
ollama/qwen3.5:0.8bvsqwen3.5:0.8b) - Model exists in provider config (Layer 1)?
Issue: Invalid JSON after editing
Fix:
openclaw doctor --fix
Or restore from backup:
cp ~/.openclaw/openclaw.json.backup ~/.openclaw/openclaw.json
Related Skills
inbox-optimizer- Optimizes inbox scanning patterns (mesh-specific)healthcheck- General OpenClaw system health monitoring
References
- See
references/model-config-layers.mdfor detailed configuration structure - See
references/troubleshooting-examples.mdfor real-world case studies
Version
1.0.0 - Initial release (2026-03-30)
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install cron-model-fix - 安装完成后,直接呼叫该 Skill 的名称或使用
/cron-model-fix触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Cron Model Fix 是什么?
Diagnose and fix OpenClaw cron job model override issues. Use when cron jobs show "not allowed, falling back to agent defaults" in logs, experience unexpecte... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 98 次。
如何安装 Cron Model Fix?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install cron-model-fix」即可一键安装,无需额外配置。
Cron Model Fix 是免费的吗?
是的,Cron Model Fix 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Cron Model Fix 支持哪些平台?
Cron Model Fix 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Cron Model Fix?
由 mklue(@mklue)开发并维护,当前版本 v1.0.0。