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

Configuração de Resumo

Visão geral

A configuração summarization oferece controle centralizado sobre o resumo de conversas e a poda de contexto. Isso substitui os campos summarize e summaryModel por endpoint que estavam disponíveis anteriormente em endpoints personalizados e do Azure OpenAI.

Quando uma conversa excede a janela de contexto do modelo, o sistema de sumarização comprime automaticamente mensagens mais antigas em um resumo de ponto de verificação conciso. Isso permite que as conversas continuem indefinidamente sem perder o contexto importante. O sistema também inclui context pruning (poda de contexto), que degrada progressivamente resultados de ferramentas grandes em mensagens mais antigas para recuperar espaço de tokens antes que a sumarização seja necessária.

Após um turno de sumarização, o medidor de uso de contexto utiliza a linha de base do resumo persistido mais os turnos pós-resumo, em vez de recontar o histórico pré-resumo descartado. Os totais cumulativos de uso e custo ainda incluem o gasto total da ramificação.

Exemplo

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
providerStringO provedor de LLM a ser usado para chamadas de resumo. Se omitido, usa o próprio provedor do agente.provider: "openAI"

Padrão: Provedor do próprio agente

model

KeyTypeDescriptionExample
modelStringO modelo a ser usado para chamadas de resumo. Se omitido, usa o próprio modelo do agente.model: "gpt-4o-mini"

Padrão: Modelo próprio do agente

parameters

KeyTypeDescriptionExample
parametersObjectParâmetros adicionais de LLM para solicitações de resumo (por exemplo, temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptStringPrompt personalizado para resumo inicial. Substitui o prompt de checkpoint integrado.

Padrão: Um prompt de ponto de verificação estruturado que produz seções para Objetivo (Goal), Restrições e Preferências (Constraints & Preferences), Progresso (Progress), Decisões Principais (Key Decisions), Próximos Passos (Next Steps) e Contexto Crítico (Critical Context).

updatePrompt

KeyTypeDescriptionExample
updatePromptStringPrompt personalizado para recompactação quando um resumo anterior já existe. Usado quando o resumo precisa ser atualizado com novo conteúdo da conversa.

Padrão: Um prompt integrado que mescla novas mensagens ao checkpoint existente, comprime detalhes mais antigos e fornece mais detalhes sobre ações recentes.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumberNúmero máximo de tokens de saída para a resposta do modelo de sumarização.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumberFração do orçamento de tokens reservada como margem (0–1). Evita que o contexto seja preenchido até a capacidade absoluta.reserveRatio: 0.05

Padrão: 0.05 (5% de margem)

trigger

KeyTypeDescriptionExample
triggerObjectDefine quando a sumarização é ativada. Se omitido, a sumarização é disparada sempre que a poda de mensagens remover alguma mensagem.

Sub-chaves trigger

KeyTypeDescriptionExample
typeStringA estratégia de gatilho. Opções: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumberO valor limite para o tipo de gatilho escolhido. Para `token_ratio`: 0–1 (inclusive). Para `remaining_tokens` e `messages_to_refine`: número inteiro positivo.value: 0.8

Tipos de Gatilho

TipoValorDispara quando
token_ratio0.0–1.0A fração de tokens de contexto usados atinge ou excede o valor
remaining_tokensInteiro positivoOs tokens de contexto restantes caem para ou abaixo do valor
messages_to_refineInteiro positivoA contagem de mensagens elegíveis para sumarização atinge ou excede o valor
(não definido)Sempre que a poda remove quaisquer mensagens (comportamento padrão)

Exemplo:

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

contextPruning

KeyTypeDescriptionExample
contextPruningObjectConfigura a degradação de resultados de ferramentas baseada em posição. Resultados de ferramentas grandes em mensagens mais antigas são progressivamente cortados ou limpos para recuperar espaço de tokens.

O context pruning é um recurso opcional que opera independentemente da sumarização. Ele tem como alvo resultados grandes de chamadas de ferramentas em mensagens mais antigas, aplicando dois estágios progressivos:

  1. Soft trim — Trunca os resultados da ferramenta para manter apenas as partes inicial e final, com reticências no meio
  2. Hard clear — Substitui todo o resultado da ferramenta por um breve espaço reservado

Ambos os estágios são baseados em posição: mensagens mais próximas do início da conversa (mais antigas) são removidas primeiro.

Sub-chaves de contextPruning

KeyTypeDescriptionExample
enabledBooleanAtiva a degradação de resultados de ferramentas baseada em posição.enabled: true
keepLastAssistantsNumberNúmero de turnos recentes do assistente a serem protegidos de qualquer poda.keepLastAssistants: 3
softTrimRatioNumberProporção de idade (0–1) na qual o soft-trim é ativado. Mensagens mais antigas do que essa proporção da conversa são candidatas ao soft-trimming.softTrimRatio: 0.3
hardClearRatioNumberProporção de idade (0–1) na qual o hard-clear é ativado. Mensagens mais antigas que essa proporção são candidatas à substituição total.hardClearRatio: 0.5
minPrunableToolCharsNumberContagem mínima de caracteres de um resultado de ferramenta antes que a poda seja aplicada. Resultados menores são deixados intactos.minPrunableToolChars: 50000
softTrimObjectConfiguração para o estágio de soft-trim.
hardClearObjectConfiguração para o estágio de hard-clear.

Padrões:

CampoPadrão
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

Sub-chaves de softTrim

KeyTypeDescriptionExample
maxCharsNumberNúmero máximo total de caracteres após o corte suave (soft-trimming) de um resultado de ferramenta.maxChars: 4000
headCharsNumberNúmero de caracteres a preservar do início do resultado da ferramenta.headChars: 1500
tailCharsNumberNúmero de caracteres a preservar do final do resultado da ferramenta.tailChars: 1500

Padrões: maxChars: 4000, headChars: 1500, tailChars: 1500

Sub-chaves hardClear

KeyTypeDescriptionExample
enabledBooleanSe o estágio de limpeza total (hard-clear) está ativo. Quando desativado, apenas o corte suave (soft-trim) é aplicado.enabled: true
placeholderStringTexto de espaço reservado que substitui o conteúdo completo do resultado da ferramenta quando limpo totalmente.placeholder: "[Old tool result content cleared]"

Padrões: enabled: true, placeholder: "[Old tool result content cleared]"

Exemplo:

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

Exemplo Completo de Configuração

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

Migração das Configurações por endpoint

Se você usou anteriormente summarize e summaryModel em endpoints personalizados ou do Azure OpenAI:

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

Estes campos foram removidos. Use a configuração summarization de nível superior em vez disso:

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

Notas

  • A sumarização é configurada globalmente em vez de por endpoint
  • Os campos summarize e summaryModel em endpoints personalizados e endpoints do Azure OpenAI não são mais suportados.
  • Quando provider e model são omitidos, o provider e o model do próprio agente são usados para a sumarização.
  • O corte de contexto (context pruning) está desativado por padrão e deve ser explicitamente habilitado com contextPruning.enabled: true
  • O context pruning afeta apenas os resultados de chamadas de ferramenta que excedem minPrunableToolChars — resultados menores nunca são descartados.
  • A configuração keepLastAssistants protege as interações recentes contra a remoção, independentemente das taxas de corte/limpeza (trim/clear).
  • Os valores de prompt e updatePrompt personalizados substituem totalmente os prompts integrados — use com cuidado
  • Defina AGENT_DEBUG_LOGGING=true no seu arquivo .env para habilitar o registro detalhado (verbose) de contagens de tokens e diagnósticos de poda de contexto.

Como está este guia?