0Pricing
AI Agents · Aula

Sumarização como compressão

Substitua periodicamente as interações antigas por um resumo contínuo, trocando a recuperação exata por espaço na janela de contexto.

Sumarização como compressão é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

A compressão como memória

Quando uma conversa fica longa, substitua as interações antigas por um resumo curto. Você troca recall exato por espaço de contexto.

O resumo captura a essência (fatos, decisões e itens pendentes) — o texto literal desaparece.

Quando fazer a sumarização

Acione a sumarização quando:

  • O total de tokens ultrapassar um limite (por exemplo, 8 mil)
  • A contagem de interações ultrapassar N (por exemplo, 20)
  • O usuário iniciar um novo tópico

Sumarize as interações mais antigas

Mantenha as interações recentes literalmente; faça summarise apenas do que ficou para trás:

def compact(messages, keep_recent=10):
    system = messages[0]
    old = messages[1:-keep_recent]
    recent = messages[-keep_recent:]
    if not old:
        return messages
    summary = summarise(old)
    return [
        system,
        {'role': 'system', 'content': f'Earlier conversation summary:\n{summary}'},
        *recent
    ]

Instrução do resumo

Use uma chamada separada de modelo, de baixo custo, para criar o resumo:

def summarise(messages):
    text = '\n'.join(f'{m["role"]}: {m["content"]}' for m in messages)
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Summarise this conversation in 5 bullet points. Preserve facts, decisions, and pending TODOs.'},
            {'role': 'user', 'content': text}
        ],
        max_tokens=300,
    )
    return response.choices[0].message.content

Resumos contínuos

Mantenha um único resumo crescente em vez de refazer a sumarização do zero a cada vez:

running_summary = ''

def extend_summary(new_messages):
    global running_summary
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Extend the existing summary with the new turns. Keep it under 200 words.'},
            {'role': 'user', 'content': f'Existing summary:\n{running_summary}\n\nNew turns:\n{format(new_messages)}'}
        ],
        max_tokens=500,
    )
    running_summary = response.choices[0].message.content

Resumos estruturados

Faça o resumo extrair campos específicos:

summary_schema = {
    'topics_discussed': '...',
    'user_facts': {'name': '...', 'preferences': '...'},
    'open_questions': ['...'],
    'decisions_made': ['...']
}
# Use json_object response_format to enforce.
import json
print(json.dumps(summary_schema, indent=2))

Resumos hierárquicos

Para históricos muito longos:

  • Resumos a cada 100 interações (nível intermediário)
  • Resumos a cada 1000 interações (nível alto)
  • Resumo de todo o histórico (nível extremo)

Insira no contexto apenas o nível apropriado.

Perda de detalhes

Os resumos perdem citações específicas e a formulação exata. Se o usuário perguntar "o que exatamente eu disse antes sobre preços?", o modelo não poderá responder.

Para obter recall literal, você precisa de um contexto maior ou de um arquivo de busca vetorial.

Use também um arquivo vetorial

O melhor dos dois mundos:

  1. Sumarize as interações antigas na mensagem do sistema
  2. ALSO vetorize cada interação em um armazenamento vetorial
  3. Se o usuário pedir detalhes, recupere o texto literal do armazenamento vetorial

A qualidade do resumo é importante

Um resumo ruim é pior do que nenhum resumo. Use um modelo barato, mas capaz (gpt-4o-mini, haiku) — não o nível mais barato — nas chamadas de sumarização.

Atualizar o resumo é caro

Sumarizar 8000 tokens de conversa é uma chamada real de LLM — leva de 1 a 2 segundos e custa 0,5 centavo. Faça isso de forma assíncrona entre as interações, e não no caminho crítico.

Compromisso da sumarização

Qual é o principal compromisso ao usar a sumarização como memória?

Recapitulação

A sumarização é a maneira barata de ampliar a memória. Combine-a com recuperação vetorial para obter recall de citações exatas.

Perguntas Frequentes

A aula “Sumarização como compressão” é grátis?

Sim — o texto completo de “Sumarização como compressão” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Sumarização como compressão”?

Substitua periodicamente as interações antigas por um resumo contínuo, trocando a recuperação exata por espaço na janela de contexto. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Sumarização como compressão”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Memória de curto prazo na janela de contexto
  2. Por que contextos longos não escalam
  3. Sumarização como compressão
  4. Armazenamentos simples de memória (chave-valor)
← Voltar para AI Agents