Thought: o raciocínio interno e a abordagem ReAct
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" |
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.
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: raciocínio interno
- Action: uso de uma Tool
- Observation: o retorno da Tool
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..."]
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 |
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.