Context window não é memória

É comum ouvir alguém dizer que uma IA “lembrou” de algo mencionado na mesma conversa, como se isso fosse memória no sentido de armazenamento permanente. Na maioria dos casos, o que aconteceu foi mais simples e mais limitado: aquela informação ainda estava dentro da janela de contexto daquela interação específica.

O que é, tecnicamente, uma janela de contexto

A janela de contexto é a quantidade de texto, medida em tokens, que um modelo consegue considerar de uma vez ao gerar uma resposta. Isso inclui o histórico da conversa até aquele ponto, instruções de sistema e a mensagem atual. Tudo isso é reenviado, inteiro ou parcialmente, a cada nova chamada ao modelo.

Não existe um estado interno persistente sendo atualizado silenciosamente entre uma mensagem e outra. O que existe é um texto, cada vez maior conforme a conversa avança, sendo processado de novo a cada resposta.

O que muda quando a conversa passa do limite

Quando a conversa ultrapassa o tamanho da janela de contexto, alguma parte do início precisa ser descartada, resumida ou de alguma forma removida para abrir espaço, dependendo de como a aplicação em volta do modelo lida com isso. É por isso que uma conversa muito longa pode fazer o modelo “esquecer” algo mencionado no início: essa informação literalmente saiu da janela que o modelo consegue enxergar naquela resposta.

Isso não é o modelo decidindo ignorar alguma coisa. É a informação não estar mais fisicamente presente no texto processado.

Memória é outra coisa, e vive fora do modelo

Memória, no sentido de informação que persiste entre sessões diferentes, geralmente não é uma capacidade do modelo em si. É uma funcionalidade construída ao redor dele: um sistema separado grava informações relevantes em algum tipo de armazenamento, um banco de dados, um arquivo, um índice de busca, e esse armazenamento é consultado e reinserido no contexto da conversa quando parece relevante.

Ou seja, mesmo quando uma ferramenta “lembra” algo de uma conversa de semanas atrás, o modelo ainda está apenas lendo um texto reinserido no início de uma nova janela de contexto. A diferença é que esse texto veio de um armazenamento persistente, gerenciado por fora do modelo, e não da conversa atual em si.

Nem toda ferramenta implementa memória da mesma forma

É importante não generalizar a arquitetura de memória de uma ferramenta específica para todos os modelos e produtos de IA generativa. Algumas ferramentas não têm nenhum mecanismo de memória entre sessões. Outras guardam resumos, fatos extraídos ou trechos inteiros, com critérios diferentes sobre o que vale a pena reter e por quanto tempo. Isso é decisão de produto de cada fornecedor, não uma característica inerente ao modelo de linguagem por trás dele.

Por que a diferença importa

Tratar contexto e memória como sinônimos leva a expectativas erradas: achar que qualquer coisa dita uma vez ficará disponível para sempre, ou se surpreender quando uma informação repetida várias vezes na mesma conversa “some” numa conversa nova. Janela de contexto é o espaço de uma interação. Memória, quando existe, é uma camada construída por cima disso, com suas próprias regras.