Pular para o conteúdo

Conceitos

Agentes: o laço raciocinar-agir-observar (ReAct)

Intuição

Pense em alguém que cozinha seguindo uma receita: entre um passo e outro, ela fala consigo mesma ("já piquei a cebola, falta o alho; não tenho alho, vou ver o que pode substituir") e, quando falta informação, vai olhar a despensa ou procurar fora. Pensar sozinho, sem olhar o mundo, leva a inventar coisas; agir sem pensar leva a sair fazendo sem plano. O ReAct faz um modelo de linguagem trabalhar do jeito misto: pensa um pouco, faz uma consulta ou ação, olha o que voltou e pensa de novo a partir disso.

Como funciona

O ReAct amplia o espaço de ações de um agente para incluir também a linguagem livre: uma ação nesse espaço é um pensamento (traço de raciocínio), que não altera o ambiente externo e, por isso, não gera observação em retorno; ele só é adicionado ao contexto, que acumula tudo o que já aconteceu, para apoiar o raciocínio e as ações seguintes. Os pensamentos servem para decompor o objetivo em um plano, injetar senso comum, extrair o que importa de uma observação, acompanhar o progresso e tratar exceções. As ações, ao contrário, vão a uma ferramenta ou ambiente externo e devolvem uma observação. No paper, a ferramenta de HotpotQA e FEVER é uma API simples da Wikipedia com três ações: search[entidade] (primeiras 5 frases da página), lookup[texto] (próxima frase que contém o texto, como um Ctrl+F) e finish[resposta]. Os autores dizem que essa API é mais fraca que recuperadores modernos e que o propósito do desenho é simular como pessoas interagem com a Wikipedia e forçar o modelo a decidir o que buscar por meio de raciocínio explícito. O laço é: o pensamento decide o que buscar, a ação consulta, a observação traz o resultado e o próximo pensamento o interpreta, podendo reformular a busca antes de responder. O modelo (PaLM-540B, congelado) é orientado só por poucos exemplos no prompt, escritos por humanos, com pensamentos, ações e observações; em tarefas com muitas ações, os pensamentos aparecem de forma esparsa e o próprio modelo decide onde inseri-los. Os modos de falha descritos são: a estrutura rígida reduz a flexibilidade do raciocínio (47% das falhas analisadas do ReAct eram erros de raciocínio, contra 16% no CoT), o modelo pode repetir os mesmos pensamentos e ações sem sair do laço, e 23% das falhas vêm de buscas que não retornam informação útil e desorientam o modelo.

Na prática

No paper, o laço foi testado em HotpotQA e FEVER com a API da Wikipedia e em dois ambientes interativos: no ALFWorld, a melhor tentativa do ReAct teve 71% de sucesso contra 45% do melhor Act, e no WebShop teve 40,0% contra 59,6% de humanos especialistas. Frente ao chain-of-thought, a troca observada foi menos alucinação (alucinação foi 56% das falhas do CoT e 0% das amostras de falha do ReAct) em troca de mais erros de raciocínio, e por isso os autores propõem combinar os métodos, voltando ao CoT com autoconsistência se o ReAct não responder em 7 passos no HotpotQA ou 5 no FEVER. Os autores também ressalvam que conectar um modelo de linguagem a ações no mundo traz riscos, e restringiram os experimentos a Wikipedia e WebShop.

Use em um desenho

Pratique na escola de System Design os casos que dependem deste conceito.