MÓDULO 1.3

⚙️ Sob o Capô: O Ciclo de Vida de uma Conversa

O que realmente acontece entre você pressionar Enter e ver uma resposta. Cada conversa é gerenciada por um Motor de Consulta que roda em loop infinito, executando ferramentas em streaming e trocando de modelo automaticamente quando necessário.

6
Tópicos
30
Minutos
Básico
Nível
Teoria
Tipo
1

🔄 O Motor de Consulta — Uma instância por conversa

No coração do Claude Code está o Query Engine — o Motor de Consulta. Ele gerencia o ciclo de vida completo de cada conversa, desde o momento que você digita até a resposta final aparecer no terminal.

Query Engine

Uma instância exclusiva por conversa — isolamento total

Baseado em geradores assíncronos (async generators)

Gerencia o estado da conversa: mensagens, contexto, ferramentas ativas

Responsável por chamar a API do Claude e processar as respostas

Controla o ciclo de vida: início, execução, compressão, finalização

💡 Por Que Uma Instância por Conversa?

Isolamento garante que conversas paralelas não interferem entre si. Cada instância mantém seu próprio estado, histórico e contexto — como processos separados em um sistema operacional.

2

📝 As 6 Etapas — Do teclado até a resposta

Quando você digita algo no Claude Code, sua mensagem passa por exatamente seis etapas antes de virar uma resposta. Este fluxo se repete em loop até o Claude decidir que terminou.

O fluxo de 6 etapas do teclado até a resposta
O fluxo de seis etapas: do teclado até a resposta.
1

Você Digita

Sua mensagem entra no sistema como input do usuário

2

Prompt do Sistema

O sistema injeta suas skills, plugins, contexto do projeto e memória

3

API do Claude

A solicitação é transmitida em streaming para os servidores da Anthropic

4

Chamadas de Ferramentas

Se o Claude precisar ler um arquivo ou executar um comando, ele chama uma ferramenta

5

Resultados de Volta

Os resultados da ferramenta voltam para o Claude para outra passagem

6

Resposta

A resposta final é transmitida em streaming para o seu terminal

💡 O Loop no Coração

As etapas 3 a 5 se repetem em loop. O Claude pode ler um arquivo, depois executar um comando, depois ler outro arquivo, e só então responder. Esse loop é o coração do sistema — é o que faz dele um agente, não um chatbot.

3

♾️ O Loop Infinito — while(true) no coração do sistema

O segredo do Claude Code como agente está em três palavras: while(true). O loop de consulta roda indefinidamente, permitindo que o Claude execute quantas ações forem necessárias antes de responder.

O loop de consulta infinito
O loop de consulta infinito com execução de ferramentas em streaming.

O Loop while(true)

O loop roda dentro de um while(true) infinito

Em cada iteração: envia para API → recebe resposta → verifica se há tool calls

Se há tool calls: executa ferramentas → injeta resultados → volta para a API

Se não há tool calls: resposta final é entregue ao usuário

O modelo pode fazer dezenas de iterações em uma única mensagem

Fazer

  • Confiar no loop — o Claude sabe quando parar
  • Dar instruções claras para que o loop seja eficiente
  • Usar /compact se o loop ficar muito longo

Evitar

  • Interromper prematuramente com Ctrl+C (a menos que necessário)
  • Dar instruções vagas que causam loops desnecessários
  • Ignorar quando o contexto está ficando grande
4

🌊 Streaming Tool Executor — Paralelismo e acesso exclusivo

No centro do loop está o Streaming Tool Executor — o componente que decide como executar as ferramentas. Ele é inteligente o suficiente para rodar ferramentas seguras em paralelo e dar acesso exclusivo a ferramentas arriscadas.

Dois Modos de Execução

Paralelo (concurrency-safe): Ferramentas read-only como Read, Glob, Grep rodam simultaneamente. Ler 5 arquivos ao mesmo tempo é seguro e rápido.

Exclusivo (não concurrency-safe): Ferramentas que modificam estado como Edit, Write, Bash rodam uma de cada vez. Editar dois arquivos em paralelo poderia causar conflitos.

O método isConcurrencySafe() de cada ferramenta define o comportamento

Ferramentas isReadOnly() são aprovadas automaticamente sem pedir permissão

📊 Impacto na Performance

Leitura paralela de arquivos pode ser 5-10x mais rápida que sequencial

O cache de prompt é compartilhado entre execuções paralelas

Ferramentas seguras para concorrência não precisam de aprovação do usuário

O executor gerencia filas e prioridades automaticamente

5

🔀 Fallback de Modelo — Troca automática sem você perceber

O que acontece quando o modelo principal falha? O Claude Code tem um sistema de fallback que troca automaticamente para um modelo alternativo — e você nem percebe.

Resiliência Transparente

Se a chamada de API para o modelo principal falhar, o sistema tenta um modelo de fallback

A troca é completamente transparente — o usuário não vê erro

O contexto da conversa é preservado durante a troca

Feature flags controlam quais modelos estão disponíveis como fallback

O código menciona modelos como "capybara", "capybara-fast" e "capybara-fast[1m]"

⚠️ O Modelo Capybara

O vazamento revelou referências ao codinome "Capybara" — possivelmente a próxima geração de modelos Claude (Claude 5?). Três variantes foram encontradas: capybara (padrão), capybara-fast (rápido) e capybara-fast[1m] (janela de 1M tokens). A Anthropic não confirmou.

6

📡 Geradores Assíncronos — Streaming palavra por palavra

Tudo no Claude Code é construído com async generators (geradores assíncronos). Isso significa que as respostas não chegam de uma vez — elas fluem em tempo real, ferramenta por ferramenta, palavra por palavra.

Fluxo Contínuo, Não Batch

Respostas são transmitidas em tempo real via streaming

Cada token (pedaço de texto) é renderizado no terminal imediatamente

Resultados de ferramentas aparecem conforme são concluídos

Não existe "esperar tudo terminar" — é um fluxo contínuo

A experiência é como assistir o Claude "pensar em tempo real"

💡 Na Prática

O streaming é o que torna o Claude Code responsivo mesmo em tarefas longas. Você vê progresso imediato — texto aparecendo, ferramentas sendo executadas, resultados surgindo. É fundamentalmente diferente de fazer uma requisição e esperar a resposta completa.

📊 Async Generators em TypeScript

async function* produz valores sob demanda

yield emite cada token/resultado conforme fica disponível

for await...of consome o stream no lado do cliente

O padrão é usado em todo o sistema: API, ferramentas, agentes, ponte

📋 Resumo do Módulo

Query Engine: uma instância isolada por conversa
6 etapas: digita → sistema → API → ferramentas → resultados → resposta
Loop while(true) é o que torna o Claude Code um agente, não um chatbot
Ferramentas read-only rodam em paralelo, modificações são exclusivas
Fallback automático de modelo garante resiliência
Async generators permitem streaming em tempo real

Próximo Módulo:

1.4 - 🧰 A Caixa de Ferramentas: 40+ Ferramentas