System-Prompt
OpenClaw erstellt fuer jeden Agent-Lauf einen eigenen System-Prompt. Der Prompt gehoert OpenClaw und verwendet nicht den pi-coding-agent-Standardprompt.
Der Prompt wird von OpenClaw zusammengebaut und in jeden Agent-Lauf injiziert.
Struktur
Der Prompt ist bewusst kompakt und nutzt feste Abschnitte:
- Tooling: aktuelle Tool-Liste + Kurzbeschreibungen.
- Safety: kurze Guardrail-Erinnerung zur Vermeidung von machtstrebendem Verhalten oder Umgehung von Aufsicht.
- Skills (wenn verfuegbar): erklaert dem Modell, wie es Skill-Anweisungen bei Bedarf laden kann.
- OpenClaw Self-Update: wie man
config.applyundupdate.runausfuehrt. - Workspace: Arbeitsverzeichnis (
agents.defaults.workspace). - Dokumentation: lokaler Pfad zu OpenClaw-Docs (Repo oder npm-Paket) und wann man sie lesen sollte.
- Workspace-Dateien (injiziert): zeigt an, dass Bootstrap-Dateien unten enthalten sind.
- Sandbox (wenn aktiviert): zeigt sandboxed Runtime, Sandbox-Pfade und ob erhoehte Exec-Rechte verfuegbar sind.
- Aktuelles Datum & Uhrzeit: lokale Nutzerzeit, Zeitzone und Zeitformat.
- Reply Tags: optionale Reply-Tag-Syntax fuer unterstuetzte Provider.
- Heartbeats: Heartbeat-Prompt und Ack-Verhalten.
- Runtime: Host, OS, Node, Modell, Repo-Root (wenn erkannt), Thinking-Level (eine Zeile).
- Reasoning: aktuelle Sichtbarkeitsstufe + /reasoning-Toggle-Hinweis.
Sicherheits-Guardrails im System-Prompt sind beratend. Sie lenken das Modellverhalten, setzen aber keine Richtlinien durch. Nutze Tool-Policy, Exec-Genehmigungen, Sandboxing und Kanal-Allowlists fuer harte Durchsetzung; Betreiber koennen diese bewusst deaktivieren.
Prompt-Modi
OpenClaw kann kleinere System-Prompts fuer Sub-Agents rendern. Die Runtime setzt einen promptMode fuer jeden Lauf (keine nutzerseitige Config):
full(Standard): enthaelt alle oben genannten Abschnitte.minimal: fuer Sub-Agents; laesst Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies und Heartbeats weg. Tooling, Safety, Workspace, Sandbox, aktuelles Datum & Uhrzeit (wenn bekannt), Runtime und injizierter Kontext bleiben verfuegbar.none: gibt nur die Basis-Identitaetszeile zurueck.
Bei promptMode=minimal werden zusaetzliche injizierte Prompts als Subagent Context statt als Group Chat Context beschriftet.
Workspace-Bootstrap-Injektion
Bootstrap-Dateien werden getrimmt und unter Project Context angehaengt, damit das Modell Identitaets- und Profilkontext sieht, ohne explizite Reads zu benoetigen:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(nur bei brandneuen Workspaces)MEMORY.mdwenn vorhanden, sonstmemory.mdals Kleinschreibungs-Fallback
All diese Dateien werden bei jeder Runde in das Kontextfenster injiziert, was bedeutet, dass sie Tokens verbrauchen. Halte sie kurz — besonders MEMORY.md, das ueber die Zeit wachsen und zu unerwartet hohem Kontextverbrauch und haeufigerer Kompaktierung fuehren kann.
Hinweis:
memory/*.md-Tagesdateien werden nicht automatisch injiziert. Sie werden bei Bedarf ueber die Toolsmemory_searchundmemory_getabgerufen, sodass sie nicht auf das Kontextfenster angerechnet werden, solange das Modell sie nicht explizit liest.
Grosse Dateien werden mit einem Marker abgeschnitten. Die maximale Dateigroesse wird durch agents.defaults.bootstrapMaxChars gesteuert (Standard: 20000). Der gesamte injizierte Bootstrap-Inhalt ueber alle Dateien ist durch agents.defaults.bootstrapTotalMaxChars begrenzt (Standard: 150000). Fehlende Dateien injizieren einen kurzen Fehlend-Marker. Wenn Kuerzungen auftreten, kann OpenClaw einen Warnblock im Project Context injizieren; steuere das mit agents.defaults.bootstrapPromptTruncationWarning (off, once, always; Standard: once).
Sub-Agent-Sessions injizieren nur AGENTS.md und TOOLS.md (andere Bootstrap-Dateien werden herausgefiltert, um den Sub-Agent-Kontext klein zu halten).
Interne Hooks koennen diesen Schritt per agent:bootstrap abfangen, um die injizierten Bootstrap-Dateien zu veraendern oder zu ersetzen (zum Beispiel SOUL.md gegen eine alternative Persona tauschen).
Um zu sehen, wie viel jede injizierte Datei beitraegt (roh vs. injiziert, Kuerzung, plus Tool-Schema-Overhead), nutze /context list oder /context detail. Siehe Context.
Zeitbehandlung
Der System-Prompt enthaelt einen eigenen Abschnitt Aktuelles Datum & Uhrzeit, wenn die Nutzerzeitzone bekannt ist. Um den Prompt-Cache stabil zu halten, enthaelt er jetzt nur noch die Zeitzone (keine dynamische Uhr oder Zeitformat).
Nutze session_status, wenn der Agent die aktuelle Zeit braucht; die Status-Karte enthaelt eine Zeitstempel-Zeile.
Konfiguriere mit:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Siehe Date & Time fuer alle Verhaltensdetails.
Skills
Wenn berechtigte Skills vorhanden sind, injiziert OpenClaw eine kompakte Liste verfuegbarer Skills (formatSkillsForPrompt), die den Dateipfad jedes Skills enthaelt. Der Prompt weist das Modell an, read zu nutzen, um die SKILL.md am angegebenen Ort zu laden (Workspace, verwaltet oder mitgeliefert). Wenn keine Skills berechtigt sind, wird der Skills-Abschnitt weggelassen.
<available_skills>
<skill>
<name>...</name>
<description>...</description>
<location>...</location>
</skill>
</available_skills>
So bleibt der Basis-Prompt klein und ermoeglicht dennoch gezielten Skill-Einsatz.
Dokumentation
Wenn verfuegbar, enthaelt der System-Prompt einen Dokumentation-Abschnitt, der auf das lokale OpenClaw-Docs-Verzeichnis verweist (entweder docs/ im Repo-Workspace oder die mitgelieferten npm-Paket-Docs) und auch den oeffentlichen Mirror, das Quell-Repo, den Community-Discord und ClawHub (https://clawhub.com) fuer die Skill-Entdeckung nennt. Der Prompt weist das Modell an, zuerst lokale Docs fuer OpenClaw-Verhalten, Befehle, Konfiguration oder Architektur zu konsultieren und openclaw status selbst auszufuehren, wenn moeglich (den Nutzer nur fragen, wenn kein Zugriff besteht).