Pular para o conteúdo

Thought: o raciocínio interno e a abordagem ReAct

Nota

Nesta seção olhamos para dentro do Agent — a capacidade de raciocinar e planejar. Vamos ver como ele usa um diálogo interno para analisar informação, quebrar um problema em passos e decidir a próxima ação.

E vamos apresentar o ReAct, a técnica de prompting que faz o modelo pensar "passo a passo" antes de agir.

O Thought é o raciocínio interno do Agent: o monólogo em que ele avalia a situação e decide o que fazer a seguir.

É aqui que a capacidade do LLM é de fato usada — analisar o que está no prompt, quebrar um problema complexo em passos menores, considerar o que já foi observado e ajustar o plano conforme informação nova aparece.

Tipos comuns de Thought

Tipo Exemplo
Planejamento "Preciso dividir isso em três passos: obter o código do assunto, buscar os processos, apresentar a lista"
Análise "A Tool devolveu -1, então o termo que usei não está na tabela de assuntos"
Decisão "O usuário não disse quantos processos quer; vou usar o padrão de 5"
Resolução de problema "A busca voltou vazia. Talvez o assunto esteja cadastrado com outro nome"
Integração de memória "O usuário já disse antes que trabalha na 3ª Vara; vou considerar isso"
Autocrítica "A abordagem anterior não funcionou, preciso tentar de outro jeito"
Priorização "Antes de detalhar cada processo, preciso confirmar que a lista está correta"
Nota

Em modelos ajustados especificamente para function calling, o Thought explícito é opcional — a chamada da Tool sai direto, sem o raciocínio em texto. Voltamos a isso na seção de Actions.

Chain-of-Thought (CoT)

Chain-of-Thought é uma técnica de prompting que induz o modelo a raciocinar passo a passo antes de dar a resposta final.

Costuma ser disparada por uma frase como "vamos pensar passo a passo".

Serve para raciocínio interno — lógica, matemática, dedução — sem nenhuma interação com o mundo externo.

Pergunta: Quanto é 15% de 200?
Thought: Vamos por partes. 10% de 200 é 20; 5% de 200 é 10; logo 15% é 30.
Resposta: 30

Por que isso funciona? Porque o modelo gera um token de cada vez, condicionado ao que já escreveu. Ao escrever os passos intermediários, ele cria para si mesmo o contexto que torna o próximo token mais provável ser o certo. O raciocínio não está guardado em lugar nenhum — ele é construído no próprio texto, enquanto é escrito.

Atenção

Consequência que costuma passar batido: o Thought é texto gerado, sujeito às mesmas limitações de qualquer outro texto do modelo.

Um raciocínio bem escrito não é prova de que o raciocínio está certo. O modelo pode produzir uma cadeia impecável de passos e chegar a uma conclusão errada — e o texto vai continuar parecendo impecável.

Trate o Thought como o que ele é: uma janela útil para depurar, não um atestado de correção. O valor dele para você é ver por que o Agent fez o que fez quando algo der errado.

ReAct: Reasoning + Acting

O ReAct combina raciocínio (Reason) com ação (Act). É a técnica que intercala o pensamento com o uso de Tools.

Isso permite resolver tarefas de vários passos, alternando entre:

Thought: Preciso do código do assunto "violência doméstica" antes de consultar a base.
Action: consultar_assunto["violência doméstica"]
Observation: 1001
Thought: Com o código em mãos, posso buscar os processos mais recentes.
Action: buscar_processos[1001, limite=3]
Observation: [três processos]
Thought: Tenho o necessário para responder.
Action: Finish["Os três processos mais recentes são..."]
ReAct
(d) é o padrão ReAct: o modelo alterna entre pensar e agir, em vez de apenas pensar ou apenas agir.

A diferença em relação ao CoT é decisiva para o nosso caso. No CoT, o modelo raciocina com o que já tem na cabeça. No ReAct, ele pode ir buscar o que não tem.

E o que ele não tem, no nosso caso, é tudo o que importa: nenhum processo do acervo do Tribunal esteve no treinamento dele.

Comparação

Característica Chain-of-Thought (CoT) ReAct
Raciocínio passo a passo Sim Sim
Acesso a Tools externas Não Sim (Actions + Observations)
Melhor para Lógica, matemática, tarefas internas Buscar informação, tarefas dinâmicas de vários passos
No nosso caso Insuficiente sozinho É o padrão que usamos
Nota

Modelos recentes como o DeepSeek R1 e o o1 da OpenAI foram treinados para pensar antes de responder, usando tokens estruturados como <think> e </think> para separar explicitamente a fase de raciocínio da resposta final.

Diferença importante: ReAct e CoT são estratégias de prompting — você as aplica em cima de qualquer modelo. Aquilo é uma técnica de treinamento, embutida no modelo. O qwen2:7b que usamos aqui não tem isso; o raciocínio dele vem do prompt.

Fixando o capítulo

Q1: Qual é a diferença decisiva entre CoT e ReAct para o nosso uso?


Q2: Um Thought bem escrito, com passos claros e encadeados, indica que o raciocínio está correto?


Q3: Por que o CoT sozinho não resolve o pedido \"traga os processos mais recentes sobre violência doméstica\"?


Vimos como o Agent pensa. Agora vamos ver como esse pensamento vira ação concreta: as Actions.