System Prompt

OpenClaw erstellt für jeden Agent-Lauf einen eigenen System Prompt. Der Prompt gehört OpenClaw und verwendet nicht den Standard-Prompt von p-coding-agent.

OpenClaw stellt den Prompt zusammen und injiziert ihn in jeden Agent-Lauf.

Struktur

Der Prompt ist bewusst kompakt gehalten und nutzt feste Abschnitte:

  • Tooling: aktuelle Tool-Liste mit kurzen Beschreibungen.
  • Safety: kurze Sicherheitshinweise gegen machtstrebendes Verhalten oder das Umgehen von Kontrollen.
  • Skills (wenn verfügbar): erklärt dem Model, wie es Skill-Anweisungen bei Bedarf laden kann.
  • OpenClaw Self-Update: wie man config.apply und update.run ausführt.
  • Workspace: Arbeitsverzeichnis (agents.defaults.workspace).
  • Documentation: lokaler Pfad zu den OpenClaw-Docs (Repo oder npm-Paket) und wann sie gelesen werden sollen.
  • Workspace Files (injected): zeigt an, dass Bootstrap-Dateien unten eingefügt sind.
  • Sandbox (wenn aktiviert): zeigt Sandbox-Runtime, Sandbox-Pfade und ob erhöhte Ausführungsrechte verfügbar sind.
  • Current Date & Time: lokale Benutzerzeit, Zeitzone und Zeitformat.
  • Reply Tags: optionale Reply-Tag-Syntax für unterstützte Provider.
  • Heartbeats: Heartbeat-Prompt und Bestätigungsverhalten.
  • Runtime: Host, OS, Node, Model, Repo-Root (wenn erkannt), Thinking-Level (eine Zeile).
  • Reasoning: aktuelles Sichtbarkeitslevel + /reasoning Toggle-Hinweis.

Die Sicherheitshinweise im System Prompt sind beratend. Sie leiten das Model-Verhalten, erzwingen aber keine Richtlinien. Für harte Durchsetzung nutze Tool Policy, Exec Approvals, Sandboxing und Channel Allowlists; Operatoren können diese absichtlich deaktivieren.

Prompt-Modi

OpenClaw kann kleinere System Prompts für Sub-Agents rendern. Die Runtime setzt einen promptMode für jeden Lauf (keine benutzerseitige Konfiguration):

  • full (Standard): enthält alle oben genannten Abschnitte.
  • minimal: für Sub-Agents; lässt Skills, Memory Recall, OpenClaw Self-Update, Model Aliases, User Identity, Reply Tags, Messaging, Silent Replies und Heartbeats weg. Tooling, Safety, Workspace, Sandbox, Current Date & Time (wenn bekannt), Runtime und injizierter Context bleiben verfügbar.
  • none: gibt nur die Basis-Identitätszeile zurück.

Bei promptMode=minimal werden zusätzlich injizierte Prompts als Subagent Context statt Group Chat Context gekennzeichnet.

Workspace Bootstrap Injection

Bootstrap-Dateien werden gekürzt und unter Project Context angehängt, damit das Model Identitäts- und Profil-Context sieht, ohne explizit lesen zu müssen:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (nur bei brandneuen Workspaces)

Große Dateien werden mit einem Marker gekürzt. Die maximale Dateigröße wird durch agents.defaults.bootstrapMaxChars gesteuert (Standard: 20000). Fehlende Dateien fügen einen kurzen Missing-File-Marker ein.

Interne Hooks können diesen Schritt über agent:bootstrap abfangen, um die injizierten Bootstrap-Dateien zu ändern oder zu ersetzen (zum Beispiel SOUL.md gegen eine alternative Persona austauschen).

Um zu sehen, wie viel jede injizierte Datei beiträgt (roh vs. injiziert, Kürzung, plus Tool-Schema-Overhead), nutze /context list oder /context detail. Siehe Context.

Zeitbehandlung

Der System Prompt enthält einen eigenen Current Date & Time-Abschnitt, wenn die Benutzer-Zeitzone bekannt ist. Um den Prompt cache-stabil zu halten, enthält er jetzt nur noch die Zeitzone (keine dynamische Uhr oder Zeitformat).

Nutze session_status, wenn der Agent die aktuelle Zeit braucht; die Status-Karte enthält eine Zeitstempel-Zeile.

Konfiguriere mit:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)

Siehe Date & Time für alle Details zum Verhalten.

Skills

Wenn berechtigte Skills existieren, injiziert OpenClaw eine kompakte available skills list (formatSkillsForPrompt), die den Dateipfad für jeden Skill enthält. Der Prompt weist das Model an, read zu verwenden, um die SKILL.md am angegebenen Ort zu laden (Workspace, managed oder bundled). Wenn keine Skills berechtigt sind, wird der Skills-Abschnitt weggelassen.

<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>

Das hält den Basis-Prompt klein und ermöglicht trotzdem gezielte Skill-Nutzung.

Dokumentation

Wenn verfügbar, enthält der System Prompt einen Documentation-Abschnitt, der auf das lokale OpenClaw-Docs-Verzeichnis verweist (entweder docs/ im Repo-Workspace oder die gebündelten npm-Paket-Docs) und auch den öffentlichen Mirror, das Source-Repo, den Community-Discord und ClawHub (https://clawhub.com) für Skills-Entdeckung erwähnt. Der Prompt weist das Model an, zuerst die lokalen Docs für OpenClaw-Verhalten, Befehle, Konfiguration oder Architektur zu konsultieren und openclaw status selbst auszuführen, wenn möglich (den Benutzer nur fragen, wenn es keinen Zugriff hat).