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

Konfiguracja podsumowywania

Przegląd

Konfiguracja summarization zapewnia scentralizowaną kontrolę nad podsumowywaniem konwersacji i przycinaniem kontekstu. Zastępuje ona pola summarize oraz summaryModel dla poszczególnych endpointów, które były wcześniej dostępne w niestandardowych endpointach oraz Azure OpenAI.

Gdy konwersacja przekracza okno kontekstowe modelu, system podsumowywania automatycznie kompresuje starsze wiadomości do zwięzłego podsumowania punktu kontrolnego. Pozwala to na kontynuowanie konwersacji w nieskończoność bez utraty ważnego kontekstu. System zawiera również przycinanie kontekstu (context pruning), które stopniowo ogranicza duże wyniki narzędzi w starszych wiadomościach, aby odzyskać miejsce na tokeny, zanim konieczne będzie podsumowanie.

Po turze podsumowania, wskaźnik użycia kontekstu wykorzystuje utrwaloną bazę podsumowania oraz tury następujące po podsumowaniu, zamiast ponownie przeliczać odrzuconą historię sprzed podsumowania. Skumulowane sumy użycia i kosztów nadal uwzględniają pełne wydatki dla danej gałęzi.

Przykład

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
providerStringDostawca LLM używany do wywołań podsumowywania. Jeśli zostanie pominięty, używany jest własny dostawca agenta.provider: "openAI"

Domyślnie: Własny dostawca agenta

model

KeyTypeDescriptionExample
modelStringModel używany do wywołań podsumowywania. Jeśli zostanie pominięty, używany jest własny model agenta.model: "gpt-4o-mini"

Domyślnie: Własny model agenta

parameters

KeyTypeDescriptionExample
parametersObjectDodatkowe parametry LLM dla żądań podsumowania (np. temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptStringNiestandardowy prompt dla wstępnego podsumowania. Zastępuje wbudowany prompt punktu kontrolnego.

Domyślne: Ustrukturyzowany prompt punktu kontrolnego, który tworzy sekcje dla Celu (Goal), Ograniczeń i Preferencji (Constraints & Preferences), Postępu (Progress), Kluczowych Decyzji (Key Decisions), Następnych Kroków (Next Steps) oraz Krytycznego Kontekstu (Critical Context).

updatePrompt

KeyTypeDescriptionExample
updatePromptStringNiestandardowy prompt do ponownej kompresji, gdy istnieje już wcześniejsze podsumowanie. Używany, gdy podsumowanie wymaga aktualizacji o nową treść konwersacji.

Domyślne: Wbudowany prompt, który łączy nowe wiadomości z istniejącym punktem kontrolnym, kompresuje starsze szczegóły i nadaje większą szczegółowość ostatnim działaniom.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumberMaksymalna liczba tokenów wyjściowych dla odpowiedzi modelu podsumowującego.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumberUłamek budżetu tokenów zarezerwowany jako margines (0–1). Zapobiega wypełnieniu kontekstu do absolutnej pojemności.reserveRatio: 0.05

Domyślnie: 0.05 (5% zapasu)

trigger

KeyTypeDescriptionExample
triggerObjectOkreśla, kiedy aktywowane jest podsumowywanie. Jeśli zostanie pominięte, podsumowywanie uruchamia się zawsze, gdy przycinanie wiadomości usuwa jakiekolwiek wiadomości.

Podklucze trigger

KeyTypeDescriptionExample
typeStringStrategia wyzwalania. Opcje: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumberWartość progowa dla wybranego typu wyzwalacza. Dla `token_ratio`: 0–1 (włącznie). Dla `remaining_tokens` oraz `messages_to_refine`: liczba całkowita dodatnia.value: 0.8

Typy wyzwalaczy

TypWartośćUruchamia się, gdy
token_ratio0.0–1.0Ułamek użytych tokenów kontekstu osiągnie lub przekroczy tę wartość
remaining_tokensLiczba całkowita dodatniaLiczba pozostałych tokenów kontekstu spadnie do lub poniżej tej wartości
messages_to_refineLiczba całkowita dodatniaLiczba wiadomości kwalifikujących się do podsumowania osiągnie lub przekroczy tę wartość
(not set)Zawsze, gdy przycinanie usunie jakiekolwiek wiadomości (zachowanie domyślne)

Przykład:

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

contextPruning

KeyTypeDescriptionExample
contextPruningObjectKonfiguruje degradację wyników narzędzi opartą na pozycji. Duże wyniki narzędzi w starszych wiadomościach są stopniowo przycinane lub usuwane w celu odzyskania miejsca na tokeny.

Przycinanie kontekstu (context pruning) to opcjonalna funkcja, która działa niezależnie od podsumowywania. Koncentruje się ona na dużych wynikach wywołań narzędzi w starszych wiadomościach, stosując dwa progresywne etapy:

  1. Soft trim — Skraca wyniki narzędzi, zachowując tylko początkowe i końcowe fragmenty, z wielokropkiem pomiędzy nimi
  2. Hard clear — Zastępuje cały wynik narzędzia krótkim symbolem zastępczym

Oba etapy opierają się na pozycji: wiadomości znajdujące się bliżej początku konwersacji (starsze) są usuwane jako pierwsze.

Podklucze contextPruning

KeyTypeDescriptionExample
enabledBooleanWłącza degradację wyników narzędzi opartą na pozycji.enabled: true
keepLastAssistantsNumberLiczba ostatnich tur asystenta do ochrony przed jakimkolwiek przycinaniem.keepLastAssistants: 3
softTrimRatioNumberWspółczynnik wieku (0–1), przy którym aktywuje się soft-trim. Wiadomości starsze niż ten współczynnik konwersacji są kandydatami do soft-trimmingu.softTrimRatio: 0.3
hardClearRatioNumberWspółczynnik wieku (0–1), przy którym aktywowane jest całkowite wyczyszczenie (hard-clear). Wiadomości starsze niż ten współczynnik są kandydatami do pełnego zastąpienia.hardClearRatio: 0.5
minPrunableToolCharsNumberMinimalna liczba znaków wyniku narzędzia, zanim zostanie zastosowane przycinanie. Mniejsze wyniki pozostają nienaruszone.minPrunableToolChars: 50000
softTrimObjectKonfiguracja dla etapu soft-trim.
hardClearObjectKonfiguracja dla etapu hard-clear.

Domyślne:

PoleDomyślnie
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

Podklucze softTrim

KeyTypeDescriptionExample
maxCharsNumberMaksymalna łączna liczba znaków po miękkim przycięciu wyniku narzędzia.maxChars: 4000
headCharsNumberLiczba znaków do zachowania od początku wyniku narzędzia.headChars: 1500
tailCharsNumberLiczba znaków do zachowania z końca wyniku narzędzia.tailChars: 1500

Domyślne: maxChars: 4000, headChars: 1500, tailChars: 1500

Podklucze hardClear

KeyTypeDescriptionExample
enabledBooleanCzy etap hard-clear jest aktywny. Gdy jest wyłączony, stosowane jest tylko soft-trim.enabled: true
placeholderStringTekst zastępczy, który zastępuje pełną zawartość wyniku narzędzia po wyczyszczeniu.placeholder: "[Old tool result content cleared]"

Domyślne: enabled: true, placeholder: "[Old tool result content cleared]"

Przykład:

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]'

Kompletny przykład konfiguracji

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]'

Migracja z ustawień dla poszczególnych endpointów

Jeśli wcześniej używałeś summarize i summaryModel w niestandardowych punktach końcowych lub Azure OpenAI:

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

Te pola zostały usunięte. Użyj zamiast nich konfiguracji summarization najwyższego poziomu:

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

Uwagi

  • Podsumowywanie jest konfigurowane globalnie, a nie dla każdego endpoint z osobna.
  • Pola summarize oraz summaryModel w niestandardowych endpointach oraz endpointach Azure OpenAI nie są już wspierane.
  • Gdy provider i model są pominięte, do podsumowania używany jest własny provider i model agenta.
  • Przycinanie kontekstu (context pruning) jest domyślnie wyłączone i musi zostać jawnie włączone za pomocą contextPruning.enabled: true
  • Przycinanie kontekstu wpływa tylko na wyniki wywołań narzędzi, które przekraczają minPrunableToolChars — mniejsze wyniki nigdy nie są przycinane.
  • Ustawienie keepLastAssistants chroni ostatnie tury przed przycięciem, niezależnie od współczynników przycinania/czyszczenia (trim/clear ratios).
  • Niestandardowe wartości prompt oraz updatePrompt całkowicie zastępują wbudowane prompty — używaj ich ostrożnie
  • Ustaw AGENT_DEBUG_LOGGING=true w swoim pliku .env, aby włączyć szczegółowe logowanie liczby tokenów oraz diagnostykę przycinania kontekstu.

Jaka jest ta instrukcja?