Durchsetzung harter Leitplanken für OpenClaw-KI-Agenten: Genehmigungs-Gating und Nebenläufigkeitsgrenzen

Ein Entwickler, der einen OpenClaw-Bot auf einem Mac mini mit Ollama (GLM 5.2, Fallback auf Anthropic Sonnet 4.6 und Haiku) betreibt, stieß auf ein klassisches Problem: Der Bot verstößt wiederholt gegen strenge Regeln – wie „niemals E-Mails ohne Genehmigung senden“ und „maximal 5 gleichzeitige Aufrufe“ –, obwohl er jedes Mal sein Verständnis bestätigt. Die Hypothese des Benutzers trifft den Nagel auf den Kopf: Dies sind Regeln als Kontext, nicht Regeln als Einschränkungen. Das Modell behandelt Anweisungen als Empfehlungen, daher hilft weder Prompting noch Verstärkung durch Speicher.
Der Standard-Fix besteht darin, die Durchsetzung außerhalb der Denkschleife des Modells zu verlagern. Man kann sich nicht darauf verlassen, dass ein statistischer Textprädiktor harte Limits durchsetzt; man benötigt deterministische Prüfungen in der Orchestrierungsebene.
Genehmigungs-Gate für Tool-Aufrufe
Um E-Mails (oder andere gefährliche Aktionen) hinter eine Genehmigung zu stellen, ummanteln Sie den Tool-Aufruf mit einem Mensch-im-Kreis-Muster:
- Wenn das Modell den Versand einer E-Mail anfordert, fangen Sie den Aufruf ab, bevor er ausgeführt wird.
- Zeigen Sie eine Bestätigungsaufforderung in Discord an (z. B. Buttons oder eine Reaktion).
- Nur wenn der Benutzer zustimmt, führen Sie den tatsächlichen API-Aufruf aus.
# Pseudocode in Ihrem OpenClaw-Tool-Handler
if tool == "send_email":
message = f"Senden der E-Mail an {to} genehmigen?"
if not await discord_approval(message):
return "Benutzer abgelehnt. Nicht senden."
# mit dem E-Mail-API-Aufruf fortfahren
Dadurch wird sichergestellt, dass das Modell das Gate physisch nicht umgehen kann – egal was es sagt.
Nebenläufigkeitslimits auf Orchestrierungsebene
Für Nebenläufigkeitslimits wie „max. 5“ implementieren Sie einen Semaphor oder Zähler im Befehlsverteiler:
import asyncio
semaphore = asyncio.Semaphore(5)
async def handle_tool_call(tool, args):
async with semaphore:
# Tool-Aufruf ausführen
Jeder Versuch über das Limit hinaus wartet oder schlägt sofort fehl, unabhängig von der Absicht des Modells.
Ist das ein GLM/Ollama-spezifisches Problem?
Der Benutzer fragt, ob dies spezifisch für GLM oder allgemein für lokale Modelle gilt. Basierend auf der Diskussion in r/openclaw ist dies eine allgemeine LLM-Einschränkung – alle Modelle behandeln Anweisungen als Kontext, nicht als Einschränkungen. Allein durch Prompting können keine harten Limits durchgesetzt werden. Die Lösung erfordert immer eine Durchsetzung auf Infrastrukturebene.
Empfehlung
Hören Sie auf, Regeln im Speicher oder in Fähigkeiten zu wiederholen. Bauen Sie stattdessen explizite Prüfungen in Ihre Tool-Aufruf-Ebene ein. Behandeln Sie das Modell als Vorschlags-Engine, nicht als Richtliniendurchsetzer.
📖 Vollständige Quelle lesen: r/openclaw
👀 Siehe auch

Token Master: Architekturkonzept zur Einsparung von 30-70% bei KI-Agenten-Kosten
Ein detaillierter Architekturansatz fuer intelligentes Multi-Modell-Routing, der den Token-Verbrauch drastisch reduzieren kann.

Fünf häufige Fehler bei der Einrichtung von OpenClaw, die Geld verschwenden und Sicherheitsrisiken schaffen
Basierend auf der Überprüfung von mehr als 50 OpenClaw-Einrichtungen tauchen immer wieder dieselben fünf Probleme auf: die Verwendung von Opus als Standardmodell anstelle von Sonnet für die meisten Aufgaben, das nie Starten frischer Sitzungen, das Installieren von Skills ohne den Quellcode zu lesen, das Exponieren des Gateways im Netzwerk und das Hinzufügen eines zweiten Agenten, bevor der erste repariert ist.

Die meisten Menschen nutzen Claude nur zu 5 % seiner Kapazität – So beheben Sie das
Nach über 60 Stunden Testen von Prompts auf Claude Opus 4.7 teilt ein Nutzer ein 5-Schritte-Rezept: Rolle zuweisen, spezifischen Kontext laden, Einschränkungen setzen, Ausgabeformat definieren, Forcing-Funktion hinzufügen.

Claude Code Headless-Modus mit --print-Flag
Claude Code kann im Headless-Modus mit dem --print-Flag ausgeführt werden, was es ermöglicht, Prompts für automatisierte Ausgaben ohne interaktive Sitzungen einzulesen. Dies ermöglicht die Integration in CI/CD-Pipelines, Git-Hooks und Bash-Skripte.