Pular para o conteúdo
Tópicos

Desenvolvimento com IA e Programação: Crie Apps

Desenvolva melhor com IA. Guias de geração de código, criação de apps, depuração e automação.

97 artigos

Ordene os artigos para encontrar o que precisa

Artigos em Dev IA e Programação

O que é Jev? Usos, preços e limites da IA de decisão da TypeSafe

O que é Jev? Usos, preços e limites da IA de decisão da TypeSafe

Jev é o modelo de IA da TypeSafe que retorna opções, pontuações e probabilidades de Sim/Não em vez de gerar texto. Explicamos as diferenças entre Choice, Score e Noul, o significado de confidence e a estrutura de uma solicitação de API para encaminhar casos de suporte. A garantia de tipo não garante decisões corretas. O guia apresenta limitações documentadas em cálculos, datas e entradas enganosas, além dos preços, dos dois limites de entrada e da avaliação antes do uso em japonês. Baseia-se em fontes oficiais, não em testes práticos de desempenho da API.

O que é o opusplan do Claude Code? Opus para planejar, Sonnet para implementar: como configurar e cuidados

O que é o opusplan do Claude Code? Opus para planejar, Sonnet para implementar: como configurar e cuidados

Você quer deixar só o planejamento com um modelo mais inteligente e passar a implementação para um modelo mais rápido e mais barato. O opusplan do Claude Code é uma indicação de modelo que faz isso automaticamente. Ele roda no Opus durante o modo de planejamento e no Sonnet no resto do tempo, e pode ser usado com /model opusplan ou com o model do settings.json. Mas ele não aparece na lista do /model e, como o modelo troca toda vez que você entra ou sai do modo de planejamento, a cada troca a conversa inteira é relida sem cache. Com base na documentação oficial, no histórico de mudanças e nas issues do GitHub em 15 de setembro de 2026, este artigo organiza como configurar (incluindo fixar versões e o contexto de 1M), o fluxo do modo de planejamento até a aprovação e a implementação, como ele saiu da tela de seleção na v2.0.0 e a explicação de um funcionário da Anthropic, uma estimativa do custo de cache gerado pelas trocas e como contê-lo, as diferenças em relação à ferramenta advisor e aos subagentes, e os usos em que ele combina ou não.

Como rodar os subagentes do Claude Code em outro modelo: configuração e medições ao delegar ao Sonnet e ao Haiku

Como rodar os subagentes do Claude Code em outro modelo: configuração e medições ao delegar ao Sonnet e ao Haiku

Dá para manter a sessão principal do Claude Code no Opus 5 e entregar só tarefas como tradução ou verificações em grande volume a subagentes no Sonnet ou no Haiku? Dá. O modelo do subagente é decidido nesta ordem: o modelo indicado na chamada, o model do arquivo de definição, a variável de ambiente CLAUDE_CODE_SUBAGENT_MODEL e o modelo da sessão principal; o esforço (effort) também pode ser definido para cada subagente. Com base na documentação oficial em 15 de setembro de 2026, este artigo organiza as diferenças dessa ordem entre versões, o CLAUDE_CODE_SUBAGENT_MODEL_FORCE para fixar todos em um único modelo, o destino dos aliases, que muda conforme o provedor, e o fato de que, desde a v2.1.198, o Explore nativo herda o modelo da sessão principal. Em seguida, mostra o que aconteceu quando iniciei subagentes em outros modelos e conferi nos logs de conversa: eles rodaram no modelo indicado, cada um leu dezenas de milhares de tokens só para iniciar, o cache dos subagentes expira em 5 minutos mesmo na assinatura, e a mesma tradução entregue ao Opus 5, ao Sonnet 5 e ao Haiku 4.5, duas vezes para cada um, teve diferenças de tempo, custo e qualidade. Por fim, resume o efeito no custo e nos limites de uso e os critérios para decidir que trabalho passar para um modelo mais barato.

Claude Code: como ver o uso por sessão e descobrir qual sessão está consumindo o seu plano

Claude Code: como ver o uso por sessão e descobrir qual sessão está consumindo o seu plano

Quando você roda várias sessões em paralelo, começa a se perguntar qual delas está consumindo o seu limite semanal. Só que o /usage do Claude Code mostra apenas os números da sessão atual e o consumo do plano inteiro dividido por Skill, subagente, plugin e servidor MCP, e a parcela usada por cada sessão não aparece nem no anel de uso do app desktop nem na página de configurações do claude.ai (em setembro de 2026). A resposta está nos logs de conversa guardados na sua máquina (os arquivos JSONL em ~/.claude/projects), mas somá-los como estão dá o resultado errado, porque uma única resposta é gravada em várias linhas, uma por bloco de conteúdo, e os registros dos subagentes ficam em arquivos separados. Medida na minha própria máquina, a soma direta chegou a cerca do dobro do valor correto e, como o tamanho do erro variava de uma sessão para outra, até a ordem entre elas mudou. Este artigo mostra o que as telas oficiais mostram e o que não mostram, como contar os logs corretamente com um script de agregação de cerca de 50 linhas, a medição em que uma sessão levou quase um terço de todo o uso, os limites do que os números podem dizer e como configurar o OpenTelemetry se você quiser acompanhar o uso ao longo do tempo.

Claude Code: o que está consumindo o seu contexto? Como medir e o que cortar primeiro

Claude Code: o que está consumindo o seu contexto? Como medir e o que cortar primeiro

Instalar Skills demais sufoca o contexto: metade dessa frase está certa e metade está errada. Segundo a documentação oficial do Claude Code, a listagem de Skills consome um orçamento fixo de 1% da janela de contexto do modelo e, por mais Skills que você acrescente, é ali que ela para. Em vez de crescer, a listagem passa a descartar descrições, começando pelas Skills menos invocadas, e mantém apenas os nomes. Uma Skill que perdeu a descrição deixa de se conectar com aquilo que você pediu, e ainda assim nenhum erro aparece e nada fica mais lento. Este artigo percorre os papéis distintos das três ferramentas de medição (/context, /usage e /skill-doctor), a definição de erro de cache como 5% e 2.000 tokens, a queda da validade do cache de uma hora para cinco minutos conforme o contrato, por que a CLI continua mais leve que o MCP mesmo agora que as definições de ferramentas são carregadas sob demanda, o raciocínio por trás de manter o CLAUDE.md abaixo de 200 linhas e o que cortar primeiro depois de medir, sempre restrito ao que foi possível confirmar na documentação oficial.

The model returned no content: causas e solução — a mensagem de erro do Claude muda de sentido conforme quem a escreveu

The model returned no content: causas e solução — a mensagem de erro do Claude muda de sentido conforme quem a escreveu

O trabalho trava enquanto você usa o Claude, você pesquisa exatamente a mensagem que apareceu e a busca não devolve nada. The model returned no content because the response was blocked by content filtering, The response was blocked by the provider's content filter, Streaming response ended before any complete data was received, Could not locate the Claude CLI on PATH e Connection to Claude's response was lost. Claude may still be working são cinco exemplos disso. O que elas têm em comum é aparecerem durante o uso do Claude e, ainda assim, não serem encontradas (ao menos aparentemente) no material do Claude. O motivo é simples: quem escreveu a mensagem que está na sua tela não é necessariamente o programa que você imagina. Este artigo não explica cada causa do zero; ele é a porta de entrada para identificar quem escreveu a mensagem e encaminhar você ao artigo certo. Primeiro, as quatro camadas capazes de escrever uma frase de erro (o backend que fornece o modelo, o próprio Claude Code, o programa que o inicia como extensão de IDE ou wrapper, e o cliente de terceiros). Comparando de fato, duas das cinco existiam como itens na referência oficial de erros do Claude Code. A definição oficial de Streaming response ended… é que os cabeçalhos voltaram mas o corpo não trazia mensagem da API do Claude, ou seja, não é queda no meio. Já Could not locate the Claude CLI on PATH está num capítulo separado, Wrapper and IDE errors, que a documentação oficial descreve como mensagens impressas pelo programa que faz a inicialização. As duas frases de content filter, em contrapartida, são vocabulário de terceiros, e a issue #35736 do OpenCode relata que três falhas distintas — 404 do Vertex, socket rompido e recusa de verdade — aparecem todas como o mesmo blocked by content filter. Só uma das três torna a frase correta. A documentação oficial do GitHub também afirma que, ao usar o Claude, entrada e saída passam pelos filtros de conteúdo do GitHub Copilot, de modo que usar o Claude não garante que quem barrou foi o filtro da Anthropic. Da última das cinco não há string nem na referência oficial nem na documentação do Remote Control, então a origem não foi identificada, nenhum nome é citado e ficam registrados quatro passos para o leitor descobrir sozinho. O que está confirmado e o que não está aparecem separados por rótulos.

API Error: Connection lost mid-response — causas e solução do erro de conexão perdida renomeado na v2.1.227

API Error: Connection lost mid-response — causas e solução do erro de conexão perdida renomeado na v2.1.227

O Claude Code para no meio da resposta e mostra API Error: Connection lost mid-response. The response above may be incomplete. Pesquisar essa frase exata devolve pouca coisa porque o nome é relativamente novo: a referência oficial de erros diz que, antes da v2.1.227, Connection lost mid-response aparecia como Connection closed mid-response, e que ao mesmo tempo Response stalled mid-stream virou The response stopped arriving e Connection closed while thinking, before producing a response virou Connection lost before a response was produced. O fenômeno já existia; só a palavra mudou. Partindo dessa renomeação, este artigo organiza tudo apoiado apenas na documentação oficial e em issues públicas. Primeiro, a definição oficial das quatro mensagens de resposta interrompida (Server error, Connection lost, computer went to sleep e The response stopped arriving), o motivo de a saída parcial ser preservada de propósito — reenviar poderia executar a mesma chamada de ferramenta duas vezes — e o procedimento de retomada, que é responder continue. Depois, por que não há nova tentativa automática, pela bifurcação oficial dos Automatic retries: quedas antes de qualquer conclusão são reenviadas com backoff até 10 vezes; depois do raciocínio e antes da saída, no máximo 2 vezes, até terminar em Connection lost before a response was produced; depois de um bloco concluído, nada é reenviado e o aviso aparece. Em seguida, as três camadas em que a conexão pode se romper (equipamento e conexão local, caminho com proxy e gateway, servidor e reuso de conexão), a releitura do material mTLS na rotação de certificados (a partir da v2.1.232), um checklist de isolamento com 9 passos, os valores padrão dos quatro temporizadores de vigilância do stream (first-byte 180 s, event 300 s, byte 180 s, body idle 5 minutos) e variáveis como CLAUDE_CODE_MAX_RETRIES, CLAUDE_CODE_RETRY_WATCHDOG e API_TIMEOUT_MS, além de uma tabela para distinguir oito mensagens parecidas. Também traz os relatos reais em que o HTTPS puro passa e só a CLI cai com ECONNRESET (#86473 e #85979). No fim, separa por grau de confiança o que está documentado — sintoma, sentido e retomada — do que ainda não saiu: a explicação oficial da causa e qualquer registro da renomeação no CHANGELOG.

As 3 mudanças incompatíveis do Claude Fable 5.1 — o que corrigir antes de migrar e o que significa a leitura de cache por um quarto do preço

As 3 mudanças incompatíveis do Claude Fable 5.1 — o que corrigir antes de migrar e o que significa a leitura de cache por um quarto do preço

Migrar para o Claude Fable 5.1 não termina quando você troca o ID do modelo. A documentação oficial afirma que três delas são mudanças incompatíveis e, dessas três, duas se manifestam longe de onde está a causa. 1) A chamada de ferramenta forçada devolve 400 — os tipos any e tool de tool_choice retornam invalid_request_error. Como o raciocínio deste modelo está sempre ligado, forçar a ferramenta faz o raciocínio ser pulado e a qualidade dos argumentos cair. 2) O bloco de raciocínio fica vinculado ao modelo — conversas que vêm da geração anterior para o Fable 5.1 preservam o raciocínio, mas o sentido inverso o perde. E, por padrão, os blocos ilegíveis são descartados antes de chegar ao modelo, não entram em input_tokens e nem aparecem na cobrança. Em arquiteturas que trocam de modelo com roteadores ou fallbacks, tudo parece funcionar enquanto só o raciocínio some. Para perceber, é preciso o cabeçalho beta thinking-binding-controls-2026-08-01. 3) Editar turnos antigos invalida todos os blocos de raciocínio seguintes — reconstruir o prompt system ou o array tools e inserir lembretes para apagá-los depois entram nessa categoria. Como essa verificação é obrigatória em contas criadas a partir de 31 de agosto de 2026, pode acontecer de um ambiente de testes novo falhar enquanto a produção não falha. Também vale evitar o erro de posicionamento: o Fable 5.1 não é uma troca de carro-chefe, e a documentação oficial diz que a maioria dos usos começa pelo Opus 5. Não houve aumento de preço; o que mudou foi só a leitura de cache, que caiu de 0.1 para 0.025 vez a entrada base. O efeito depende de quantas vezes o mesmo prefixo é relido, e a Anthropic fala em cerca de 25% de redução em cargas típicas e até cerca de 45% em trabalhos de perfil agêntico. Além disso, sete comportamentos mudam sem você mexer no código (menos chamadas de ferramenta em paralelo, menos narração de progresso, respostas de memória com effort low, prosa mais densa, menos formatação, citações não marcadas ao resumir, reescrita integral em correções pequenas). Os cinco recursos acrescentados e as cinco verificações do roteiro de migração também estão aqui, tudo com base na documentação oficial da Anthropic.

LLM local para programar: Ollama, Cline e Continue na prática

LLM local para programar: Ollama, Cline e Continue na prática

Fazer um modelo que roda no seu próprio PC escrever código deixou de ser apenas autocompletar: entre o fim de 2025 e 2026, os modelos abertos alcançaram a programação em modo agente, e os próprios desenvolvedores passaram a citar as extensões de editor pelo nome. Este artigo organiza, usando apenas fontes primárias, até onde dá para chegar hoje e onde as coisas travam. O ponto central é uma armadilha silenciosa: o tamanho de contexto padrão do Ollama não é fixo, ele é decidido pela VRAM, e um PC gamer comum cai na faixa de 4k, o que faz o agente esquecer instruções, repetir operações e perder o objetivo sem nunca exibir um erro. A recomendação oficial para uso em programação é de 64000 tokens ou mais, mas aumentar esse valor também aumenta a memória necessária, então a verificação com ollama ps é obrigatória. O texto separa Continue de Cline, que são ferramentas de filosofias opostas, compara Qwen3.6-35B-A3B e Devstral Small 2 com as pontuações divulgadas pelos próprios fabricantes, indica o que é realista em cada faixa de VRAM, mostra por que a comparação percentual com a nuvem deixou de fazer sentido agora que a fronteira abandonou o SWE-bench Verified, e desmonta a ideia de que o local é de graça: o que muda é o formato do custo, e a resposta se inverte conforme você já tenha ou não o equipamento.

Remote Control do Claude Code: comande o seu próprio PC pelo celular

Remote Control do Claude Code: comande o seu próprio PC pelo celular

O Remote Control conecta o aplicativo móvel do Claude ou o claude.ai/code a uma sessão do Claude Code que já está rodando na sua própria máquina, e o ponto que a maioria das explicações erra é que nada se muda para a nuvem: a execução do código e o acesso aos arquivos permanecem locais o tempo todo, e o celular é apenas uma janela para essa sessão. Este artigo percorre o que esse desenho compra e o que ele custa. O seu sistema de arquivos local, os servidores MCP, as ferramentas e a configuração do projeto continuam disponíveis (digitar @ autocompleta caminhos do projeto local), a conversa e o progresso dos subagentes ficam sincronizados entre terminal, navegador e celular, e um notebook que hiberna ou uma conexão que cai são sobreviventes porque o Claude Code reconecta e entrega as atualizações enfileiradas assim que se recupera. Os requisitos são mais rígidos do que parecem: Pro, Max, Team ou Enterprise (chaves de API não são suportadas), login no claude.ai em vez de um setup-token, conexão direta com api.anthropic.com e nenhuma das quatro variáveis de ambiente que desligam a telemetria definida, motivo pelo qual quem define DO_NOT_TRACK por privacidade ouve que o recurso não está habilitado na conta. São cobertas as três portas de entrada (/remote-control para levar a conversa atual, claude --remote-control e o modo servidor com suas flags --spawn, --capacity 32 e --continue), além da divisão entre os comandos de barra que funcionam remotamente e os que são somente locais, como /resume, do prazo de cinco minutos das caixas de diálogo que não vale para os pedidos de permissão e dos dois botões de notificação push. Na segurança, o artigo é deliberado: nenhuma porta de entrada é aberta, então a superfície de ataque de rede quase desaparece e o risco se muda para a conta, o QR code é um atalho e não uma autenticação, e o portão padrão é exatamente uma conta com sessão iniciada, o que torna a passkey o passo de maior valor. A retenção das transcrições (5 anos ou 30 dias), o que fazer ao perder o celular, o Trusted Devices com sua janela de 18 horas, o tempo limite de dez minutos do modo servidor, a janela de quatro horas para retomar, a exigência do tmux em máquinas remotas, uma tabela de diagnóstico ligada às mensagens de erro reais e uma comparação com o Dispatch completam o quadro.

Pensamento adaptativo vs estendido no Claude: o que mudou

Pensamento adaptativo vs estendido no Claude: o que mudou

O jeito de pensar do Claude passou por uma troca de geração. O antigo pensamento estendido (extended thinking) exigia que você especificasse um orçamento de tokens em cada requisição — thinking: {"type": "enabled", "budget_tokens": N} —, mas o orçamento certo muda de tarefa para tarefa, não dá para adivinhá-lo de antemão, e alterá-lo invalida o cache de prompt. O pensamento adaptativo atual é uma única linha, type: "adaptive": pensar ou não, e com que profundidade, é decisão do próprio modelo com base em quão difícil a requisição parece. A migração foi escalonada: budget_tokens foi descontinuado no Opus 4.6 / Sonnet 4.6 e é rejeitado com erro 400 do Opus 4.7 em diante. Este artigo condensa as regras por modelo em uma tabela — o Fable 5 pensa sempre (não dá para desligar), Opus 5 e Sonnet 5 vêm com o pensamento ligado por padrão (no Opus 5, desligar só é permitido com effort high ou abaixo), Opus 4.8 / 4.7 exigem adaptive explícito, e modelos legados como Sonnet 4.5 / Haiku 4.5 ainda usam budget_tokens como único modo. O controle de profundidade passou para output_config: {"effort": ...}, com cinco níveis (padrão high), e mudar o effort estoura o cache do mesmo jeito que mudar o orçamento estourava. A visibilidade é governada por display: o padrão da nova geração é "omitted" (blocos de pensamento vazios), e você paga pelos tokens de pensamento inteiros de qualquer forma — meça com usage.output_tokens_details.thinking_tokens; nenhuma configuração devolve a cadeia de raciocínio bruta. Desligar o pensamento no Opus 5 tem efeitos colaterais documentados (chamadas de ferramenta escritas como texto comum, tags internas vazando na saída), então abaixar o effort é a alavanca de custo mais segura. O pensamento intercalado — raciocinar entre as chamadas de ferramenta — é automático no adaptativo, sem o velho header beta. E, quando a velocidade importa, o fast mode roda o mesmo Opus a cerca de 2,5x pelo dobro do preço (só Opus 5/4.8, alternado com /fast no Claude Code). Tudo se apoia na documentação oficial da Anthropic: Thinking, Extended thinking e Fast mode.

GPU process gone: o Claude Desktop congela — por que todas as sessões caem juntas e o que fazer

GPU process gone: o Claude Desktop congela — por que todas as sessões caem juntas e o que fazer

Você está no meio do trabalho e, de repente, o Claude Desktop congela e todas as sessões abertas do Claude Code param de uma vez; ao forçar o encerramento e tentar reabrir, às vezes o aplicativo não inicia mais — e, nessa hora, a última linha do log costuma ser a mesma: GPU process gone: { type: 'GPU', reason: 'crashed', exitCode: 101457950 }. Este artigo organiza o que esse exitCode 101457950 (ou seja, 0x060C201E) significa. Quem cai não é o Claude Code (a CLI), e sim o processo de GPU do aplicativo desktop (Electron) que hospeda a CLI. O diagnóstico é simples: basta olhar o fim de %APPDATA%\Claude\logs\main.log, e se a linha imediatamente anterior ao reinício for GPU process gone, é este problema; se nenhum dump novo apareceu em Crashpad, não foi uma falha nativa do lado da CLI. A pergunta de por que sessões sem relação nenhuma caem junto tem resposta arquitetural: no Electron/Chromium existe um único processo de GPU por aplicativo, compartilhado por todas as janelas, abas e sessões, de modo que uma única página aberta no navegador interno pode derrubar tudo o que estava em andamento — e, por ser uma propriedade estrutural, nenhuma configuração do usuário permite isolá-los. Nas issues públicas o gatilho mais frequente é o navegador interno: a #80444 registra o processo morrendo de 15 a 36 segundos depois da detecção de recursos de WebGL/WebGPU, sempre com o mesmo 0x060C201E, e a #82967 aponta a captura de screenshot de pré-visualização (capturePreviewScreenshotIfChanged) como gatilho. Mas o navegador não é o único: a #68049 relata a mesma falha acontecendo na inicialização em um ambiente ARM64. A recuperação básica é forçar o encerramento e reabrir, mas depois de uma falha de GPU o Windows pode julgar que o pacote MSIX foi modificado (appxState=2) e recusar a inicialização; nesse caso, encerre os processos residentes e só então use o Reparar. Há também relato de que o Reparar falhava sempre e de que só a remoção completa seguida de reinstalação resolveu (#82967). Quanto aos dados, o que já foi salvo permanece, mas o trabalho em execução não volta — há relato de perda até dos resultados de subagentes que rodavam em paralelo (#81698). O que dá para fazer é apenas tornar o gatilho menos provável: --disable-gpu é recusado com acesso negado na versão MSIX, e atualizar o aplicativo não corrige necessariamente. A Anthropic não publicou nenhuma explicação oficial de causa nem anúncio de correção para esse sintoma.