Context as an Environment: Programmatic Context Management for Long-Horizon Agents
O artigo apresenta o Scroll, um sistema de gerenciamento de contexto programático que trata sessões de agentes como ambientes executáveis com um log de eventos de apenas adição e um kernel Python persistente, permitindo que LLMs gerenciem dinamicamente estados de longo horizonte por meio de código enquanto alcançam desempenho de estado da arte em benchmarks de contexto longo.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine uma conversa que nunca termina. Você está conversando com um programa de computador muito inteligente, um que pode ajudá-lo a escrever código, planejar viagens complexas ou pesquisar tópicos profundos. No início, a conversa é fácil. O programa se lembra de tudo o que você disse nos últimos minutos. Mas conforme a conversa se estende por horas ou dias, a quantidade de informação cresce. Eventualmente, torna-se demais para o programa manter em sua memória imediata. No mundo da inteligência artificial, essa memória imediata é chamada de janela de contexto. É um tamanho fixo, como uma mesa que só pode conter um certo número de papéis. Quando a pilha de papéis fica muito alta, o programa deve descartar alguns para abrir espaço para novos.
O problema é que o programa não sabe quais papéis são importantes até que seja tarde demais. Se você fizer uma pergunta sobre algo que mencionou três dias atrás, o programa pode já ter descartado aquele papel. As soluções tradicionais tentam resolver isso tentando resumir os papéis antigos em uma nota curta ou selecionando alguns fatos para manter em um caderno separado. Mas esses métodos são arriscados. Se o programa descartar um detalhe específico, como uma data ou um número, esse detalhe se perde para sempre. Não pode ser recuperado. Para tarefas que exigem olhar para trás em um longo histórico para encontrar fatos exatos ou rastrear como uma situação mudou ao longo do tempo, perder um único detalhe pode fazer o programa falhar.
Uma equipe de pesquisadores propôs uma maneira diferente de lidar com essa conversa crescente. Eles chamam seu sistema de Scroll. Em vez de tentar encaixar todo o histórico na memória imediata do programa, eles tratam o histórico como um ambiente separado e permanente que o programa pode visitar sempre que precisar. Pense nisso como um arquivo vasto e organizado que fica logo fora da mesa do programa. O programa não lê todo o arquivo de uma vez. Em vez disso, ele escreve uma pequena instrução, como uma consulta de busca ou um comando, para ir ao arquivo, encontrar a página específica de que precisa e trazer apenas aquela página de volta para a mesa.
O núcleo deste sistema é um registro permanente de cada interação, chamado de Registro de Eventos (Event Log). Este registro é como um gravador de fita que nunca para, capturando cada mensagem, o resultado de cada ferramenta e cada decisão em detalhes exatos. Ele é armazenado com segurança fora da memória imediata do programa, de modo que nada seja perdido. Ao lado deste registro, há um espaço de trabalho persistente, uma espécie de caixa de areia digital onde o programa pode manter seus pensamentos e cálculos atuais. Quando o programa precisa se lembrar de algo do passado, ele não depende de um resumo. Ele escreve um código para pesquisar o Registro de Eventos, encontrar o momento exato que está procurando e carregar essa informação em seu espaço de trabalho.
Essa abordagem muda a forma como o programa pensa sobre sua própria memória. Em vez de adivinhar o que manter, o programa decide o que procurar no momento em que é necessário. Se o programa estiver planejando uma viagem e precisar se lembrar de uma preferência que o usuário mencionou semanas atrás, ele escreverá um comando para buscar essa preferência específica. Ele então carrega as palavras exatas que o usuário usou e as utiliza para tomar uma decisão. O programa traz apenas a informação necessária para sua visão imediata. O restante do histórico da conversa permanece guardado com segurança no arquivo, esperando para ser recuperado se o programa precisar dele mais tarde.
Para evitar que a visão imediata fique cheia demais, o sistema tem uma maneira de limpar informações antigas que não estão sendo usadas no momento. Quando o espaço de trabalho fica lotado, o sistema move as partes mais antigas da conversa de volta para o arquivo. No entanto, ao contrário de outros sistemas que podem deletar ou resumir essas partes antigas, o Scroll as mantém exatamente como são. Ele cria um pequeno mapa, um índice, que diz ao programa exatamente onde essas partes antigas estão armazenadas. Se o programa perceber mais tarde que precisa verificar uma conversa antiga, ele pode usar este mapa para saltar diretamente para o lugar certo e recuperar o texto original. Isso garante que o programa possa sempre voltar à fonte, mesmo que a informação não esteja mais em sua visão imediata.
Os pesquisadores testaram este sistema em vários desafios difíceis projetados para ver quão bem uma inteligência artificial consegue lidar com conversas longas. Em um teste, o sistema teve que responder perguntas baseadas em um histórico de mais de um milhão de palavras de conversa. Em outro, teve que agir como um agente que toma decisões ao longo de um longo período, usando ferramentas para reunir informações e resolver problemas. Os resultados mostraram que este novo método foi altamente eficaz. Em um teste medindo o quão bem o sistema conseguia lembrar e raciocinar sobre históricos longos, ele alcançou uma pontuação de 94,8 por cento. Em outro teste envolvendo dez milhões de palavras de histórico, ele obteve 73,1 por cento, o que é superior a qualquer outro sistema publicado anteriormente. Em um teste onde o sistema tinha que gerenciar um ambiente crescente enquanto resolvia tarefas complexas, atingiu 86,7 por cento, superando em muito os melhores resultados anteriores.
O sucesso deste sistema vem de sua capacidade de tratar a memória como uma tarefa de programação. Ao permitir que o programa escreva suas próprias instruções para encontrar e usar informações, o sistema aproveita a capacidade crescente do programa de escrever código. Ele não força o programa a comprimir seu histórico em um resumo que pode perder detalhes importantes. Em vez disso, dá ao programa as ferramentas para acessar o histórico completo e não editado sempre que necessário. Os pesquisadores descobriram que este método funciona bem em diferentes tipos de programas poderosos, sugerindo que a habilidade de gerenciar a memória de longo prazo através de código é uma habilidade geral que pode ser aprendida por vários sistemas.
Este trabalho sugere uma mudança na forma como construímos agentes inteligentes. Em vez de tentar tornar a memória imediata do programa maior ou melhor em resumir, podemos dar a ele acesso a um registro permanente e pesquisável de sua própria vida. O programa aprende a navegar neste registro, decidindo o que trazer para frente e o que deixar para trás. Isso mantém a visão imediata clara e focada, enquanto garante que a verdade total do passado esteja sempre disponível. Os pesquisadores acreditam que esta abordagem pode ajudar a inteligência artificial a lidar com tarefas ainda mais longas e complexas no futuro, permitindo que ela aprenda com um histórico muito mais profundo sem perder os detalhes que importam.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.