2026 OpenClaw Rate Limits und Budget-Alarme auf gemietetem Mac mini M4 16GB: 50 RPM, 10 $ Tagesdeckel, reject/queue-Matrix, limits CLI, 8-stufiges Runbook und 12 Smoke-Schritte
OpenClaw auf einem gemieteten Mac mini M4 ist nicht „nach der Installation kostenlos“. Ein falsch konfigurierter Cron, ein Webhook-Sturm oder eine Skill-Schleife kann Frontier-Tokens verbrauchen, während Sie schlafen. Die Finanzabteilung will kein weiteres Dashboard — sie will Hartabschaltungen (Rate Limits, die ablehnen oder einreihen) und Budget-Alarme, die vor dem Rechnungsabschluss auslösen. Dieses Tutorial ist der Operator-Vertrag für einen 16GB-KvmZone-Host: drei Kontrollschichten, eine Entscheidungsmatrix für reject vs. queue vs. warn, ein nummeriertes Runbook mit echten Pfaden (~/.openclaw/openclaw.json), Troubleshooting für die zwei Fehler, die Teams wirklich sehen, und eine 12-stufige Smoke-Leiter fürs Ticket.
Verknüpfen Sie beim ersten Erwähnen den OpenClaw-Stunde-null-Installationsvertrag (Node-22+-Untergrenze), die Post-Onboard-Doctor-Matrix (Webhook-POP-Disziplin), das Steady-State-launchd-Runbook (Log-Rotation) und Gemini-API-Client-Hygiene, wenn Cloud-Modelle in der Fallback-Kette bleiben. Hardware-Annahmen folgen den Apple Mac mini Spezifikationen. Vergleichen Sie Regionen auf der Preisseite.
Offenlegung: KvmZone ist der in diesem Artikel genannte Mac-Mietanbieter. OpenClaw-Limit-Semantik folgt den OpenClaw-Gateway-Konfigurationsbeispielen und dem Community-limits-/Rate-Limit-Subsystem; prüfen Sie Ihre installierte OpenClaw-Version vor Produktion.
Warum Rate Limits und Budget-Alarme auf dem Miet-Host
Teams mieten einen Mac mini M4 mit 16GB Unified Memory, weil OpenClaw-Gateways, Skills-Verzeichnisse und Webhook-Empfänger dauerhaft laufen — nicht, damit Laptops wach bleiben und API-Keys halten. Kostenexplosion ist ein Gateway-Problem, kein „mehr RAM kaufen“-Problem: Limits vor dem Model-Dispatch erzwingen, nicht nachdem die Finanz das Vendor-Portal öffnet.
| Stakeholder | Ohne Hartabschaltung | Mit Hartabschaltung + Alarmen |
|---|---|---|
| Engineering | 429-Retry-Stürme wirken wie „OpenClaw ist flaky“ | Limits liefern strukturierte Events; Logs zeigen onLimitReached |
| Finanzen | Überraschende API-Zeilen 200 $+/Tag | Tagesdeckel 10 $ (Beispiel) blockiert oder reiht vor Mitternacht ein |
| Sicherheit | Kompromittierte Webhooks fluten Tokens | Pro-Kanal-RPM-Obergrenzen drosseln Missbrauch |
Architektur: drei Kontrollschichten auf einem Gateway
OpenClaw-Kostenkontrolle stapelt sich in drei Schichten. Pinnen Sie, welche Schichten Ihre Miete aktiviert — Upstream-Versionen unterscheiden sich.
Schicht 1 — Gateway-rateLimit (Hartabschaltung am Rand)
Community-Tutorials dokumentieren einen rateLimit-Block in ~/.openclaw/openclaw.json (JSON5). Typische Felder:
| Feld | Beispiel | Verhalten |
|---|---|---|
enabled | true | Opt-in; Limits aus bis Aktivierung |
model.rpm | 50 | Requests/Minute pro Modellroute |
model.tpm | 100000 | Token-Obergrenze/Minute |
model.dailyLimit | 2000 | Harte Tages-Request-Anzahl |
model.dailyCostLimit | 10.00 | USD-Tagesausgaben-Obergrenze (String/Zahl je Build) |
model.onLimitReached | reject oder queue | Hartabschaltung vs. Backlog |
Hartabschaltung bedeutet onLimitReached: "reject" — das Gateway gibt sofort einen Fehler zurück; Skills dürfen keine Retry-Schleifen ohne Backoff drehen.
Weiche Abschaltung bedeutet onLimitReached: "queue" — Nachrichten warten; sicherer für menschlichen Chat, gefährlich für Webhook-Fluten ohne messages.queue.cap (siehe Gateway-Beispiele).
Schicht 2 — limits CLI / Token-Budgets (anbieterbezogen)
Upstream hat eine limits-Konfigurationsoberfläche und openclaw limits-Befehle hinzugefügt (siehe PR #13686): gleitende Fenster, tokenbasierte Tages-/Monats-Budgets und strukturierte Logs für Budget-Events. Diese Schicht umschließt externe Provider-Aufrufe — ergänzend zum Gateway-rateLimit.
Operator-Befehle fürs Runbook:
openclaw limits status
openclaw limits reset --provider anthropic --model claude-sonnet-4-6
Pinnen Sie Ausgaben im Ticket, wenn die Finanz „beweisen, dass die Abschaltung auslöste“ verlangt.
Schicht 3 — Budget-Alarme (Observability → Aktion)
Native USD-Hartblöcke pro Agent am Gateway entwickeln sich noch in Upstream-Trackern; bis Ihr Build sie enthält, implementieren Operatoren Budget-Alarme mit:
- Cron + Session-Kosten-Scrape — geplanter Job, der Kostenzusammenfassungen liest und bei 80 % des Tagesdeckels an Slack/E-Mail postet.
- Proxy-Budget-Keys — Provider über Proxy mit virtuellen Keys und harten Ausgabenobergrenzen routen.
openclaw doctor+ wöchentliches Audit — mit dem Steady-State-Runbook, damit Alarme nicht verrotten.
reject sind Warnungen; Hartabschaltung erfordert onLimitReached: "reject" oder einen Upstream-limits-Block mit aktiviertem Hartblock.Entscheidungsmatrix: reject, queue, warn
| Profil | RPM | Tages-$-Deckel | onLimitReached | Alarmkanal | Wann nutzen |
|---|---|---|---|---|---|
| Produktions-Webhook | 30 | 5 $ | reject | Pager + E-Mail bei 80 % | CI-Bots; keine ewige Queue |
| Interner DM-Assistent | 50 | 10 $ | queue | Slack bei 90 % | Menschen tolerieren Verzögerung |
| Pilot / Staging | 15 | 2 $ | reject | Nur E-Mail | Wegwerf-Mietwoche |
| Lokales Ollama-Fallback | N/A (Loopback) | 0 $ Cloud | N/A | Nur Disk-Alarme | Mit OpenClaw + Ollama-Kopplung |
Empfohlener Pfad: Wenn Webhooks den Host berühren, Zeile Produktions-Webhook. Nur DMs → Interner DM-Assistent. Niemals queue auf einem einzelnen 16GB-Host ohne messages.queue.cap und Log-Rotation — eingereihte Arbeit frisst weiter RAM.
Schritt-für-Schritt-Runbook: Hartabschaltungen und Alarme
Per SSH auf dem gemieteten Mac ausführen. Dollar-Beträge durch finanzgenehmigte Deckel ersetzen.
Schritt 1 — Basisnutzung erfassen
ssh user@rented-mac 'openclaw limits status 2>/dev/null || openclaw doctor'
ssh user@rented-mac 'df -h / && du -sh ~/.openclaw 2>/dev/null'
Ausgabe als Anhang A im Change-Ticket speichern.
Schritt 2 — Config sichern
ssh user@rented-mac 'cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d)'
Schritt 3 — Gateway-rateLimit aktivieren (Hartabschaltungs-Beispiel)
~/.openclaw/openclaw.json (JSON5) bearbeiten. Hinzufügen oder mergen:
{
rateLimit: {
enabled: true,
model: {
rpm: 50,
tpm: 100000,
dailyLimit: 2000,
dailyCostLimit: 10.00,
onLimitReached: "reject", // hard fuse for webhook hosts
},
},
messages: {
queue: { mode: "followup", cap: 20, drop: "summarize" },
},
}
Gateway gemäß Runbook neu laden (launchctl kickstart oder dokumentiertes Reload — siehe Steady-State-Artikel).
Schritt 4 — Pro-Agent-Parallelität straffen
In derselben Datei unter agents.defaults:
agents: {
defaults: {
maxConcurrent: 2, // 16GB: avoid 3+ concurrent tool-heavy runs
timeoutSeconds: 600,
},
},
Schritt 5 — limits-Subsystem aktivieren (falls Build unterstützt)
Upstream-limits-Block laut openclaw limits-Doku Ihrer Version — Tages-Token-Budget mit aktiviertem Hartblock. Ausführen:
openclaw limits status
Nach Testnachricht nicht-null-Zähler erwarten.
Schritt 6 — Budget-Alarm-Cron planen
~/budget-alert.sh anlegen:
#!/bin/bash
THRESHOLD_USD=8.00
# Replace with your cost scrape command / log grep for your OpenClaw version
COST=$(openclaw limits status 2>/dev/null | awk '/dailyCost/{print $2}')
if awk -v c="$COST" -v t="$THRESHOLD_USD" 'BEGIN{exit !(c>t)}'; then
echo "OpenClaw spend $COST exceeds warn threshold $THRESHOLD_USD on $(hostname)" | mail -s "OpenClaw budget warn" ops@example.com
fi
chmod 700 ~/budget-alert.sh
# launchd or crontab: every 30 minutes
Alarmziel im Runbook dokumentieren — Finanzen besitzt das Postfach.
Schritt 7 — Abschaltung auslösen beweisen
Synthetische Burst senden (nur Staging-Kanal), bis onLimitReached auslöst. Bestätigen:
- Gateway-Logs zeigen Limit-Event (kein stiller Fehler)
openclaw limits statuszeigt erhöhte Zähler- Keine unbegrenzte Retry-Schleife in Logs
Schritt 8 — Nachweise ablegen
Anhängen: Config-Diff, limits status nach Test, ein Log-Auszug mit Limit-Event, Rechnungswochen-ID.
Troubleshooting
Fehlermuster: 429 / rate_limited mit steigenden Ausgaben
Symptome: Provider liefert 429; OpenClaw retried; Tageskosten steigen weiter.
Fix:
onLimitReached: "reject"am Gateway setzen — nichtqueue.- Auth-Profil-Rotationslimits konfigurieren (
auth.cooldowns.rateLimitedProfileRotationsje Build), damit Rotation nicht zu unendlichem Fallback-Ausgeben wird. openclaw limits resetnur nach Root-Cause-Fix, nicht als Tagesgewohnheit.
Fehlermuster: Limits aktiv, aber „keine Wirkung“
Symptome: rateLimit.enabled: true in Datei; Traffic unbegrenzt.
Fix:
- Bestätigen, dass Gateway-Reload wirklich lief (
launchctl printzeigt neue pid). - Bestätigen, dass die vom Daemon gelesene Datei bearbeitet wurde (
~/.openclaw/openclaw.json, keine Repo-Kopie). openclaw doctorunter dem gleichen Benutzer wielaunchd— PATH-Mismatch lädt falsche Config (siehe Stunde-null-Vertrag).
Fußnote POP sechs Regionen
KvmZone-Knoten: Hongkong, Japan (Tokio), Korea (Seoul), Singapur, US East, US West. Rate Limits ersetzen keine Regionswahl — Webhooks von US-East-SaaS in APAC-Macs verbrennen weiter Tokens bei Retries. Knoten wählen, der Callback-Eingang am nächsten ist, laut Post-Onboard-POP-Matrix. Regionen auf der Preisseite vergleichen.
Zwölf-Stufen-Smoke-Leiter
| Schritt | Gate | Bestanden |
|---|---|---|
| 1 | SSH | Non-interaktive Shell |
| 2 | Config-Backup | .bak.YYYYMMDD existiert |
| 3 | rateLimit.enabled | true in Live-Config |
| 4 | Hartabschaltung | onLimitReached ist reject für Webhook-Profil |
| 5 | RPM | ≤50 im Runbook dokumentiert |
| 6 | Tages-$-Deckel | Finanzgenehmigte Zahl erfasst |
| 7 | openclaw limits status | Exit 0; Zähler sichtbar |
| 8 | Synthetische Burst | Abschaltung feuert; Ausgaben stoppen |
| 9 | Alarm-Cron | Test-E-Mail/Slack bei 80 %-Schwelle |
| 10 | Logs | Limit-Event-Zeile behalten (512MB-Rotation laut Steady-State) |
| 11 | Region | Knotenname im Runbook |
| 12 | Finanzen | Screenshot + Rechnungswoche archiviert |
FAQ
dailyCostLimit auf jeder OpenClaw-Version ein Hartblock?queue oder reject nutzen?messages.queue.cap.Weiterlesen
Regionen vergleichen, dann OpenClaw-Limits setzen
Sechs Regionen auf der Preisseite vergleichen; 50 RPM und 10 $/Tag pinnen, 12 Smoke-Schritte vor Produktions-Webhooks.