# Fazer um LLM escrever código para ler 10 milhões de tokens - Como funciona o RLM > Author: Tony Lee > Published: 2026-02-08 > URL: https://tonylee.im/pt/blog/rlm-recursive-language-model-10m-tokens/ > Reading time: 7 minutes > Language: pt > Tags: ia, llm, rlm, janela-de-contexto, agentes, pesquisa ## Canonical https://tonylee.im/pt/blog/rlm-recursive-language-model-10m-tokens/ ## Rollout Alternates en: https://tonylee.im/en/blog/rlm-recursive-language-model-10m-tokens/ ko: https://tonylee.im/ko/blog/rlm-recursive-language-model-10m-tokens/ ja: https://tonylee.im/ja/blog/rlm-recursive-language-model-10m-tokens/ zh-CN: https://tonylee.im/zh-CN/blog/rlm-recursive-language-model-10m-tokens/ zh-TW: https://tonylee.im/zh-TW/blog/rlm-recursive-language-model-10m-tokens/ ## Description Uma janela de contexto maior não torna a IA mais inteligente. O RLM muda o jogo ao permitir que LLMs escrevam código para ler seletivamente documentos massivos. ## Summary Fazer um LLM escrever código para ler 10 milhões de tokens - Como funciona o RLM is part of Tony Lee's ongoing coverage of AI agents, developer tools, startup strategy, and AI industry shifts. ## Outline - Context Rot: Por que janela maior não resolve - A ideia central do RLM: armazene em Python, deixe o LLM programar a leitura - Os três componentes: Orchestrator, LMHandler e Environment - Fluxo de execução: Explore, Decompose, Aggregate, Terminate - A conexão com Ralph Wiggum - Dicas práticas pra quem quer aplicar a ideia - Conclusão ## Content Todo mundo ficou empolgado quando as janelas de contexto saltaram de 8K para 128K, depois para 1M e além. A narrativa era simples: quanto mais contexto, mais inteligente o modelo. Só que na prática não foi isso que aconteceu. Pesquisadores documentaram um fenômeno que chamaram de Context Rot - a degradação silenciosa da qualidade das respostas conforme você joga mais texto na janela de contexto. E é exatamente aí que o RLM entra. ## Context Rot: Por que janela maior não resolve Quando você despeja um documento de 500 mil tokens numa janela de contexto de 1M, o modelo não lê tudo com a mesma atenção. A atenção é finita. Informações no meio do documento tendem a ser ignoradas - o famoso problema "lost in the middle". Além disso, o custo computacional cresce de forma quadrática com o tamanho do contexto, o que significa latência maior e contas mais salgadas. Na prática, o que acontece é o seguinte: você acha que está dando mais informação pro modelo, mas está na verdade diluindo o sinal no meio do ruído. O modelo fica com mais texto para processar e menos capacidade de focar no que importa. É como dar um livro de 800 páginas pra alguém e pedir uma resposta em 30 segundos - a pessoa vai chutar. A solução ingênua seria "vamos aumentar a janela de contexto pra 10M". Mas isso só empurra o problema pra frente. O RLM propõe algo radicalmente diferente: em vez de enfiar tudo na janela de contexto, deixe o próprio LLM decidir o que ler. ## A ideia central do RLM: armazene em Python, deixe o LLM programar a leitura O Recursive Language Model (RLM) inverte a lógica. Em vez de alimentar o modelo com o documento inteiro, o RLM armazena o conteúdo em estruturas Python acessíveis programaticamente - listas, dicionários, DataFrames, o que for mais adequado. O LLM então escreve código Python para navegar, filtrar e extrair apenas as partes relevantes. Pense assim: em vez de ler um livro inteiro, o modelo recebe acesso a um índice e uma biblioteca, e escreve scripts para buscar exatamente os trechos que precisa. Isso muda completamente a dinâmica. O modelo não precisa mais "lembrar" de 10 milhões de tokens - ele precisa ser bom em escrever código de busca. ## Os três componentes: Orchestrator, LMHandler e Environment A arquitetura do RLM é elegante e composta por três peças: **Orchestrator** - O cérebro do sistema. Ele gerencia o fluxo de execução, decide quando o modelo precisa explorar mais dados, quando decompor uma pergunta em subperguntas, e quando já tem informação suficiente para responder. Pense nele como o gerente de projeto que coordena tudo. **LMHandler** - A interface com o LLM propriamente dito. Recebe prompts do Orchestrator, envia para o modelo e devolve as respostas. Ele abstrai qual modelo está sendo usado, permitindo trocar entre diferentes LLMs sem mexer no resto da arquitetura. **Environment / REPL com `llm_query()`** - Aqui é onde a mágica acontece. O ambiente executa o código Python que o LLM gera. Dentro desse ambiente, existe uma função especial chamada `llm_query()` que permite ao código gerado fazer sub-consultas ao próprio LLM. Isso cria a recursão: o modelo escreve código que consulta a si mesmo para processar partes menores do documento. Essa função `llm_query()` é o diferencial. Ela transforma o LLM de um leitor passivo em um agente ativo que pode decompor problemas arbitrariamente complexos em pedaços gerenciáveis. ## Fluxo de execução: Explore, Decompose, Aggregate, Terminate O RLM opera em quatro fases que se repetem recursivamente: **Explore** - O modelo recebe a pergunta e uma visão geral dos dados disponíveis. Ele escreve código para explorar a estrutura: quais campos existem, quantos registros tem, qual o formato. É a fase de reconhecimento de terreno. **Decompose** - Com base na exploração, o modelo decide como quebrar o problema. Se a pergunta é "qual o tema mais recorrente nesses 10 mil artigos?", ele pode dividir em lotes de 500 artigos e escrever código para analisar cada lote separadamente usando `llm_query()`. **Aggregate** - Os resultados parciais voltam e o modelo escreve código para combiná-los. Não é um simples concatenar - o modelo pode usar lógica sofisticada para cruzar, filtrar e sintetizar os resultados parciais em uma resposta coerente. **Terminate** - Quando o modelo determina que tem informação suficiente para responder a pergunta original, ele para a recursão e gera a resposta final. Sem essa condição de parada explícita, o sistema poderia ficar em loop infinito. O bonito dessa abordagem é que a profundidade da recursão se adapta automaticamente à complexidade da pergunta. Perguntas simples terminam rápido; perguntas que exigem análise cruzada de milhões de tokens se desdobram em várias camadas. ## A conexão com Ralph Wiggum Se o nome RLM te lembrou alguma coisa, não é coincidência. Os autores do paper batizaram a abordagem inspirados no Ralph Wiggum, personagem dos Simpsons - aquele garoto que parece desligado mas de vez em quando solta uma verdade profunda. A analogia é que o modelo, individualmente, pode parecer limitado (janela de contexto restrita), mas quando equipado com as ferramentas certas - a capacidade de escrever e executar código recursivamente - ele consegue processar volumes de informação que pareceriam impossíveis pra ele sozinho. É uma metáfora simpática que esconde uma insight séria: a inteligência do sistema não está na capacidade bruta do modelo, mas na arquitetura que amplifica essa capacidade. ## Dicas práticas pra quem quer aplicar a ideia Você não precisa implementar o RLM completo pra se beneficiar dos princípios por trás dele. Aqui vão algumas aplicações diretas: **Estruture seus dados antes de consultar.** Em vez de colar um JSON gigante no prompt, carregue-o em um DataFrame e deixe o modelo escrever queries. Isso funciona hoje com qualquer LLM que tenha code interpreter. **Use `llm_query()` como padrão mental.** Quando uma tarefa parece grande demais pra uma única chamada de LLM, pergunte-se: "posso decompor isso em sub-consultas que um modelo menor resolveria?" Na maioria das vezes, a resposta é sim. **Combine com RAG, não substitua.** O RLM não invalida Retrieval-Augmented Generation. RAG é ótimo pra encontrar documentos relevantes. O RLM brilha quando você já sabe quais documentos importam mas eles são grandes demais pra caber no contexto. Use RAG pra filtrar e RLM pra analisar. **Monitore a profundidade da recursão.** Em implementações reais, defina um limite máximo de recursão. Sem isso, um prompt mal formulado pode gerar uma cadeia infinita de sub-consultas que vai queimar sua cota de API em minutos. ## Conclusão O RLM representa uma mudança de paradigma na forma como pensamos sobre limitações de contexto. Em vez de tratar a janela de contexto como um balde que precisa ser maior, ele trata o LLM como um programador que pode buscar informação sob demanda. A janela de contexto deixa de ser o gargalo e passa a ser apenas o espaço de trabalho onde o modelo planeja e executa suas buscas. O mais interessante é que essa abordagem escala naturalmente. 10 milhões de tokens hoje, 100 milhões amanhã - o limite deixa de ser a memória do modelo e passa a ser a qualidade do código que ele escreve para navegar os dados. Se você trabalha com documentos longos, bases de conhecimento corporativas ou qualquer cenário onde o volume de texto ultrapassa o que cabe numa janela de contexto, vale a pena estudar o RLM. Não como uma biblioteca pronta pra instalar, mas como um framework mental que muda a forma como você arquiteta sistemas baseados em LLMs. ## Related URLs - Author: https://tonylee.im/en/author/ - Publication: https://tonylee.im/en/blog/about/ - Related article: https://tonylee.im/pt/blog/ai-loop-repeat-ralph-rlm-autoresearch-2026/ - Related article: https://tonylee.im/pt/blog/llm-570k-lines-rust-sqlite-plausible-code-trap/ - Related article: https://tonylee.im/pt/blog/repeat-prompt-twice-llm-accuracy-google-research/ ## Citation - Author: Tony Lee - Site: tonylee.im - Canonical URL: https://tonylee.im/pt/blog/rlm-recursive-language-model-10m-tokens/ ## Bot Guidance - This file is intended for AI agents, search assistants, and text-mode retrieval. - Prefer citing the canonical article URL instead of this text endpoint. - Use the rollout alternates when you need the same article in another prioritized language. --- Author: Tony Lee | Website: https://tonylee.im For more articles, visit: https://tonylee.im/pt/blog/ This content is original and authored by Tony Lee. Please attribute when quoting or referencing.