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

Configurazione della riassunzione

Panoramica

La configurazione summarization fornisce un controllo centralizzato sulla riassunzione delle conversazioni e sulla riduzione del contesto. Questa sostituisce i campi summarize e summaryModel per endpoint, precedentemente disponibili sugli endpoint personalizzati e Azure OpenAI.

Quando una conversazione supera la finestra di contesto del modello, il sistema di riepilogo comprime automaticamente i messaggi meno recenti in un riepilogo di controllo conciso. Ciò consente alle conversazioni di continuare indefinitamente senza perdere il contesto importante. Il sistema include anche il context pruning, che degrada progressivamente i risultati di strumenti di grandi dimensioni nei messaggi meno recenti per recuperare spazio nei token prima che sia necessario il riepilogo.

Dopo un turno di riassunto, l'indicatore di utilizzo del contesto utilizza la baseline del riassunto persistente più i turni successivi al riassunto, invece di ricalcolare la cronologia precedente al riassunto che è stata scartata. I totali cumulativi di utilizzo e costo includono comunque la spesa totale del ramo.

Esempio

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
providerStringIl provider LLM da utilizzare per le chiamate di riepilogo. Se omesso, utilizza il provider dell'agente stesso.provider: "openAI"

Predefinito: Provider dell'agente

model

KeyTypeDescriptionExample
modelStringIl modello da utilizzare per le chiamate di riepilogo. Se omesso, viene utilizzato il modello dell'agente stesso.model: "gpt-4o-mini"

Predefinito: Modello dell'agente

parameters

KeyTypeDescriptionExample
parametersObjectParametri LLM aggiuntivi per le richieste di riassunto (ad es. temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptStringPrompt personalizzato per la riassunzione iniziale. Sostituisce il prompt di checkpoint integrato.

Predefinito: Un prompt di checkpoint strutturato che genera sezioni per Obiettivo, Vincoli e Preferenze, Progresso, Decisioni Chiave, Prossimi Passi e Contesto Critico.

updatePrompt

KeyTypeDescriptionExample
updatePromptStringPrompt personalizzato per la ricompattazione quando esiste già un riepilogo precedente. Utilizzato quando il riepilogo deve essere aggiornato con il nuovo contenuto della conversazione.

Predefinito: Un prompt integrato che unisce i nuovi messaggi al checkpoint esistente, comprime i dettagli più vecchi e fornisce maggiori dettagli sulle azioni recenti.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumberNumero massimo di token di output per la risposta del modello di riepilogo.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumberFrazione del budget di token riservata come margine (0–1). Impedisce che il contesto venga riempito fino alla capacità assoluta.reserveRatio: 0.05

Predefinito: 0.05 (5% di margine)

trigger

KeyTypeDescriptionExample
triggerObjectDefinisce quando viene attivata la sintesi. Se omesso, la sintesi viene attivata ogni volta che la potatura dei messaggi ne elimina alcuni.

Sotto-chiavi trigger

KeyTypeDescriptionExample
typeStringLa strategia di attivazione. Opzioni: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumberIl valore soglia per il tipo di trigger scelto. Per `token_ratio`: 0–1 (inclusi). Per `remaining_tokens` e `messages_to_refine`: numero intero positivo.value: 0.8

Tipi di trigger

TipoValoreSi attiva quando
token_ratio0.0–1.0La frazione di token di contesto utilizzati raggiunge o supera il valore
remaining_tokensIntero positivoI token di contesto rimanenti scendono al di sotto o raggiungono il valore
messages_to_refineIntero positivoIl conteggio dei messaggi idonei per la riassunzione raggiunge o supera il valore
(non impostato)—Ogni volta che la potatura (pruning) elimina dei messaggi (comportamento predefinito)

Esempio:

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

contextPruning

KeyTypeDescriptionExample
contextPruningObjectConfigura il degrado dei risultati degli strumenti basato sulla posizione. I risultati degli strumenti di grandi dimensioni nei messaggi meno recenti vengono progressivamente tagliati o eliminati per recuperare spazio nei token.

Il context pruning è una funzionalità opzionale che opera indipendentemente dalla riassunzione. Prende di mira i risultati di grandi chiamate a strumenti (tool call) nei messaggi meno recenti, applicando due fasi progressive:

  1. Soft trim — Tronca i risultati degli strumenti per mantenere solo le porzioni iniziale e finale, con un'ellissi nel mezzo
  2. Hard clear — Sostituisce l'intero risultato dello strumento con un breve segnaposto

Entrambe le fasi sono basate sulla posizione: i messaggi più vicini all'inizio della conversazione (più vecchi) vengono eliminati per primi.

Sotto-chiavi di contextPruning

KeyTypeDescriptionExample
enabledBooleanAbilita il degrado dei risultati degli strumenti basato sulla posizione.enabled: true
keepLastAssistantsNumberNumero di turni recenti dell'assistente da proteggere da qualsiasi potatura.keepLastAssistants: 3
softTrimRatioNumberRapporto di età (0–1) al quale si attiva il soft-trim. I messaggi più vecchi di questo rapporto nella conversazione sono candidati per il soft-trimming.softTrimRatio: 0.3
hardClearRatioNumberRapporto di età (0–1) al quale si attiva la cancellazione forzata (hard-clear). I messaggi più vecchi di questo rapporto sono candidati alla sostituzione completa.hardClearRatio: 0.5
minPrunableToolCharsNumberNumero minimo di caratteri di un risultato di uno strumento prima che venga applicata la potatura. I risultati più piccoli rimangono invariati.minPrunableToolChars: 50000
softTrimObjectConfigurazione per la fase di soft-trim.
hardClearObjectConfigurazione per la fase di hard-clear.

Predefiniti:

CampoPredefinito
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

Sotto-chiavi softTrim

KeyTypeDescriptionExample
maxCharsNumberNumero massimo totale di caratteri dopo il soft-trimming di un risultato di uno strumento.maxChars: 4000
headCharsNumberNumero di caratteri da preservare dall'inizio del risultato dello strumento.headChars: 1500
tailCharsNumberNumero di caratteri da preservare dalla fine del risultato dello strumento.tailChars: 1500

Predefiniti: maxChars: 4000, headChars: 1500, tailChars: 1500

Sotto-chiavi hardClear

KeyTypeDescriptionExample
enabledBooleanSe la fase di hard-clear è attiva. Quando disabilitata, viene applicato solo il soft-trim.enabled: true
placeholderStringTesto segnaposto che sostituisce il contenuto completo del risultato dello strumento quando viene cancellato forzatamente.placeholder: "[Old tool result content cleared]"

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

Esempio:

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

Esempio di configurazione completa

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

Migrazione dalle impostazioni per endpoint

Se in precedenza hai utilizzato summarize e summaryModel su endpoint personalizzati o Azure OpenAI:

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

Questi campi sono stati rimossi. Utilizza invece la configurazione di primo livello summarization:

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

Note

  • La riassunzione è configurata a livello globale anziché per singolo endpoint.
  • I campi summarize e summaryModel sugli endpoint personalizzati e sugli endpoint Azure OpenAI non sono più supportati
  • Quando provider e model vengono omessi, per la sintesi vengono utilizzati il provider e il modello dell'agente stesso.
  • Il context pruning è disabilitato per impostazione predefinita e deve essere abilitato esplicitamente con contextPruning.enabled: true
  • Il context pruning influisce solo sui risultati delle chiamate a strumenti che superano minPrunableToolChars: i risultati più piccoli non vengono mai troncati.
  • L'impostazione keepLastAssistants protegge i turni recenti dalla rimozione, indipendentemente dai rapporti di taglio/pulizia.
  • I valori prompt e updatePrompt personalizzati sostituiscono completamente i prompt integrati: utilizzare con cautela.
  • Imposta AGENT_DEBUG_LOGGING=true nel tuo file .env per abilitare la registrazione dettagliata del conteggio dei token e la diagnostica della potatura del contesto.

Com’è questa guida?