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
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | O 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
| Key | Type | Description | Example |
|---|---|---|---|
| model | String | O 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
| Key | Type | Description | Example |
|---|---|---|---|
| parameters | Object | Parâmetros adicionais de LLM para solicitações de resumo (por exemplo, temperature, top_p). | parameters: { temperature: 0.3 } |
prompt
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | String | Prompt 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
| Key | Type | Description | Example |
|---|---|---|---|
| updatePrompt | String | Prompt 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
| Key | Type | Description | Example |
|---|---|---|---|
| maxSummaryTokens | Number | Número máximo de tokens de saída para a resposta do modelo de sumarização. | maxSummaryTokens: 4096 |
reserveRatio
| Key | Type | Description | Example |
|---|---|---|---|
| reserveRatio | Number | Fraçã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
| Key | Type | Description | Example |
|---|---|---|---|
| trigger | Object | Define quando a sumarização é ativada. Se omitido, a sumarização é disparada sempre que a poda de mensagens remover alguma mensagem. |
Sub-chaves trigger
| Key | Type | Description | Example |
|---|---|---|---|
| type | String | A estratégia de gatilho. Opções: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`. | type: "token_ratio" |
| value | Number | O 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
| Tipo | Valor | Dispara quando |
|---|---|---|
token_ratio | 0.0–1.0 | A fração de tokens de contexto usados atinge ou excede o valor |
remaining_tokens | Inteiro positivo | Os tokens de contexto restantes caem para ou abaixo do valor |
messages_to_refine | Inteiro positivo | A 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: 8000contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| contextPruning | Object | Configura 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:
- Soft trim — Trunca os resultados da ferramenta para manter apenas as partes inicial e final, com reticências no meio
- 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
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Ativa a degradação de resultados de ferramentas baseada em posição. | enabled: true |
| keepLastAssistants | Number | Número de turnos recentes do assistente a serem protegidos de qualquer poda. | keepLastAssistants: 3 |
| softTrimRatio | Number | Proporçã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 |
| hardClearRatio | Number | Proporçã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 |
| minPrunableToolChars | Number | Contagem mínima de caracteres de um resultado de ferramenta antes que a poda seja aplicada. Resultados menores são deixados intactos. | minPrunableToolChars: 50000 |
| softTrim | Object | Configuração para o estágio de soft-trim. | |
| hardClear | Object | Configuração para o estágio de hard-clear. |
Padrões:
| Campo | Padrão |
|---|---|
enabled | false |
keepLastAssistants | 3 |
softTrimRatio | 0.3 |
hardClearRatio | 0.5 |
minPrunableToolChars | 50000 |
Sub-chaves de softTrim
| Key | Type | Description | Example |
|---|---|---|---|
| maxChars | Number | Número máximo total de caracteres após o corte suave (soft-trimming) de um resultado de ferramenta. | maxChars: 4000 |
| headChars | Number | Número de caracteres a preservar do início do resultado da ferramenta. | headChars: 1500 |
| tailChars | Number | Número de caracteres a preservar do final do resultado da ferramenta. | tailChars: 1500 |
Padrões: maxChars: 4000, headChars: 1500, tailChars: 1500
Sub-chaves hardClear
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Se o estágio de limpeza total (hard-clear) está ativo. Quando desativado, apenas o corte suave (soft-trim) é aplicado. | enabled: true |
| placeholder | String | Texto 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
summarizeesummaryModelem endpoints personalizados e endpoints do Azure OpenAI não são mais suportados. - Quando
provideremodelsã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
keepLastAssistantsprotege as interações recentes contra a remoção, independentemente das taxas de corte/limpeza (trim/clear). - Os valores de
prompteupdatePromptpersonalizados substituem totalmente os prompts integrados — use com cuidado - Defina
AGENT_DEBUG_LOGGING=trueno seu arquivo.envpara habilitar o registro detalhado (verbose) de contagens de tokens e diagnósticos de poda de contexto.
Como está este guia?