Technical reference
Tokenverbrauch und Kosten
OpenClaw erfasst Tokens, nicht Zeichen. Tokens sind modellspezifisch, aber die meisten Modelle im OpenAI-Stil verwenden bei englischem Text durchschnittlich ~4 Zeichen pro Token.
So wird der System-Prompt erstellt
OpenClaw stellt bei jedem Lauf einen eigenen System-Prompt zusammen. Er enthält:
- Tool-Liste + Kurzbeschreibungen
- Skills-Liste (nur Metadaten; Anweisungen werden bei Bedarf mit
readgeladen). Native Codex-Turns erhalten den kompakten Skills-Block als auf den Turn beschränkte Entwickleranweisungen zur Zusammenarbeit; andere Harnesses erhalten ihn auf der normalen Prompt-Oberfläche. Begrenzt durchskills.limits.maxSkillsPromptChars, mit optionaler Überschreibung pro Agent unteragents.entries.*.skillsLimits.maxSkillsPromptChars. - Anweisungen zur Selbstaktualisierung
- Workspace- + Bootstrap-Dateien (
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md,HEARTBEAT.md,BOOTSTRAP.mdbei neuen Workspaces sowieMEMORY.md, falls vorhanden). Große injizierte Dateien werden durchagents.defaults.bootstrapMaxCharsgekürzt (Standard:20000); die gesamte Bootstrap- Injektion wird durchagents.defaults.bootstrapTotalMaxCharsbegrenzt (Standard:60000).- Native Codex-Turns fügen den unverarbeiteten Inhalt von
MEMORY.mdnicht ein, wenn für diesen Workspace Memory-Tools verfügbar sind; stattdessen erhalten sie in den auf den Turn beschränkten Entwickleranweisungen zur Zusammenarbeit einen kurzen Memory-Verweis und verwenden Memory-Tools bei Bedarf. Wenn Tools deaktiviert sind, die Memory-Suche nicht verfügbar ist oder sich der aktive Workspace vom Agent-Memory-Workspace unterscheidet, greiftMEMORY.mdauf den normalen begrenzten Turn-Kontextpfad zurück. - Die kleingeschriebene Stammdatei
memory.mdwird niemals injiziert. Sie dient als Legacy-Reparatureingabe füropenclaw doctor --fix, das sie nachMEMORY.mdmigriert. - Tägliche
memory/*.md-Dateien sind nicht Teil des normalen Bootstrap-Prompts; sie bleiben bei gewöhnlichen Turns über Memory-Tools bei Bedarf verfügbar. Modellläufe zum Zurücksetzen/Starten können für diesen ersten Turn einmalig einen Startkontextblock mit aktuellen täglichen Memory-Inhalten voranstellen, gesteuert durchagents.defaults.startupContext. Reine Chat-Befehle/newund/resetwerden bestätigt, ohne das Modell aufzurufen. - Auszüge aus
AGENTS.mdnach der Compaction erfordern ein ausdrückliches Opt-in überagents.defaults.compaction.postCompactionSections; Plugins können überbefore_prompt_buildweiteren Kontext hinzufügen.
- Native Codex-Turns fügen den unverarbeiteten Inhalt von
- Zeit (UTC + Zeitzone des Benutzers)
- Antwort-Tags + Heartbeat-Verhalten
- Laufzeitmetadaten (Host/Betriebssystem/Modell/Thinking)
Eine vollständige Aufschlüsselung finden Sie unter System-Prompt.
Verwenden Sie bei der Dokumentation von Anmeldedaten oder Authentifizierungsausschnitten die Konventionen für Geheimnisplatzhalter, um Fehlalarme von Secret-Scannern bei reinen Dokumentationsänderungen zu vermeiden.
Was zum Kontextfenster zählt
Alles, was das Modell empfängt, wird auf das Kontextlimit angerechnet:
- System-Prompt (alle oben genannten Abschnitte)
- Konversationsverlauf (Nachrichten von Benutzer + Assistent)
- Tool-Aufrufe und Tool-Ergebnisse
- Anhänge/Transkripte (Bilder, Audio, Dateien)
- Compaction-Zusammenfassungen und Bereinigungsartefakte
- Provider-Wrapper oder Sicherheitsheader (nicht sichtbar, werden aber dennoch angerechnet)
Laufzeitintensive Oberflächen haben eigene explizite Grenzwerte unter
agents.defaults.contextLimits (Überschreibungen pro Agent unter
agents.entries.*.contextLimits):
| Schlüssel | Zweck |
|---|---|
memoryGetMaxChars |
Maximale Anzahl Zeichen, die memory_get vor der Kürzung zurückgibt. |
postCompactionMaxChars |
Maximale Anzahl Zeichen, die während der Aktualisierung nach der Compaction aus AGENTS.md beibehalten wird. |
Hierbei handelt es sich um begrenzte Laufzeitauszüge und injizierte laufzeiteigene Blöcke, die von Bootstrap-Limits, Startkontextlimits und Limits für Skills-Prompts getrennt sind.
OpenClaw leitet den aktuellen Grenzwert für Tool-Ergebnisse aus dem effektiven Modellkontextfenster
ab: 16000 Zeichen bei weniger als
100K Tokens, 32000 Zeichen ab 100K Tokens, 64000 Zeichen ab 200K Tokens.
Die Laufzeitbegrenzung für den Kontextanteil beschränkt außerdem ein einzelnes Tool-Ergebnis auf 30 % des
Kontextfensters.
Große Provider-Fenster werden nicht automatisch aktiviert, wenn sie Kosten
oder Latenz erheblich verändern. Beispielsweise veröffentlichen direkte OpenAI-Modelle GPT-5.5 und GPT-5.6
ein Gesamtfenster von 1050000 Tokens, OpenClaw begrenzt ihr aktives
Laufzeitbudget jedoch standardmäßig auf 272000 Tokens. Das optionale Eingabebudget von 922000 reserviert das
vollständige Ausgabelimit von 128000, und OpenAI berechnet für die gesamte Anfrage
höhere Preise für langen Kontext, sobald die Eingabe 272000 Tokens überschreitet. Siehe
OpenAI-Standardwerte für Kontextfenster.
Bei Bildern verkleinert OpenClaw Bildnutzlasten aus Transkripten/Tools vor
Provider-Aufrufen. Passen Sie dies mit agents.defaults.imageMaxDimensionPx an (Standard:
1200):
- Niedrigere Werte reduzieren die Nutzung von Vision-Tokens und die Nutzlastgröße.
- Höhere Werte bewahren mehr visuelle Details für OCR-/UI-lastige Screenshots.
Für eine praktische Aufschlüsselung (nach injizierter Datei, Tools, Skills und Größe des
System-Prompts) verwenden Sie /context list oder /context detail. Siehe
Kontext.
So zeigen Sie die aktuelle Token-Nutzung an
Im Chat:
/status-> Emoji-reiche Statuskarte mit dem Sitzungsmodell, der Kontextnutzung, den Eingabe-/Ausgabe-Tokens der letzten Antwort und den geschätzten Kosten, wenn lokale Preise für das aktive Modell konfiguriert sind./usage off|tokens|full-> fügt jeder Antwort eine Nutzungsfußzeile pro Antwort hinzu. Bleibt sitzungsbezogen erhalten (gespeichert alsresponseUsage)./usage reset(Aliase:inherit,clear,default) löscht die Sitzungsüberschreibung, sodass der konfigurierte Standard erneut übernommen wird./usage tokenszeigt Token-/Cache-Details des Turns./usage fullzeigt kompakte Modell-/Kontext-/Kostendetails; geschätzte Kosten werden nur angezeigt, wenn OpenClaw über Nutzungsmetadaten und lokale Preise für das aktive Modell verfügt. Benutzerdefiniertemessages.usageTemplate-Layouts können Token-/Cache-Felder enthalten.
/usage cost-> lokale Kostenzusammenfassung aus OpenClaw-Sitzungsprotokollen.
Weitere Oberflächen:
- TUI/Web-TUI:
/statusund/usagewerden unterstützt. - CLI:
openclaw status --usageundopenclaw channels listzeigen normalisierte Provider-Kontingentfenster (X% left, keine Kosten pro Antwort). Aktuelle Provider für Nutzungsfenster: Claude (Anthropic), ClawRouter, Copilot (GitHub), DeepSeek, Gemini (Google Gemini CLI), MiniMax, OpenAI, Xiaomi, Xiaomi Token Plan und z.ai.
Nutzungsoberflächen normalisieren vor der Anzeige gängige Aliase nativer Provider-Felder.
Für Responses-Datenverkehr der OpenAI-Familie umfasst dies sowohl
input_tokens/output_tokens als auch prompt_tokens/completion_tokens, sodass
transportspezifische Feldnamen /status, /usage oder Sitzungszusammenfassungen
nicht verändern. Die Nutzung der Gemini CLI wird ebenfalls normalisiert: Der standardmäßige stream-json-
Parser liest Assistentenereignisse vom Typ message, und stats.cached wird auf
cacheRead abgebildet, wobei stats.input_tokens - stats.cached verwendet wird, wenn die CLI
kein explizites Feld stats.input liefert. Legacy-JSON-Überschreibungen lesen den Antworttext weiterhin
aus response.
Für nativen Responses-Datenverkehr der OpenAI-Familie werden WebSocket-/SSE-Nutzungsaliase
auf dieselbe Weise normalisiert, und Gesamtwerte greifen auf normalisierte Eingabe + Ausgabe
zurück, wenn total_tokens fehlt oder 0 ist.
Wenn der aktuelle Sitzungssnapshot nur wenige Daten enthält, können /status und session_status
Token-/Cache-Zähler sowie die Bezeichnung des aktiven Laufzeitmodells aus dem
neuesten Transkript-Nutzungsprotokoll wiederherstellen. Vorhandene von null verschiedene Live-Werte haben weiterhin
Vorrang vor Transkript-Fallback-Werten, und größere promptorientierte
Transkript-Gesamtwerte können Vorrang erhalten, wenn gespeicherte Gesamtwerte fehlen oder kleiner sind.
Die Nutzungsauthentifizierung für Provider-Kontingentfenster stammt zuerst aus Provider-spezifischen Hooks; wenn ein Provider keinen Hook besitzt (oder der Hook kein Token auflöst), greift OpenClaw auf passende OAuth-/API-Schlüssel-Anmeldedaten aus Authentifizierungsprofilen, Umgebungsvariablen oder der Konfiguration zurück.
Assistententranskripteinträge speichern dieselbe normalisierte Nutzungsstruktur,
einschließlich usage.cost, wenn für das aktive Modell Preise konfiguriert sind und der
Provider Nutzungsmetadaten zurückgibt. Dadurch erhalten /usage cost und der
transkriptgestützte Sitzungsstatus selbst dann eine stabile Quelle, wenn der aktive
Laufzeitzustand nicht mehr vorhanden ist.
OpenClaw hält die Provider-Nutzungsabrechnung vom aktuellen Kontextsnapshot
getrennt. Provider-usage.total kann zwischengespeicherte Eingaben, Ausgaben und
mehrere Modellaufrufe in Tool-Schleifen enthalten. Daher eignet es sich für Kosten und Telemetrie, kann aber
das aktuelle Kontextfenster überhöht darstellen. Kontextanzeigen und Diagnosen verwenden
für context.used den neuesten Prompt-Snapshot (promptTokens oder den letzten Modellaufruf, wenn kein
Prompt-Snapshot verfügbar ist).
Kostenschätzung (falls angezeigt)
Die Kosten werden anhand Ihrer Modellpreiskonfiguration geschätzt:
models.providers.<provider>.models[].costDies sind USD pro 1M Tokens für input, output, cacheRead und
cacheWrite. Wenn Preisangaben fehlen, lässt /usage full die Kosten weg; verwenden Sie
/usage tokens oder ein benutzerdefiniertes messages.usageTemplate, wenn Sie
Token-/Cache-Details in jeder Antwort benötigen. Die Kostenanzeige ist nicht auf die Authentifizierung
per API-Schlüssel beschränkt: Provider ohne API-Schlüssel wie aws-sdk können geschätzte Kosten anzeigen, wenn
ihr konfigurierter Modelleintrag lokale Preise enthält und der Provider
Nutzungsmetadaten zurückgibt.
Nachdem Sidecars und Kanäle den Bereitschaftspfad des Gateways erreicht haben, startet OpenClaw
optional im Hintergrund einen Preis-Bootstrap für konfigurierte Modellreferenzen, für die
noch keine lokalen Preise vorliegen. Dieser Bootstrap ruft entfernte Preiskataloge von OpenRouter und
LiteLLM ab. Setzen Sie models.pricing.enabled: false, um diese
Katalogabrufe in Offline- oder eingeschränkten Netzwerken zu überspringen; explizite
models.providers.*.models[].cost-Einträge steuern weiterhin lokale Kostenschätzungen.
Auswirkungen von Cache-TTL und Bereinigung
Das Provider-Prompt-Caching gilt nur innerhalb des Cache-TTL-Fensters. OpenClaw kann optional eine Cache-TTL-Bereinigung ausführen: Die Sitzung wird bereinigt, sobald die Cache-TTL abgelaufen ist; anschließend wird das Cache-Fenster zurückgesetzt, sodass nachfolgende Anfragen den neu zwischengespeicherten Kontext wiederverwenden, anstatt den gesamten Verlauf erneut zwischenzuspeichern. Dadurch bleiben die Cache-Schreibkosten niedriger, wenn eine Sitzung länger als die TTL inaktiv ist.
Konfigurieren Sie dies in der Gateway-Konfiguration und lesen Sie die Verhaltensdetails unter Sitzungsbereinigung.
Heartbeat kann den Cache über inaktive Zeiträume hinweg warm halten. Wenn die Cache-
TTL Ihres Modells 1h beträgt, kann ein Heartbeat-Intervall knapp darunter (z. B. 55m)
verhindern, dass der gesamte Prompt erneut zwischengespeichert wird, und so die Cache-Schreibkosten senken.
In Multi-Agent-Konfigurationen können Sie eine gemeinsame Modellkonfiguration verwenden und das Cache-
Verhalten mit agents.entries.*.params.cacheRetention pro Agent anpassen.
Eine vollständige Anleitung zu sämtlichen Einstellungen finden Sie unter Prompt-Caching.
Bei der Preisgestaltung der Anthropic-API sind Cache-Lesevorgänge erheblich günstiger als Eingabe- Tokens, während Cache-Schreibvorgänge mit einem höheren Multiplikator abgerechnet werden. Die aktuellen Preise und TTL-Multiplikatoren für Anthropic-Prompt-Caching finden Sie unter: https://docs.anthropic.com/docs/build-with-claude/prompt-caching
Beispiel: 1h-Cache mit Heartbeat warm halten
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" heartbeat: every: "55m"Beispiel: Gemischter Datenverkehr mit Cache-Strategie pro Agent
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" # Standardbasiswert für die meisten Agenten list: - id: "research" default: true heartbeat: every: "55m" # langen Cache für intensive Sitzungen aktiv halten - id: "alerts" params: cacheRetention: "none" # Cache-Schreibvorgänge für stoßweise Benachrichtigungen vermeidenagents.entries.*.params wird über den params des ausgewählten Modells zusammengeführt, sodass Sie
nur cacheRetention überschreiben und andere Modellstandardwerte
unverändert übernehmen können.
Anthropic-Kontext mit 1M
OpenClaw dimensioniert allgemein verfügbare Claude-4.x-Modelle wie Opus 4.8, Opus 4.7, Opus
4.6 und Sonnet 4.6 mit dem 1M-Kontextfenster von Anthropic. Sie benötigen
params.context1m: true für diese Modelle nicht.
agents: defaults: models: "anthropic/claude-opus-4-6": alias: opusÄltere Konfigurationen können context1m: true beibehalten, aber OpenClaw sendet
den eingestellten Anthropic-Beta-Header context-1m-2025-08-07 für diese Einstellung nicht mehr und
erweitert nicht unterstützte ältere Claude-Modelle nicht auf 1M.
Voraussetzung: Die Anmeldedaten müssen für die Nutzung langer Kontexte berechtigt sein. Andernfalls antwortet Anthropic für diese Anfrage mit einem Provider-seitigen Ratenbegrenzungsfehler.
Wenn Sie sich bei Anthropic mit OAuth-/Abonnement-Tokens
(sk-ant-oat-*) authentifizieren, behält OpenClaw die für OAuth erforderlichen Anthropic-Beta-
Header bei und entfernt gleichzeitig den eingestellten Beta-Wert context-1m-*, falls er noch in
einer älteren Konfiguration vorhanden ist.
Tipps zur Verringerung des Token-Drucks
- Verwenden Sie
/compact, um lange Sitzungen zusammenzufassen. - Kürzen Sie umfangreiche Tool-Ausgaben in Ihren Workflows.
- Reduzieren Sie
agents.defaults.imageMaxDimensionPxfür Sitzungen mit vielen Screenshots. - Halten Sie Skill-Beschreibungen kurz (die Skill-Liste wird in den Prompt eingefügt).
- Bevorzugen Sie kleinere Modelle für ausführliche, explorative Arbeiten.
Die genaue Formel für den Overhead der Skill-Liste finden Sie unter Skills.