Raciocínio Agêntico: Quando o LLM Sai do Sofá
Todo mundo virou "agente" de uns tempos pra cá. Chatbot vira agente, script com um for vira agente, prompt bonito vira agente. A palavra desgastou tão rápido quanto "disruptivo" desgastou lá atrás. Por isso resolvi ler (na diagonal, sem compromisso de aula) um survey enorme chamado Agentic Reasoning for Large Language Models, assinado por gente de Illinois, Meta, Amazon, Google DeepMind, UC San Diego e Yale, tudo junto num paper só. Quando esse tanto de nome pesado se junta pra escrever 70 e tantas páginas organizando um assunto, dá pra desconfiar que talvez não seja só modinha.
A diferença de verdade: passivo contra interativo
O paper resume isso numa tabela que eu adorei, comparando "LLM raciocinando" contra "raciocínio agêntico". Vou recontar em versão zoada:
Um LLM raciocinando comum é tipo aquela máquina de café do trabalho: você aperta o botão, ela cospe o café dela, ponto final. Não importa quantas vezes você aperte de novo, ela nunca vai lembrar que você pediu sem açúcar da última vez, porque não tem memória, não observa o resultado do que fez, é uma tacada só, sem interação nenhuma com o mundo depois de responder.
Raciocínio agêntico é o funcionário novo que aprendeu seu pedido na segunda semana. Ele usa ferramenta (pega a caneca certa), busca informação quando precisa (pergunta se você quer capuccino hoje), guarda contexto de uma interação pra outra (lembra do seu pedido de ontem), e ajusta o comportamento com o tempo. O paper formaliza isso direitinho: em vez de um π(resposta | pergunta) de mão única, o modelo vira um laço que decide, age, observa o resultado, e decide de novo, quantas vezes precisar. É a diferença entre responder e fazer.
Três andares, cada um mais ambicioso que o outro
O survey organiza tudo em três camadas, e eu achei mais fácil pensar nelas como a evolução de um estagiário:
Andar 1, raciocínio agêntico fundamental: o estagiário no primeiro dia. Sabe planejar uma tarefa quebrando ela em pedaços menores, sabe usar as ferramentas que a empresa disponibiliza (chamar uma API, rodar um código), e sabe pesquisar quando não sabe algo (busca na web, olha a documentação). Isso já é o suficiente pra resolver tarefa dentro de um ambiente estável, mas ele ainda não aprende nada de uma tarefa pra outra.
Andar 2, raciocínio agêntico autoevolutivo: o mesmo estagiário, três meses depois. Agora ele reflete sobre os próprios erros ("da última vez que fiz assim, deu ruim, vou tentar diferente"), guarda memória do que já funcionou, e vai ajustando o próprio jeito de trabalhar com a experiência acumulada. O paper separa isso em três sabores, e os exemplos reais são ótimos. Evolução verbal é literalmente o estagiário escrevendo um bilhete pra si mesmo ("não esquece de X da próxima vez"), é o que o framework Reflexion faz, texto puro guiando a próxima tentativa. Evolução procedural é ele indo além, construindo uma caixa de ferramentas nova conforme aprende (o Voyager faz isso jogando Minecraft, criando funções de código reutilizáveis a cada nova habilidade aprendida). E evolução estrutural é o nível "e se o estagiário reescrevesse o próprio contrato de trabalho", onde o sistema (AlphaEvolve, por exemplo) usa um LLM pra mexer no próprio código-fonte, tratando o próprio algoritmo como hipótese a ser testada e melhorada. Esse último é assustador de tão ambicioso.
Andar 3, raciocínio agêntico coletivo: já não é mais um estagiário, é o time inteiro. Vários agentes dividem papel (um planeja, um executa, um critica o trabalho do outro), trocam mensagem entre si, e compartilham memória. Frameworks como AutoGen e CAMEL vivem nesse andar, simulando literalmente uma equipe de gente conversando pra resolver um problema junto.
Estudar pra prova ou aprender de verdade
Outra distinção do paper que eu curti: raciocínio em contexto contra raciocínio pós-treino. Em contexto é estudar de última hora: o modelo não muda um peso sequer, só usa o tempo de inferência pra pensar mais (testar caminhos diferentes, revisar a própria resposta, buscar informação extra), tudo dentro da mesma conversa. Pós-treino é estudar de verdade: o comportamento bom vira parte permanente do modelo via reforço (o paper cita a fórmula do GRPO, uma técnica de aprendizado por reforço que ajusta o modelo comparando um grupo de respostas entre si, recompensando as melhores do grupo), então da próxima vez ele já nasce sabendo, sem precisar reaprender a cada conversa nova.
Um respiro meta
Reparei numa coisa lendo isso: o "andar 1" que descrevi ali em cima, planejar a tarefa, usar ferramenta, buscar informação, verificar o resultado, é literalmente o que está acontecendo agora, enquanto esse post é escrito. Sim, esse texto que você tá lendo nasceu de um agente (no sentido bem técnico que o paper usa) lendo o PDF, decompondo a tarefa de escrever o post, e verificando o resultado antes de publicar. A ironia não passou despercebida.
Fechando
| O que eu já sabia | O que esse survey assentou |
|---|---|
| "Agente de IA" virou palavra de propaganda | Tem uma definição técnica real por trás: interação, memória, e adaptação, não só um prompt mais chique |
| ReAct e frameworks parecidos existem | Eles são só o andar 1 de uma hierarquia de três níveis, e o topo (multiagentes coordenando) é bem mais ambicioso |
| RL ajusta modelo de linguagem | A distinção "em contexto vs. pós-treino" é sobre ONDE a melhoria mora: na conversa de agora, ou permanentemente no peso do modelo |
Aplicação Prática
Pra sentir na pele a ideia central (interação bate resposta única, palavras exatas do survey: "scaling test-time interaction"), montei o jogo mais simples que existe: adivinhar um número entre 1 e 100.
def chute_unico(alvo, chute):
# "raciocínio de LLM comum": uma tacada só, sem feedback nenhum
return chute == alvo
def chute_agentico(alvo, n=100, tentativas=7):
# "raciocínio agêntico": usa o feedback (maior/menor) a cada tentativa
baixo, alto = 1, n
for _ in range(tentativas):
chute = (baixo + alto) // 2
if chute == alvo:
return True
elif chute < alvo:
baixo = chute + 1
else:
alto = chute - 1
return False
A versão de chute único acerta 1 em 100 vezes, não importa quantas "tentativas" você deixe ela ter, porque ela nunca usa o resultado da tentativa anterior. A versão agêntica usa a dica (maior ou menor) pra cortar o espaço de busca pela metade a cada rodada, exatamente a mesma lógica por trás de busca binária. A fórmula fechada pra chance de acerto com k tentativas é min(2^k - 1, 100) / 100: cada tentativa a mais dobra quantos números você consegue cobrir com certeza.
Arrasta o slider abaixo e repara: com só 1 tentativa, a chance é a mesma dos dois métodos (1%, você só tem uma bala mesmo). Mas a partir da segunda tentativa a linha azul (com feedback) decola, enquanto a laranja (sem interação) fica birrenta no chão, porque ela simplesmente não usa a informação nova que cada tentativa a mais poderia trazer. Com 7 tentativas, a versão agêntica já bate 100% de certeza. É a mesma matemática por trás de "20 perguntas", só que aqui são só 7 porque o espaço de busca é bem menor.
7%
Simples assim: interação troca "sorte" por "matemática garantida", e esse é exatamente o argumento central do survey inteiro, só que aplicado num monte de coisa mais impressionante que adivinhar número.