Every few weeks, I'd open my OpenClaw config and tweak something. A model priority here. A timeout there. A new fallback chain. I thought I was optimizing.
I was actually creating instability.
Here's the one change that made everything else work better — and I haven't touched it since.
The Config: gateway.plugins.priority
This is the setting that controls which plugins load first and how they intercept requests. Mine was a mess:
{
"gateway": {
"plugins": {
"priority": [
"openclaw-plugin-memory",
"openclaw-plugin-cron",
"openclaw-plugin-tools",
"openclaw-plugin-subagents"
]
}
}
}
Looks fine. It's wrong.
The memory plugin was loading before the tools plugin, which meant my agent's self-improving loop was running before the exec tools were fully initialized. Every morning's first cron run would partially fail — the agent would log what it learned but couldn't write it to disk because the file tools weren't ready.
It took me three weeks to connect the dots.
The Fix
{
"gateway": {
"plugins": {
"priority": [
"openclaw-plugin-tools",
"openclaw-plugin-cron",
"openclaw-plugin-memory",
"openclaw-plugin-subagents"
]
}
}
}
Tools first. Memory second. Everything else after.
Why? OpenClaw's plugin system is sequential. If your memory plugin runs before tools are loaded, any memory operation that touches the filesystem (which is most of them) has to wait for the second pass. That second pass doesn't always come in time for a cron-triggered agent turn.
What Changed After
Within 48 hours:
- Morning cron runs went from 30% partial failure to clean
- Memory writes stopped dropping on the first run of the day
- The agent started actually reading its own self-improvement notes before tasks
The throughput improvement was modest. The reliability improvement was dramatic.
Why I Stopped Tinkering
After this fix, I made a rule: no config changes without a failure log first.
Every config tweak I'd made before was reactive — I'd see something mildly suboptimal and try to fix it preemptively. But without a failure logged, I had no baseline. I couldn't tell if the tweak helped or made things worse.
Now I only change config when:
- A failure is logged with the exact error
- I can reproduce it consistently
- The config change directly addresses the root cause
Otherwise, it stays.
This sounds obvious when written down. But I'd estimate I wasted 3-4 hours a week "optimizing" my config for months before I made this rule. The one change that actually mattered took 10 minutes — and it was reordering a list.
If your OpenClaw agent is having intermittent morning failures, check your plugin load order. Tools before memory. That's the fix.
Top comments (0)