Kontext

“Kontext” ist alles, was OpenClaw dem Modell fuer einen Durchlauf sendet. Er wird durch das Kontextfenster (Token-Limit) des Modells begrenzt.

Einfaches Bild fuer den Einstieg:

  • System-Prompt (von OpenClaw erstellt): Regeln, Tools, Skills-Liste, Zeit/Runtime und injizierte Workspace-Dateien.
  • Konversationshistorie: deine Nachrichten und die Nachrichten des Assistenten fuer diese Sitzung.
  • Tool-Calls/Ergebnisse und Anhaenge: Befehlsausgaben, Datei-Reads, Bilder/Audio usw.

Kontext ist nicht dasselbe wie “Gedaechtnis”: Gedaechtnis kann auf der Festplatte gespeichert und spaeter neu geladen werden; Kontext ist das, was sich im aktuellen Fenster des Modells befindet.

Schnellstart (Kontext inspizieren)

  • /status -> schneller Ueberblick “Wie voll ist mein Fenster?” plus Sitzungseinstellungen.
  • /context list -> was injiziert wird plus grobe Groessen (pro Datei und Summen).
  • /context detail -> tiefere Aufschluesselung: pro Datei, pro Tool-Schema-Groessen, pro Skill-Eintragsgroessen und System-Prompt-Groesse.
  • /usage tokens -> haengt einen pro-Antwort-Nutzungs-Footer an normale Antworten an.
  • /compact -> fasst aeltere Historie in einen kompakten Eintrag zusammen, um Fensterplatz freizugeben.

Siehe auch: Slash-Befehle, Token-Nutzung und Kosten, Compaction.

Beispielausgabe

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

/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 auf das Kontextfenster angerechnet wird

Alles, was das Modell empfaengt, zaehlt, einschliesslich:

  • System-Prompt (alle Abschnitte).
  • Konversationshistorie.
  • Tool-Calls und Tool-Ergebnisse.
  • Anhaenge/Transkripte (Bilder/Audio/Dateien).
  • Compaction-Zusammenfassungen und Pruning-Artefakte.
  • Provider-”Wrapper” oder versteckte Header (nicht sichtbar, werden trotzdem gezaehlt).

Wie OpenClaw den System-Prompt aufbaut

Der System-Prompt gehoert OpenClaw und wird bei jedem Durchlauf neu erstellt. Er enthaelt:

  • Tool-Liste und kurze Beschreibungen.
  • Skills-Liste (nur Metadaten; siehe unten).
  • Workspace-Pfad.
  • Zeit (UTC und konvertierte Nutzerzeit, wenn konfiguriert).
  • Runtime-Metadaten (Host/OS/Modell/Thinking).
  • Injizierte Workspace-Bootstrap-Dateien unter Project Context.

Vollstaendige Aufschluesselung: System-Prompt.

Injizierte Workspace-Dateien (Project Context)

Standardmaessig injiziert OpenClaw einen festen Satz von Workspace-Dateien (wenn vorhanden):

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

Grosse Dateien werden pro Datei gekuerzt mit agents.defaults.bootstrapMaxChars (Standard 20000 Zeichen). OpenClaw setzt ausserdem ein Gesamt-Bootstrap-Injektionslimit ueber alle Dateien mit agents.defaults.bootstrapTotalMaxChars (Standard 150000 Zeichen). /context zeigt Roh- vs. injizierte Groessen und ob Kuerzung stattgefunden hat.

Wenn eine Kuerzung stattfindet, kann die Runtime einen In-Prompt-Warnblock unter Project Context injizieren. Konfiguriere das mit agents.defaults.bootstrapPromptTruncationWarning (off, once, always; Standard once).

Skills: Was injiziert vs. bei Bedarf geladen wird

Der System-Prompt enthaelt eine kompakte Skills-Liste (Name + Beschreibung + Speicherort). Diese Liste hat realen Overhead.

Skill-Anweisungen werden nicht standardmaessig eingebunden. Das Modell soll die SKILL.md des Skills nur bei Bedarf per read laden.

Tools: Es gibt zwei Kostenfaktoren

Tools beeinflussen den Kontext auf zwei Arten:

  1. Tool-Listentext im System-Prompt (was du als “Tooling” siehst).
  2. Tool-Schemas (JSON). Diese werden dem Modell gesendet, damit es Tools aufrufen kann. Sie zaehlen zum Kontext, auch wenn du sie nicht als Klartext siehst.

/context detail schlüsselt die groessten Tool-Schemas auf, damit du siehst, was dominiert.

Befehle, Direktiven und “Inline-Shortcuts”

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

  • Eigenstaendige Befehle: Eine Nachricht, die nur /... enthaelt, wird als Befehl ausgefuehrt.
  • Direktiven: /think, /verbose, /reasoning, /elevated, /model, /queue werden entfernt, bevor das Modell die Nachricht sieht.
    • Direktiven-only-Nachrichten persistieren Sitzungseinstellungen.
    • Inline-Direktiven in einer normalen Nachricht wirken als Hinweise fuer diese einzelne Nachricht.
  • Inline-Shortcuts (nur fuer freigegebene Absender): Bestimmte /...-Tokens innerhalb einer normalen Nachricht koennen sofort ausgefuehrt werden (Beispiel: “hey /status”) und werden entfernt, bevor das Modell den restlichen Text sieht.

Details: Slash-Befehle.

Sitzungen, Compaction und Pruning (was persistiert)

Was ueber Nachrichten hinweg persistiert, haengt vom Mechanismus ab:

  • Normale Historie persistiert im Sitzungstranskript, bis sie durch Policy komprimiert/gekuerzt wird.
  • Compaction persistiert eine Zusammenfassung ins Transkript und behaelt neuere Nachrichten intakt.
  • Pruning entfernt alte Tool-Ergebnisse aus dem In-Memory-Prompt fuer einen Durchlauf, schreibt aber das Transkript nicht um.

Dokumentation: Session, Compaction, Session-Pruning.

Standardmaessig nutzt OpenClaw die eingebaute legacy-Kontext-Engine fuer Aufbau und Compaction. Wenn du ein Plugin installierst, das kind: "context-engine" bereitstellt, und es mit plugins.slots.contextEngine auswaehlst, delegiert OpenClaw Kontextaufbau, /compact und zugehoerige Subagent-Kontext-Lebenszyklus-Hooks an diese Engine.

Was /context tatsaechlich anzeigt

/context bevorzugt den neuesten laufzeitig erstellten System-Prompt-Report, wenn verfuegbar:

  • System prompt (run) = erfasst vom letzten eingebetteten (toolfaehigen) Durchlauf und im Sitzungsspeicher persistiert.
  • System prompt (estimate) = spontan berechnet, wenn kein Durchlauf-Report existiert (oder bei Ausfuehrung ueber ein CLI-Backend, das den Report nicht generiert).

In jedem Fall werden Groessen und groesste Beitraeger angezeigt; der vollstaendige System-Prompt oder die Tool-Schemas werden nicht ausgegeben.