Die meisten Leute behandeln OpenClaw wie einen Chat-Assistenten. Frage rein, Antwort raus. Aber das ist ungefähr so, als würde man einen Formel-1-Wagen zum Einkaufen nehmen. OpenClaw ist eine modulare Prompt-Assembly-Runtime, und SOUL.md ist die Datei, die dem Agenten sagt, wer er sein soll.
Bei jeder einzelnen Nachricht, die dein Agent verarbeitet, wird SOUL.md in den System Prompt injiziert. Jede Runde. Das bedeutet: es kostet bei jeder Interaktion Tokens und formt jede Antwort. Richtig konfiguriert fühlt sich dein Agent an wie ein Kollege, der dein Business kennt. Falsch konfiguriert verbrennst du Geld für einen verwirrten Bot.
Was SOUL.md tatsächlich macht
SOUL.md ist eine Markdown-Datei, die Persönlichkeit, Regeln und langfristige Anweisungen deines Agenten definiert. Stell es dir als den System Prompt vor, der über Sessions hinweg bestehen bleibt. Wenn OpenClaw startet, liest es SOUL.md und schiebt den Inhalt an den Anfang jedes Gesprächs.
Was die meisten nicht wissen: OpenClaw schickt nicht einfach SOUL.md an das Modell. Es baut den System Prompt dynamisch aus mehreren Quellen zusammen. Deine SOUL.md, plus aktive Skills, plus Memory-Kontext, plus User-Identity-Metadaten, plus Model-Aliases-Konfiguration. Alles wird zusammengefügt, bevor es ans LLM geht.
Genau deshalb verhalten sich Sub-Agents anders als dein Haupt-Agent. Sub-Agents laufen im "minimal" Modus, der Memory, Messaging-Hooks und Heartbeat-Funktionen entfernt. Gleiche SOUL.md, anderer Runtime-Kontext.
Was in die SOUL.md gehört
Ich habe SOUL.md-Dateien gesehen, die 5 Zeilen lang waren, und welche mit 500. Beide Extreme machen Probleme. Basierend auf dem, was wir bei ClawHosters-Instanzen beobachtet haben, liegt der Sweet Spot bei 50 bis 150 Zeilen, aufgeteilt in drei Bereiche.
Persönlichkeit und Tonfall: Wie der Agent kommuniziert. "Antworte professionell aber freundlich." "Keine Emojis verwenden." "Halte Antworten unter 200 Wörtern, außer es wird ausdrücklich mehr verlangt." Sei hier konkret. "Sei knapp" bedeutet für ein LLM nichts. "Maximal 5 Aufzählungspunkte pro Antwort" gibt dem Modell etwas Greifbares.
Kernregeln und Grenzen: Was der Agent tun darf und was nicht. "Gib niemals Preisinformationen weiter, ohne die aktuelle Preisliste zu prüfen." "Frage immer nach der Bestellnummer, bevor du den Versandstatus nachschlägst." Das sind deine Leitplanken.
Langfristige Anweisungen: Zeitplanung, Formatierungsregeln, Workflow-Muster. "Wenn ich nach Lagerbestand frage, prüfe immer beide Lager." "Formatiere alle Daten als TT.MM.JJJJ."
Ein Punkt, der viele überrascht, wie der OpenClaw Experts Guide erklärt: Position ist entscheidend. Modelle gewichten Anweisungen am Anfang des System Prompts stärker als am Ende. Deine wichtigsten Regeln gehören ganz nach oben in die SOUL.md. Nicht in die Mitte. Nicht verstreut. Ganz oben.
Die Token-Rechnung, die du wahrscheinlich ignorierst
Jedes Zeichen in deiner SOUL.md kostet bei jeder Nachricht Tokens. Rechnen wir mal.
Eine 150-Zeilen SOUL.md hat ungefähr 3.000 bis 4.000 Tokens. Laut der DeepWiki Source-Analyse können OpenClaws Bootstrap-Dateien (System Prompt, aktive Skills, Memory-Kontext) über 35.600 Tokens pro Nachricht verschlingen, bevor der Nutzer überhaupt "Hallo" tippt. Es gibt ein Limit von 20.000 Zeichen pro Datei und 150.000 Zeichen insgesamt über alle geladenen Kontexte.
Anthropics Prompt Caching hilft dabei. Wenn deine SOUL.md zwischen Nachrichten stabil bleibt (und das sollte sie), spart der Cache 80 bis 90% der Input-Token-Kosten. Aber wenn du SOUL.md dynamisch zwischen Nachrichten änderst, sprengst du den Cache jedes Mal. Unser Token-Kosten-Optimierungsguide erklärt die komplette Kostenstruktur.
Fazit: Halte SOUL.md stabil und knapp. Stopf keine Anweisungen rein, die du nur gelegentlich brauchst. Pack die stattdessen in Skills.
Memory: Wo Anweisungen wirklich bestehen bleiben
OpenClaws Memory-System nutzt SQLite mit FTS5-Volltextsuche und sqlite-vec für Vektor-Embeddings. Wenn der Agent sich an etwas erinnern muss, verwendet er hybrides Scoring: 70% Vektor-Ähnlichkeit plus 30% BM25-Keyword-Match.
Die wichtigste Regel: Was nicht in eine Datei geschrieben wird, existiert langfristig nicht. Anweisungen, die du nur im Chat gibst, werden irgendwann durch Kontext-Kompaktierung entfernt. Genau diesen Fehlerfall haben wir in unserem Sicherheitsartikel über ClawBands behandelt. Wenn eine Regel wichtig ist, gehört sie in SOUL.md oder eine eigene Anweisungsdatei. Chat-Anweisungen sterben bei der Kompaktierung.
Die Sicherheitslücke, die du kennen musst
SOUL.md-Regeln sind Empfehlungen, kein Zwang. Wenn du "niemals Shell-Kommandos ausführen" in die SOUL.md schreibst, wird das LLM versuchen, das zu respektieren. Aber eine geschickte Prompt Injection kann das umgehen. SOUL.md ist eine Vorschlagsebene, keine Sicherheitsgrenze.
Für echte Durchsetzung brauchst du Tool Policies in deiner OpenClaw-Konfiguration. Tool Policies arbeiten auf Runtime-Ebene und blockieren Tools, bevor das LLM sie überhaupt sieht. Das ist eine Mauer, kein Vorschlag. Unser Security-Hardening-Guide erklärt beide Ebenen im Detail.
Wie ClawHosters das handhabt
Bei ClawHosters bekommt jede Instanz ein eigenes, dediziertes Context Window und vorkonfigurierte Prompt-Einstellungen. Das Dashboard bietet eine UI zum Bearbeiten der SOUL.md, ohne Konfigurationsdateien anfassen zu müssen. Und die Container-Isolation sorgt dafür, dass dein Prompt-Kontext privat bleibt.
Beim Self-Hosting musst du das alles manuell verwalten. Der Free-LLM-API-Guide erklärt, wie du günstig startest, und unser Self-Hosted vs Managed Vergleich zeigt, worauf du dich einlässt.