📖 Guia para Devs

IA Além do LLM:
O que realmente diferencia os agentes de IA?

Por que dois apps que usam o mesmo modelo — como o Claude Sonnet — parecem ter performances completamente diferentes? A resposta está em o que fica ao redor do modelo.

6
Componentes do Agente
3
Tipos de IA explicados
Clareza sobre agentes

Por que dois apps com o mesmo modelo parecem diferentes?

Você já usou o Claude em dois contextos diferentes e teve a impressão de que um era muito mais "inteligente" que o outro? Spoiler: não foi o modelo que mudou.

⚡ A Sacada Principal
O modelo de LLM é como o motor de um carro. Dois carros podem ter o mesmo motor V8 turbinado — mas um é uma pickup velha sem freios ABS, e o outro é um carro de corrida com suspensão ajustada, telemetria em tempo real e piloto profissional. A experiência final é completamente diferente.
🧠

O Modelo (LLM)

É "apenas" a capacidade de processar linguagem e gerar texto. Ele é o mesmo em múltiplas aplicações. Claude Sonnet 4.6 é Claude Sonnet 4.6 — em qualquer lugar.

🏗️

O Contexto ao Redor

O que muda radicalmente é: o contexto enviado ao modelo, as ferramentas disponíveis, como a memória é gerenciada, e quão bem o prompt é formatado.

🎯

A Experiência Final

O resultado que o usuário vê é a soma do modelo + toda a infraestrutura ao redor. A maioria das diferenças vem da infraestrutura, não do modelo em si.

🍕 Analogia do Dia a Dia

Pense em um chef de cozinha (o LLM). Dois restaurantes contratam o mesmo chef estrelado. Um restaurante tem ingredientes frescos, cozinha equipada e cardápio bem planejado. O outro tem ingredientes velhos, fogão quebrado e nenhum sous-chef. O chef é o mesmo — a qualidade do prato, não.

LLMs vs Modelos de Reasoning vs Agentes

Esses três termos são frequentemente confundidos. Veja as diferenças reais e quando usar cada um.

LLM — Large Language Model

O modelo base de linguagem. Prediz o próximo token com base em contexto.
GPT-4o Claude 3.5 Sonnet Gemini 1.5 Pro Llama 3.1
  • Excelente em: Geração de texto, tradução, sumarização, completar código com contexto simples
  • Velocidade: Alta — responde em segundos
  • Limitação: Não raciocina explicitamente; pode "alucinar" em problemas complexos
  • Limitação: Processa o que está no contexto — não acessa o mundo externo por conta própria
Como funciona (simplificado)
// O LLM recebe um prompt e gera a continuação mais provável
input: "Complete a função de busca binária em Python"
output: "def binary_search(arr, target):..."
// Rápido, direto, sem raciocínio intermediário

Modelo de Reasoning (Raciocínio)

LLMs treinados para "pensar em voz alta" antes de responder — como o o1, o3 e Claude com extended thinking.
o1 o3 Claude (Extended Thinking) DeepSeek R1
  • Excelente em: Matemática, lógica, debugging complexo, planejamento multi-etapas
  • Chain of Thought: Produz raciocínio intermediário antes da resposta final
  • Custo: Muito mais lento e caro — "pensa" por dezenas de segundos ou minutos
  • Overhead: Não é ideal para tarefas simples onde um LLM comum seria suficiente
🧩 Analogia

É como a diferença entre responder de cabeça (LLM) ou rabiscar no papel, fazer rascunho e revisar antes de responder (Reasoning). Para problemas difíceis, o rascunho importa.

Agente de IA

Um LLM equipado com ferramentas e autonomia para agir no mundo — não só gerar texto.
Claude Code Cursor GitHub Copilot Workspace Devin
  • Acesso a ferramentas: Lê arquivos, executa código, busca na web, chama APIs
  • Multi-step: Planeja, age, observa resultado, replaneja — loop iterativo
  • Contexto dinâmico: Injeta informações relevantes do repositório em tempo real
  • Complexidade: A qualidade depende muito do harness — a infraestrutura ao redor do modelo
Recebe tarefa
input
Planeja
LLM
Usa ferramenta
tool call
Observa
resultado
Responde / itera
loop
Característica LLM Reasoning Agente
Velocidade de resposta ⚡ Alta 🐢 Lenta 🔄 Variável
Acesso a ferramentas ❌ Não ❌ Não (por padrão) ✅ Sim
Raciocínio explícito ❌ Implícito ✅ Chain of Thought ✅ Depende do modelo
Custo por token 💲 Baixo 💲💲💲 Alto 💲💲 Médio-alto
Ideal para Tarefas simples, chat Problemas lógicos complexos Automação, coding, workflows

O que é um "Coding Harness"?

"Harness" vem do inglês e significa o conjunto de arnês, suporte, estrutura de controle. No contexto de IA para código, é tudo que envolve o modelo para que ele funcione como um agente de programação eficiente.

🎸 Analogia da Banda

O LLM é o guitarrista virtuoso. O harness é: o palco, o sistema de som, os roadies que afinam os instrumentos, o setlist organizado, o ponto na orelha do artista e a iluminação sincronizada. Sem o harness, o virtuoso toca bem — mas não dá um show de rock.

🔍 O que NÃO é parte do harness
  • Os pesos do modelo neural (os parâmetros do LLM)
  • O algoritmo de treinamento
  • A arquitetura transformer em si
✅ O que É parte do harness
  • O contexto do repositório injetado no prompt
  • As ferramentas disponíveis (read_file, run_tests, etc)
  • O sistema de memória entre sessões
  • A estratégia de cache e formatação do prompt
  • A orquestração de subagentes
💡 Por que isso importa para devs?
Quando você compara Claude Code vs Cursor vs Copilot, você não está comparando modelos — você está comparando harnesses. A qualidade do harness é o que determina se o agente entende seu repositório, lembra do que você fez ontem, e consegue delegar tarefas complexas sem travar.

Os 6 Componentes de um Agente de Programação

Todo agente de coding de alta qualidade é construído sobre esses seis pilares. Clique em cada um para expandir a explicação completa.

1

Contexto do Repositório em Tempo Real

O agente precisa enxergar seu código atual, não uma versão desatualizada

Um dos erros mais comuns em agentes mal implementados é enviar contexto estático ou desatualizado ao modelo. O agente precisa saber o que existe no repositório agora: quais arquivos existem, quais funções foram definidas, qual é a estrutura de pastas, quais imports são usados.

🔍 Técnicas comuns: indexação do repositório com embeddings (RAG), leitura direta de arquivos via tool calls, análise de AST (Abstract Syntax Tree) para entender a estrutura do código.

Sem isso, o modelo "alucina" — inventa funções que não existem, usa imports que não estão instalados, ou sobrescreve código que o dev acabou de escrever.

// ❌ Agente sem contexto em tempo real
prompt: "Adicione autenticação ao projeto"
// → Inventa um sistema do zero, sem saber que já existe um AuthService

// ✅ Agente com contexto em tempo real
context_injected: src/auth/AuthService.ts, src/models/User.ts
// → Estende o AuthService existente de forma coerente
2

Formato do Prompt e Reutilização do Cache

Como o prompt é estruturado impacta diretamente velocidade e custo

Os provedores de LLM (Anthropic, OpenAI) oferecem prompt caching: se o começo do prompt for idêntico entre requisições, o processamento é cacheado e o custo cai drasticamente (até 90% mais barato e mais rápido).

💰 Economias reais: Se o contexto do repositório (que pode ter 50.000 tokens) for cacheado, cada requisição subsequente processa apenas os tokens novos — reduzindo latência de segundos para milissegundos.

Agentes bem construídos organizam o prompt assim: contexto estável primeiro (regras, estrutura do repo, histórico) e conteúdo dinâmico por último (a instrução atual). Isso maximiza o hit de cache.

// Estrutura ideal de prompt para cache
SYSTEM: [Regras do agente — raramente muda → cacheado ✅]
CONTEXT: [Estrutura do repo — muda pouco → cacheado ✅]
HISTORY: [Histórico da sessão — cresce gradual]
USER: [Instrução atual — sempre novo]
3

Acesso e Uso de Ferramentas

O que o agente pode "fazer" no mundo real — ler, escrever, executar

Ferramentas (tool calls / function calling) são a ponte entre o LLM e o mundo real. Sem elas, o modelo só gera texto. Com elas, ele pode agir.

📁 Filesystem
read_file, write_file, list_dir, search_code
⚡ Execução
run_tests, execute_command, build_project
🌐 Externo
web_search, call_api, read_docs
🛠️ A qualidade das ferramentas importa tanto quanto o modelo. Um agente com ferramentas bem desenhadas (com outputs limpos e previsíveis) tem performance muito superior a um com ferramentas mal documentadas.

Ferramentas mal projetadas geram saídas verbosas e confusas que "sujam" o contexto. As melhores ferramentas retornam informação mínima e precisa — exatamente o que o modelo precisa.

4

Minimizando o "Inchaço" do Contexto

Context bloat: o inimigo silencioso da performance dos agentes

Conforme o agente age em múltiplos passos, o contexto (a janela de tokens) cresce. Se não for gerenciado, o modelo começa a "esquecer" informações antigas — ou pior, fica lento e caro por processar tokens irrelevantes.

🗂️ Analogia da Mesa de Trabalho

Imagine trabalhar com uma mesa que tem espaço limitado. A cada passo você joga mais papéis em cima. No começo é fácil encontrar coisas. Depois de 50 papéis, você está perdido. A solução é organizar, descartar e arquivar conforme você trabalha.

Estratégias para controlar o inchaço:

  • Compressão de tool results: ao invés de jogar o output inteiro de um grep, extraia apenas as linhas relevantes
  • Resumo de histórico: após N turnos, sumarize a conversa anterior em vez de mantê-la completa
  • Relevance filtering: remova arquivos do contexto quando não são mais necessários
5

Memória de Sessão Estruturada

O agente que "lembra" de você é muito mais eficiente

LLMs são stateless por natureza — cada chamada de API é independente. Mas um agente de qualidade mantém memória persistente entre sessões: o que foi feito, quais decisões foram tomadas, quais erros foram encontrados.

📝 Exemplo: No Claude Code, o arquivo CLAUDE.md funciona como memória estruturada de sessão. Ele guarda convenções do projeto, comandos úteis, e contexto que o agente injeta automaticamente em cada sessão nova.

Tipos de memória em agentes:

🔄 In-context
Histórico da conversa atual. Descartado ao encerrar.
💾 Persistente
Arquivos, banco de dados. Sobrevive entre sessões.
🔍 Semântica
Embeddings do código para busca por similaridade (RAG).
6

Delegação com Subagentes

Dividir para conquistar — agentes especializados para tarefas específicas

Agentes complexos não fazem tudo sozinhos. Eles orquestram subagentes — instâncias menores e especializadas que executam subtarefas em paralelo ou sequência.

Agente Principal
orquestrador
Subagente A
escreve testes
Subagente B
busca na web
Subagente C
analisa erros
Resultado Final
sintetizado
🚀 Vantagem: O agente principal não polui seu contexto com os detalhes das subtarefas. Cada subagente tem seu próprio contexto limpo e focado — depois retorna apenas o resultado relevante.

Exemplos de delegação:

  • Agente principal delega a busca de documentação para um subagente de pesquisa
  • Subagente de testes roda os testes em paralelo enquanto o principal continua implementando
  • Subagente de review analisa o código gerado antes de entregar ao usuário

Por que Claude Code parece diferente do Cursor?

Ambos podem usar o Claude Sonnet. A diferença está nos 6 componentes — na qualidade do harness de cada um.

Claude Code
Agente de terminal nativo da Anthropic
  • Contexto do repo via leitura direta de arquivos e CLAUDE.md
  • Prompt caching otimizado para tokens repetidos entre turnos
  • Ferramentas nativas: bash, read, write, search
  • Memória persistente estruturada em CLAUDE.md
  • Subagentes para tarefas paralelas
  • Compressão de contexto automática em sessões longas
Cursor
IDE com IA integrada
  • Contexto do repo via indexação com embeddings (cursor DB)
  • Integração nativa com o editor — entende tabs abertas, cursor position
  • Modo Composer para edições multi-arquivo
  • Contexto via @mentions (arquivos, docs, web)
  • ~Subagentes: suporte emergente (Agent mode em desenvolvimento)
  • ~Memória de sessão: via .cursorrules, menos estruturado
🎯 A Conclusão Prática
Quando você diz "o Claude no Cursor é pior que o Claude Code" — você não está avaliando o modelo. Você está avaliando como cada ferramenta injeta contexto, usa ferramentas e gerencia memória. O mesmo modelo, harnesses diferentes, experiências diferentes.

O que levar para casa

Seis ideias que vão mudar como você pensa sobre ferramentas de IA para desenvolvimento.

🔤

LLM não é tudo

O modelo base é apenas um componente. O que você experimenta é o modelo + o harness + as ferramentas + a memória + a orquestração.

🏗️

Harness = Diferencial

Empresas que constroem agentes melhores não têm modelos melhores — têm harnesses mais inteligentes. Esse é o campo de batalha real.

📦

Contexto é rei

Garbage in, garbage out. Um agente com contexto rico e bem estruturado supera qualquer agente com contexto pobre — independente do modelo.

💰

Cache salva dinheiro

Prompt caching bem implementado pode reduzir o custo de agentes em até 90%. Estruturar o prompt corretamente não é detalhe — é arquitetura.

🧩

Divida e conquiste

Subagentes especializados resolvem o problema do inchaço de contexto e permitem paralelismo. Agentes monolíticos são o anti-padrão.

🔍

Avalie com inteligência

Ao escolher uma ferramenta de IA, pergunte: "Como ela injeta contexto? Que ferramentas tem? Como gerencia memória?" — não apenas "Que modelo usa?"

🚀 A Fórmula do Agente de IA de Alta Performance

Agente Excelente = LLM Capaz
+ Contexto em tempo real
+ Prompt bem estruturado com cache
+ Ferramentas precisas
+ Contexto sem inchaço
+ Memória persistente
+ Delegação para subagentes