Context

„Context” ist alles, was OpenClaw bei einem Run an das Modell sendet. Er ist durch das Context Window (Token-Limit) des Modells begrenzt.

Einfaches Modell zum Verständnis:

  • System Prompt (von OpenClaw erstellt): Regeln, Tools, Skills-Liste, Zeit/Runtime und eingefügte Workspace-Dateien.
  • Gesprächsverlauf: Deine Nachrichten + die Antworten des Assistenten in dieser Session.
  • Tool-Aufrufe/Ergebnisse + Anhänge: Befehlsausgaben, Datei-Reads, Bilder/Audio usw.

Context ist nicht dasselbe wie „Memory”: Memory kann auf der Festplatte gespeichert und später neu geladen werden; Context ist das, was sich gerade im Fenster des Modells befindet.

Schnellstart (Context prüfen)

  • /status → Schnelle Übersicht „Wie voll ist mein Fenster?” + Session-Einstellungen.
  • /context list → Was eingefügt wurde + ungefähre Größen (pro Datei + Gesamtsummen).
  • /context detail → Detaillierte Aufschlüsselung: pro Datei, Tool-Schema-Größen, Skill-Eintrag-Größen und System-Prompt-Größe.
  • /usage tokens → Fügt einen Token-Verbrauch-Footer zu normalen Antworten hinzu.
  • /compact → Fasst ältere History in einen kompakten Eintrag zusammen, um Platz im Fenster freizugeben.

Siehe auch: Slash-Befehle, Token-Verbrauch & Kosten, Compaction.

Beispielausgabe

Die Werte variieren je nach Modell, Provider, Tool-Policy und dem Inhalt deines Workspace.

/context list

🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 20,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))

Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)

Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)

Session tokens (cached): 14,250 total / ctx=32,000

/context detail

🧠 Context breakdown (detailed)

Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)

Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)

Was zum Context Window zählt

Alles, was das Modell empfängt, zählt dazu:

  • System Prompt (alle Abschnitte).
  • Gesprächsverlauf.
  • Tool-Aufrufe + Tool-Ergebnisse.
  • Anhänge/Transkripte (Bilder/Audio/Dateien).
  • Compaction-Zusammenfassungen und Pruning-Artefakte.
  • Provider-„Wrapper” oder versteckte Header (nicht sichtbar, werden trotzdem gezählt).

Wie OpenClaw den System Prompt aufbaut

Der System Prompt gehört OpenClaw und wird bei jedem Run neu erstellt. Er enthält:

  • Tool-Liste + kurze Beschreibungen.
  • Skills-Liste (nur Metadaten; siehe unten).
  • Workspace-Pfad.
  • Zeit (UTC + umgerechnete Benutzerzeit, falls konfiguriert).
  • Runtime-Metadaten (Host/OS/Modell/Thinking).
  • Eingefügte Workspace-Bootstrap-Dateien unter Project Context.

Vollständige Aufschlüsselung: System Prompt.

Eingefügte Workspace-Dateien (Project Context)

Standardmäßig fügt OpenClaw einen festen Satz von Workspace-Dateien ein (falls vorhanden):

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (nur beim ersten Run)

Große Dateien werden pro Datei mit agents.defaults.bootstrapMaxChars (Standard: 20000 Zeichen) gekürzt. /context zeigt raw vs injected Größen und ob eine Kürzung stattgefunden hat.

Skills: Was eingefügt wird vs. was bei Bedarf geladen wird

Der System Prompt enthält eine kompakte Skills-Liste (Name + Beschreibung + Pfad). Diese Liste hat echten Overhead.

Skill-Anweisungen werden standardmäßig nicht eingefügt. Das Modell soll die SKILL.md des Skills nur bei Bedarf lesen.

Tools: Es gibt zwei Kostenfaktoren

Tools beeinflussen den Context auf zwei Arten:

  1. Tool-Listen-Text im System Prompt (was du als „Tooling” siehst).
  2. Tool-Schemas (JSON). Diese werden an das Modell gesendet, damit es Tools aufrufen kann. Sie zählen zum Context, auch wenn du sie nicht als Klartext siehst.

/context detail schlüsselt die größten Tool-Schemas auf, damit du siehst, was dominiert.

Befehle, Direktiven und „Inline-Shortcuts”

Slash-Befehle werden vom Gateway verarbeitet. Es gibt verschiedene Verhaltensweisen:

  • Standalone-Befehle: Eine Nachricht, die nur /... enthält, wird als Befehl ausgeführt.
  • Direktiven: /think, /verbose, /reasoning, /elevated, /model, /queue werden entfernt, bevor das Modell die Nachricht sieht.
    • Nachrichten, die nur Direktiven enthalten, speichern Session-Einstellungen.
    • Inline-Direktiven in einer normalen Nachricht wirken als Hinweise für diese Nachricht.
  • Inline-Shortcuts (nur für freigeschaltete Sender): Bestimmte /...-Tokens in einer normalen Nachricht können sofort ausgeführt werden (Beispiel: „hey /status”) und werden entfernt, bevor das Modell den restlichen Text sieht.

Details: Slash-Befehle.

Sessions, Compaction und Pruning (was erhalten bleibt)

Was über Nachrichten hinweg erhalten bleibt, hängt vom Mechanismus ab:

  • Normale History bleibt im Session-Transkript, bis sie durch Policy kompaktiert/geprunt wird.
  • Compaction speichert eine Zusammenfassung ins Transkript und behält aktuelle Nachrichten intakt.
  • Pruning entfernt alte Tool-Ergebnisse aus dem In-Memory-Prompt für einen Run, schreibt aber das Transkript nicht um.

Docs: Session, Compaction, Session Pruning.

Was /context tatsächlich anzeigt

/context bevorzugt den neuesten run-built System-Prompt-Report, wenn verfügbar:

  • System prompt (run) = erfasst vom letzten eingebetteten (tool-fähigen) Run und im Session-Store gespeichert.
  • System prompt (estimate) = on-the-fly berechnet, wenn kein Run-Report existiert (oder wenn über ein CLI-Backend ausgeführt wird, das keinen Report generiert).

In beiden Fällen zeigt es Größen und Top-Beiträge an; es gibt nicht den vollständigen System Prompt oder die Tool-Schemas aus.