Community-Übersetzungen von veiseule.ai — Help improve them on Crowdin
Zum Hauptinhalt springen

Session Pruning

Session Pruning kürzt alte Werkzeugergebnisse aus dem In‑Memory‑Kontext unmittelbar vor jedem LLM‑Aufruf. Die auf der Festplatte gespeicherte Sitzungsverlaufshistorie wird nicht umgeschrieben (*.jsonl).

Wann es ausgeführt wird

  • Wenn mode: "cache-ttl" aktiviert ist und der letzte Anthropic‑Aufruf für die Sitzung älter als ttl ist.
  • Betrifft nur die Nachrichten, die für diese Anfrage an das Modell gesendet werden.
  • Aktiv nur für Anthropic‑API‑Aufrufe (und OpenRouter‑Anthropic‑Modelle).
  • Für beste Ergebnisse stimmen Sie ttl auf Ihr Modell cacheControlTtl ab.
  • Nach einem Prune wird das TTL‑Fenster zurückgesetzt, sodass nachfolgende Anfragen den Cache behalten, bis ttl erneut abläuft.

Intelligente Standardwerte (Anthropic)

  • OAuth‑ oder setup-token‑Profile: Aktivieren Sie cache-ttl‑Pruning und setzen Sie den Heartbeat auf 1h.
  • API‑Schlüssel‑Profile: Aktivieren Sie cache-ttl‑Pruning, setzen Sie den Heartbeat auf 30m und setzen Sie den Standardwert cacheControlTtl bei Anthropic‑Modellen auf 1h.
  • Wenn Sie einen dieser Werte explizit setzen, überschreibt OpenClaw diese nicht.

Was dies verbessert (Kosten + Cache‑Verhalten)

  • Warum prunen: Anthropic‑Prompt‑Caching gilt nur innerhalb der TTL. Wenn eine Sitzung länger als die TTL inaktiv ist, cached die nächste Anfrage den vollständigen Prompt erneut, sofern Sie ihn nicht zuvor kürzen.
  • Was günstiger wird: Pruning reduziert die cacheWrite‑Größe für diese erste Anfrage nach Ablauf der TTL.
  • Warum das Zurücksetzen der TTL wichtig ist: Sobald Pruning ausgeführt wurde, wird das Cache‑Fenster zurückgesetzt, sodass Folgeanfragen den frisch gecachten Prompt wiederverwenden können, statt die vollständige Historie erneut zu cachen.
  • Was es nicht tut: Pruning fügt keine Tokens hinzu und verdoppelt keine Kosten; es ändert lediglich, was bei dieser ersten Anfrage nach der TTL gecacht wird.

Was gekürzt werden kann

  • Nur toolResult‑Nachrichten.
  • Nutzer‑ und Assistenten‑Nachrichten werden niemals verändert.
  • Die letzten keepLastAssistants Assistenten‑Nachrichten sind geschützt; Werkzeugergebnisse nach diesem Cutoff werden nicht gekürzt.
  • Wenn es nicht genügend Assistenten‑Nachrichten gibt, um den Cutoff festzulegen, wird Pruning übersprungen.
  • Werkzeugergebnisse mit Image‑Blöcken werden übersprungen (niemals gekürzt/geleert).

Schätzung des Kontextfensters

Pruning verwendet ein geschätztes Kontextfenster (Zeichen ≈ Tokens × 4). Das Basisfenster wird in dieser Reihenfolge ermittelt:

  1. models.providers.*.models[].contextWindow‑Override.
  2. Modell‑Definition contextWindow (aus dem Modell‑Registry).
  3. Standard 200000 Tokens.

Wenn agents.defaults.contextTokens gesetzt ist, wird es als Obergrenze (min) für das ermittelte Fenster behandelt.

Modus

cache-ttl

  • Pruning wird nur ausgeführt, wenn der letzte Anthropic‑Aufruf älter als ttl ist (Standard 5m).
  • Bei Ausführung: Gleiches Soft‑Trim‑ plus Hard‑Clear‑Verhalten wie zuvor.

Soft‑ vs. Hard‑Pruning

  • Soft‑Trim: nur für übergroße Werkzeugergebnisse.
  • Behält Anfang + Ende bei, fügt ... ein und hängt einen Hinweis mit der ursprünglichen Größe an.
  • Überspringt Ergebnisse mit Image‑Blöcken.
  • Hard‑Clear: ersetzt das gesamte Werkzeugergebnis durch hardClear.placeholder.

Werkzeugauswahl

  • tools.allow / tools.deny unterstützen *‑Wildcards.
  • Siege nicht zu.
  • Der Abgleich ist nicht case-sensitiv.
  • Leere Allowlist ⇒ alle Werkzeuge erlaubt.

Interaktion mit anderen Limits

  • Eingebaute Werkzeuge kürzen ihre Ausgabe bereits selbst; Session Pruning ist eine zusätzliche Ebene, die verhindert, dass sich in lang laufenden Chats zu viel Werkzeugausgabe im Modellkontext ansammelt.
  • Kompaktierung ist separat: Kompaktierung fasst zusammen und persistiert, Pruning ist pro Anfrage transient. Siehe /concepts/compaction.

Standardwerte (wenn aktiviert)

  • ttl: "5m"
  • keepLastAssistants: 3
  • softTrimRatio: 0.3
  • hardClearRatio: 0.5
  • minPrunableToolChars: 50000
  • softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }
  • hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" }

Beispiele

Standard (aus):

{
  agent: {
    contextPruning: { mode: "off" },
  },
}

TTL‑bewusstes Pruning aktivieren:

{
  agent: {
    contextPruning: { mode: "cache-ttl", ttl: "5m" },
  },
}

Pruning auf bestimmte Werkzeuge beschränken:

{
  agent: {
    contextPruning: {
      mode: "cache-ttl",
      tools: { allow: ["exec", "read"], deny: ["*image*"] },
    },
  },
}

Siehe Konfigurationsreferenz: Gateway Configuration