Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Konfiguration der Zusammenfassung

Übersicht

Die summarization-Konfiguration bietet eine zentralisierte Kontrolle über die Zusammenfassung von Konversationen und das Kürzen von Kontext. Dies ersetzt die pro-endpoint summarize- und summaryModel-Felder, die zuvor für benutzerdefinierte und Azure OpenAI-endpoints verfügbar waren.

Wenn eine Konversation das Kontextfenster des Modells überschreitet, komprimiert das Zusammenfassungssystem ältere Nachrichten automatisch in eine prägnante Prüfpunkt-Zusammenfassung. Dies ermöglicht es, Konversationen unbegrenzt fortzusetzen, ohne wichtigen Kontext zu verlieren. Das System umfasst außerdem Kontext-Kürzung (context pruning), wodurch umfangreiche Werkzeugergebnisse in älteren Nachrichten schrittweise reduziert werden, um Token-Speicherplatz freizugeben, bevor eine Zusammenfassung erforderlich ist.

Nach einem Zusammenfassungs-Turn verwendet die Anzeige für die Kontextnutzung die gespeicherte Zusammenfassungs-Basislinie zuzüglich der Turns nach der Zusammenfassung, anstatt den verworfenen Verlauf vor der Zusammenfassung erneut zu zählen. Die kumulativen Nutzungs- und Kostensummen beinhalten weiterhin die Gesamtausgaben des Zweigs.

Beispiel

summarization:
  provider: 'openAI'
  model: 'gpt-4o-mini'
  maxSummaryTokens: 4096
  reserveRatio: 0.05
  trigger:
    type: 'token_ratio'
    value: 0.8
  contextPruning:
    enabled: true
    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]'

provider

KeyTypeDescriptionExample
providerStringDer für Zusammenfassungsaufrufe zu verwendende LLM-Anbieter. Falls weggelassen, wird der eigene Anbieter des Agenten verwendet.provider: "openAI"

Standard: Eigener Anbieter des Agenten

model

KeyTypeDescriptionExample
modelStringDas für Zusammenfassungsaufrufe zu verwendende Modell. Falls weggelassen, wird das eigene Modell des Agenten verwendet.model: "gpt-4o-mini"

Standard: Das eigene Modell des Agenten

parameters

KeyTypeDescriptionExample
parametersObjectZusätzliche LLM-Parameter für Zusammenfassungsanfragen (z. B. temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptStringBenutzerdefinierter Prompt für die anfängliche Zusammenfassung. Ersetzt den integrierten Checkpoint-Prompt.

Standard: Ein strukturierter Checkpoint-Prompt, der Abschnitte für Ziel, Einschränkungen & Präferenzen, Fortschritt, Wichtige Entscheidungen, Nächste Schritte und Kritischer Kontext erstellt.

updatePrompt

KeyTypeDescriptionExample
updatePromptStringBenutzerdefinierter Prompt für die erneute Komprimierung, wenn bereits eine Zusammenfassung existiert. Wird verwendet, wenn die Zusammenfassung mit neuen Konversationsinhalten aktualisiert werden muss.

Standard: Ein eingebauter Prompt, der neue Nachrichten in den bestehenden Checkpoint zusammenführt, ältere Details komprimiert und aktuellen Aktionen mehr Details verleiht.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumberMaximale Anzahl an Ausgabe-Tokens für die Antwort des Zusammenfassungsmodells.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumberAnteil des Token-Budgets, der als Spielraum reserviert ist (0–1). Verhindert, dass der Kontext bis zur absoluten Kapazitätsgrenze gefüllt wird.reserveRatio: 0.05

Standard: 0.05 (5 % Spielraum)

trigger

KeyTypeDescriptionExample
triggerObjectDefiniert, wann die Zusammenfassung aktiviert wird. Wenn weggelassen, wird die Zusammenfassung ausgelöst, sobald die Nachrichtenbereinigung Nachrichten entfernt.

trigger Unter-Schlüssel

KeyTypeDescriptionExample
typeStringDie Trigger-Strategie. Optionen: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumberDer Schwellenwert für den gewählten Auslösertyp. Für `token_ratio`: 0–1 (einschließlich). Für `remaining_tokens` und `messages_to_refine`: positive Ganzzahl.value: 0.8

Trigger-Typen

TypWertWird ausgelöst, wenn
token_ratio0.0–1.0Der Anteil der verwendeten Kontext-Token den Wert erreicht oder überschreitet
remaining_tokensPositive GanzzahlDie verbleibenden Kontext-Token auf den Wert oder darunter fallen
messages_to_refinePositive GanzzahlDie Anzahl der für die Zusammenfassung infrage kommenden Nachrichten den Wert erreicht oder überschreitet
(nicht gesetzt)Wann immer beim Kürzen Nachrichten entfernt werden (Standardverhalten)

Beispiel:

summarization:
  trigger:
    type: 'remaining_tokens'
    value: 8000

contextPruning

KeyTypeDescriptionExample
contextPruningObjectKonfiguriert die positionsbasierte Verschlechterung von Tool-Ergebnissen. Große Tool-Ergebnisse in älteren Nachrichten werden schrittweise gekürzt oder gelöscht, um Token-Speicherplatz zurückzugewinnen.

Context Pruning ist eine optionale Funktion, die unabhängig von der Zusammenfassung (Summarization) arbeitet. Sie zielt auf umfangreiche Tool-Call-Ergebnisse in älteren Nachrichten ab und wendet dabei zwei progressive Stufen an:

  1. Soft trim — Kürzt Tool-Ergebnisse, sodass nur der Anfangs- und Endbereich beibehalten wird, mit einer Ellipse dazwischen
  2. Hard clear — Ersetzt das gesamte Tool-Ergebnis durch einen kurzen Platzhalter

Beide Phasen sind positionsbasiert: Nachrichten, die näher am Anfang der Konversation liegen (älter), werden zuerst entfernt.

contextPruning Unter-Schlüssel

KeyTypeDescriptionExample
enabledBooleanAktiviert die positionsbasierte Verschlechterung von Tool-Ergebnissen.enabled: true
keepLastAssistantsNumberAnzahl der kürzlichen Assistant-Turns, die vor einer Kürzung geschützt werden sollen.keepLastAssistants: 3
softTrimRatioNumberAltersverhältnis (0–1), bei dem Soft-Trim aktiviert wird. Nachrichten, die älter als dieses Verhältnis der Konversation sind, kommen für Soft-Trim infrage.softTrimRatio: 0.3
hardClearRatioNumberAltersverhältnis (0–1), bei dem Hard-Clear aktiviert wird. Nachrichten, die älter als dieses Verhältnis sind, kommen für einen vollständigen Austausch infrage.hardClearRatio: 0.5
minPrunableToolCharsNumberMinimale Zeichenanzahl eines Tool-Ergebnisses, bevor das Kürzen angewendet wird. Kleinere Ergebnisse bleiben unverändert.minPrunableToolChars: 50000
softTrimObjectKonfiguration für die Soft-Trim-Stufe.
hardClearObjectKonfiguration für die Hard-Clear-Stufe.

Standardwerte:

FeldStandard
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

softTrim Unter-Keys

KeyTypeDescriptionExample
maxCharsNumberMaximale Gesamtzahl an Zeichen nach dem Soft-Trimming eines Tool-Ergebnisses.maxChars: 4000
headCharsNumberAnzahl der Zeichen, die vom Anfang des Tool-Ergebnisses beibehalten werden sollen.headChars: 1500
tailCharsNumberAnzahl der Zeichen, die vom Ende des Tool-Ergebnisses beibehalten werden sollen.tailChars: 1500

Standards: maxChars: 4000, headChars: 1500, tailChars: 1500

hardClear Unter-Schlüssel

KeyTypeDescriptionExample
enabledBooleanOb die Hard-Clear-Stufe aktiv ist. Wenn sie deaktiviert ist, wird nur Soft-Trim angewendet.enabled: true
placeholderStringPlatzhaltertext, der den vollständigen Inhalt des Tool-Ergebnisses ersetzt, wenn dieser vollständig gelöscht wird.placeholder: "[Old tool result content cleared]"

Standards: enabled: true, placeholder: "[Old tool result content cleared]"

Beispiel:

summarization:
  contextPruning:
    enabled: true
    keepLastAssistants: 5
    softTrimRatio: 0.25
    hardClearRatio: 0.6
    minPrunableToolChars: 30000
    softTrim:
      maxChars: 6000
      headChars: 2500
      tailChars: 2500
    hardClear:
      enabled: true
      placeholder: '[Content removed for context management]'

Vollständiges Konfigurationsbeispiel

version: 1.3.10
cache: true
 
summarization:
  provider: 'openAI'
  model: 'gpt-4o-mini'
  maxSummaryTokens: 4096
  reserveRatio: 0.05
  trigger:
    type: 'token_ratio'
    value: 0.8
  contextPruning:
    enabled: true
    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]'

Migration von Per-Endpoint-Einstellungen

Wenn Sie zuvor summarize und summaryModel für benutzerdefinierte oder Azure OpenAI endpoints verwendet haben:

endpoints:
  custom:
    - name: 'My Endpoint'
      summarize: true
      summaryModel: 'gpt-3.5-turbo'

Diese Felder wurden entfernt. Verwenden Sie stattdessen die summarization-Konfiguration auf oberster Ebene:

summarization:
  model: 'gpt-4o-mini'

Hinweise

  • Die Zusammenfassung wird global und nicht pro endpoint konfiguriert.
  • Die Felder summarize und summaryModel bei benutzerdefinierten endpoints und Azure OpenAI endpoints werden nicht mehr unterstützt.
  • Wenn provider und model weggelassen werden, werden der eigene Provider und das eigene Modell des Agenten für die Zusammenfassung verwendet.
  • Das Context Pruning ist standardmäßig deaktiviert und muss explizit mit contextPruning.enabled: true aktiviert werden.
  • Das Context Pruning wirkt sich nur auf Tool-Call-Ergebnisse aus, die minPrunableToolChars überschreiten – kleinere Ergebnisse werden niemals gekürzt.
  • Die Einstellung keepLastAssistants schützt aktuelle Gesprächsverläufe vor dem Kürzen, unabhängig von den Trim-/Lösch-Verhältnissen.
  • Benutzerdefinierte prompt- und updatePrompt-Werte ersetzen die integrierten Prompts vollständig – mit Vorsicht verwenden
  • Setzen Sie AGENT_DEBUG_LOGGING=true in Ihrer .env Datei, um die ausführliche Protokollierung von Token-Anzahlen und Diagnosen zur Kontextkürzung zu aktivieren.

Wie finden Sie diese Anleitung?