<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lucas Fogaça</title>
    <description>The latest articles on DEV Community by Lucas Fogaça (@lucas_fogaca).</description>
    <link>https://dev.to/lucas_fogaca</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4045227%2Fb022206b-6085-491d-ac65-1e41b251677b.jpg</url>
      <title>DEV Community: Lucas Fogaça</title>
      <link>https://dev.to/lucas_fogaca</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucas_fogaca"/>
    <language>en</language>
    <item>
      <title>Generative UI: o modelo decide a resposta; o produto decide os limites</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Fri, 07 Aug 2026 13:35:47 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/generative-ui-o-modelo-decide-a-resposta-o-produto-decide-os-limites-2c7e</link>
      <guid>https://dev.to/lucas_fogaca/generative-ui-o-modelo-decide-a-resposta-o-produto-decide-os-limites-2c7e</guid>
      <description>&lt;p&gt;Uma interface generativa não começa quando um modelo produz HTML. Ela começa antes: quando decidimos que parte da experiência pode mudar conforme a intenção de quem usa o produto e que parte precisa continuar sob controle explícito da aplicação.&lt;/p&gt;

&lt;p&gt;Essa distinção parece sutil, mas separa uma demonstração visual de uma arquitetura que pode sobreviver a produção. Um chat pode responder “encontrei três restaurantes”. Uma interface pode mostrar os três no mapa, explicar os filtros aplicados, indicar quais estão abertos, oferecer rotas e permitir que a pessoa refine a busca sem recomeçar a conversa. O salto não é cosmético. Ele muda como dados, regras, componentes e estados circulam pelo sistema.&lt;/p&gt;

&lt;p&gt;O artigo &lt;a href="https://boda.sh/blog/generative-ui/" rel="noopener noreferrer"&gt;Generative UI, publicado pela Boda&lt;/a&gt;, organiza bem esse espaço: a IA pode reduzir a “parede de texto” das respostas e transformar intenção em elementos de interface temporários. Mas há mais em jogo do que trocar texto por cards. A pergunta prática é: &lt;strong&gt;quanto de liberdade o modelo recebe para decidir a interface?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generative UI é uma decisão de fronteira
&lt;/h2&gt;

&lt;p&gt;Em produtos tradicionais, a maior parte da UI é decidida em tempo de desenvolvimento. A equipe define telas, fluxos, componentes, estados de erro e regras de navegação. A IA pode entrar como uma busca mais tolerante, uma camada de recomendação ou um assistente dentro de uma tela já conhecida.&lt;/p&gt;

&lt;p&gt;Com Generative UI, a entrada passa a ser frequentemente aberta: uma frase, um objetivo, uma solicitação incompleta. “Monte um roteiro para o fim de semana.” “Compare os planos que cabem no meu orçamento.” “Mostre o que mudou neste incidente.” A aplicação precisa traduzir essa intenção em algo que seja útil de olhar e de operar.&lt;/p&gt;

&lt;p&gt;Isso cria um problema de engenharia. A mesma abertura que torna a experiência flexível pode produzir uma interface inconsistente, inacessível, difícil de testar ou, no pior caso, exposta à execução de código arbitrário. Por isso, a questão não é se a IA consegue gerar uma tela. É quem continua tendo autoridade sobre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quais dados podem ser consultados e exibidos;&lt;/li&gt;
&lt;li&gt;quais ações uma pessoa pode executar a partir daquela tela;&lt;/li&gt;
&lt;li&gt;quais componentes são permitidos;&lt;/li&gt;
&lt;li&gt;como entradas e saídas são validadas;&lt;/li&gt;
&lt;li&gt;o que acontece quando o modelo erra, demora ou não sabe responder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma arquitetura de Generative UI madura não entrega essas decisões ao modelo. Ela dá ao modelo uma área de decisão clara e constrói contratos ao redor dela.&lt;/p&gt;

&lt;h2&gt;
  
  
  Os três graus de liberdade
&lt;/h2&gt;

&lt;p&gt;Uma classificação útil separa três abordagens: &lt;strong&gt;controlada&lt;/strong&gt;, &lt;strong&gt;declarativa&lt;/strong&gt; e &lt;strong&gt;aberta&lt;/strong&gt;. Elas não são rivais obrigatórias. Podem coexistir no mesmo produto. A diferença é o formato que atravessa a fronteira entre o modelo e a interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. UI controlada: o modelo pede, a aplicação monta
&lt;/h3&gt;

&lt;p&gt;Esse é o caminho mais direto para a maioria dos times. A pessoa descreve o que precisa em linguagem natural; o modelo interpreta o pedido e escolhe argumentos para ferramentas tipadas; a aplicação executa as regras de domínio; o front-end renderiza componentes que já existem.&lt;/p&gt;

&lt;p&gt;Imagine uma busca por lugares. O modelo não precisa gerar um mapa, uma lista ou um botão. Ele pode chamar uma ferramenta como &lt;code&gt;recommendPlaces&lt;/code&gt; com filtros estruturados: localização, orçamento, horário, categoria e preferência. A ferramenta consulta fontes confiáveis, aplica restrições determinísticas e devolve um resultado validado. O front-end decide se usa &lt;em&gt;cards&lt;/em&gt;, mapa, estado vazio ou lista de comparação.&lt;/p&gt;

&lt;p&gt;O ganho vem de aceitar uma entrada aberta sem abrir mão do design system. A IA interpreta a intenção; o produto preserva o repertório visual, os critérios de acessibilidade e o comportamento já testado.&lt;/p&gt;

&lt;p&gt;Essa abordagem costuma ser a melhor primeira entrega porque mantém o modelo longe de decisões que não precisam ser generativas. Ela também facilita observabilidade: é possível registrar a intenção interpretada, os argumentos escolhidos, a ferramenta chamada, os filtros realmente aplicados e o componente renderizado.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. UI declarativa: o modelo compõe, o catálogo garante
&lt;/h3&gt;

&lt;p&gt;Há casos em que escolher entre componentes prontos não basta. Um planejador de viagem, por exemplo, pode precisar montar uma introdução, uma previsão do tempo, uma estimativa de voo, uma agenda por dia e uma lista de itens. A combinação e a ordem podem variar com o objetivo da pessoa.&lt;/p&gt;

&lt;p&gt;Na abordagem declarativa, o modelo não produz código executável. Ele produz uma descrição estruturada da interface: uma árvore de componentes permitidos, suas propriedades e suas relações. O cliente interpreta essa descrição por meio de um catálogo. Cada item do catálogo possui um schema que define o que aceita e um renderer que a equipe controla.&lt;/p&gt;

&lt;p&gt;É aqui que a palavra &lt;strong&gt;contrato&lt;/strong&gt; ganha importância. O catálogo informa ao modelo o que existe; os schemas recusam estruturas inválidas; os renderers garantem que o resultado final seja feito com componentes conhecidos. A interface pode variar bastante, mas não vira um campo aberto para qualquer HTML, CSS ou JavaScript.&lt;/p&gt;

&lt;p&gt;O texto da Boda usa uma separação que ajuda a evitar confusão: há o transporte dos eventos entre servidor e cliente e há a forma como a interface é descrita. Protocolos de eventos, como AG-UI, cuidam de sinais de execução, texto, ferramentas, estado e atividades. Especificações de interface, como A2UI, descrevem os componentes e a composição. São camadas diferentes e vale mantê-las diferentes no desenho do sistema.&lt;/p&gt;

&lt;p&gt;A vantagem é a flexibilidade com portabilidade. O custo é real: é preciso manter schemas, catálogo, renderers, política de uso, versão de componentes e bons testes. A flexibilidade não desaparece; ela é deslocada para um conjunto de regras que a equipe consegue revisar.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. UI aberta: o modelo gera código, o sandbox limita o dano
&lt;/h3&gt;

&lt;p&gt;A terceira opção deixa o modelo emitir código de interface: HTML, CSS e JavaScript. Ela é sedutora porque parece eliminar o trabalho de definir catálogo e schemas. Se o pedido é novo, a IA cria algo novo.&lt;/p&gt;

&lt;p&gt;O problema é que “algo novo” também pode ser código que lê o que não deveria, se comporta de forma inesperada, quebra em navegadores diferentes, ignora acessibilidade ou cria uma tela impossível de auditar. A execução de código arbitrário no navegador não é um detalhe de implementação.&lt;/p&gt;

&lt;p&gt;Por isso, interfaces abertas tendem a usar isolamento, frequentemente em &lt;em&gt;iframes&lt;/em&gt; com sandbox. Mesmo com isolamento, continuam existindo decisões sobre permissões, comunicação com o host, cache, latência, limite de recursos, registro de versões e reversão. A ausência de um catálogo não remove a necessidade de governança; ela apenas torna essa governança mais cara.&lt;/p&gt;

&lt;p&gt;Essa abordagem pode fazer sentido para widgets efêmeros, protótipos internos, superfícies descartáveis ou tarefas muito específicas que não justificam um catálogo completo. Para fluxos centrais, transacionais ou que manipulam dados sensíveis, ela pede cuidado redobrado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Não escolha uma única abordagem para o produto inteiro
&lt;/h2&gt;

&lt;p&gt;O cenário mais plausível não é um aplicativo 100% controlado, declarativo ou aberto. É uma composição.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Controlado&lt;/strong&gt; para os fluxos que precisam de previsibilidade: pagamentos, permissões, ações destrutivas, dados regulados e tarefas repetidas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declarativo&lt;/strong&gt; para experiências em que o arranjo da informação muda conforme a intenção, mas os blocos de construção continuam sendo do produto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aberto e isolado&lt;/strong&gt; para uma necessidade temporária, específica ou experimental em que o custo de criar um componente dedicado ainda não se justifica.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ponto não é escolher a categoria mais sofisticada. É usar o menor grau de liberdade que resolve o problema de experiência. Dar liberdade demais ao modelo cria uma nova superfície de falha. Dar liberdade de menos pode reduzir a IA a um campo de busca caro. O trabalho de arquitetura está em encontrar o meio-termo que vale a pena.&lt;/p&gt;

&lt;h2&gt;
  
  
  Um roteiro de adoção que evita atalhos frágeis
&lt;/h2&gt;

&lt;p&gt;Para quem quer experimentar Generative UI sem reconstruir o produto, eu seguiria uma sequência simples:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Escolha uma intenção recorrente.&lt;/strong&gt; Comece onde as pessoas já escrevem consultas difíceis de expressar em filtros: busca, planejamento, comparação, suporte operacional ou exploração de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modele ferramentas antes da interface.&lt;/strong&gt; A primeira camada de confiança está em ferramentas com entradas e saídas tipadas, autorização e regras de domínio fora do prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reutilize componentes existentes.&lt;/strong&gt; Faça o modelo escolher dados e variações, não recriar o design system. Meça se a interpretação melhorou a tarefa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registre a decisão inteira.&lt;/strong&gt; Intenção, chamada de ferramenta, resultado validado, componente mostrado e feedback da pessoa formam uma trilha melhor para depuração do que apenas guardar o texto do chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crie um catálogo quando a composição se repetir.&lt;/strong&gt; Quando diferentes intenções começarem a pedir os mesmos blocos em arranjos variados, vale investir na camada declarativa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isole o que for realmente aberto.&lt;/strong&gt; Se gerar código for inevitável, trate a execução como conteúdo não confiável desde o primeiro dia.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  O modelo sugere; o produto responde por isso
&lt;/h2&gt;

&lt;p&gt;Generative UI desloca parte da autoria da interface para o tempo de execução. Isso pode tornar um produto mais útil porque a tela passa a se adaptar ao objetivo, e não apenas ao menu disponível. Mas adaptação não dispensa responsabilidade.&lt;/p&gt;

&lt;p&gt;O modelo pode priorizar informação, compor blocos e explicar uma decisão. A aplicação continua responsável por acesso a dados, efeitos no mundo real, transições de estado, validação, acessibilidade, telemetria e fallback. Essa divisão não diminui a IA. Ela é o que permite usá-la sem transformar cada nova interface em uma aposta.&lt;/p&gt;

&lt;p&gt;Em vez de perguntar “como fazer a IA gerar toda a tela?”, talvez a pergunta melhor seja: &lt;strong&gt;qual interface esta intenção precisa, e qual contrato impede que a flexibilidade vire risco?&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte e leitura recomendada:&lt;/strong&gt; &lt;a href="https://boda.sh/blog/generative-ui/" rel="noopener noreferrer"&gt;Generative UI — Boda&lt;/a&gt;. O artigo discute a redução da “parede de texto”, as categorias controlada, declarativa e aberta, e exemplos de composição com especificações e componentes.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ux</category>
      <category>architecture</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Como estruturar um harness avançado para agentes de IA</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Thu, 06 Aug 2026 13:38:27 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/como-estruturar-um-harness-avancado-para-agentes-de-ia-11k4</link>
      <guid>https://dev.to/lucas_fogaca/como-estruturar-um-harness-avancado-para-agentes-de-ia-11k4</guid>
      <description>&lt;p&gt;Um agente parece simples até precisar explicar como chegou a uma resposta, controlar custo e se recuperar de uma falha.&lt;/p&gt;

&lt;p&gt;O artigo &lt;a href="https://data4sci.com/blog/building-an-advanced-agentic-harness" rel="noopener noreferrer"&gt;Building an Advanced Agentic Harness&lt;/a&gt;, da Data For Science, usa uma boa metáfora: há diferença entre um piloto isolado e uma operação aérea. O modelo continua tomando decisões em cada passo; o &lt;em&gt;harness&lt;/em&gt; é a estrutura que torna o sistema observável e controlável.&lt;/p&gt;

&lt;p&gt;A proposta combina alguns blocos que merecem atenção:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas tipadas&lt;/strong&gt; para validar argumentos antes de chamadas caras ou com efeitos externos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Um plano em DAG&lt;/strong&gt; para explicitar dependências e liberar tarefas independentes para execução paralela.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memória em camadas&lt;/strong&gt; com recuperação seletiva e limite claro de contexto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orçamento e rastreamento&lt;/strong&gt; para enxergar custo, concorrência, falhas e decisões.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verificação&lt;/strong&gt; para não tratar uma resposta plausível como tarefa concluída.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ponto não é montar a maior arquitetura possível. É fazer o agente parar, checar, registrar evidências e voltar a um caminho seguro quando algo sai do esperado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhx0flsa9c9bztdnn0060.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhx0flsa9c9bztdnn0060.png" alt="Fluxograma de um harness avançado para agentes: objetivo, planejador, executor, verificador e entrega, sustentados por ferramentas tipadas, memória, orçamento e rastreamento." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para quem está saindo de um loop de ferramenta e resposta, esse fluxograma ajuda a separar o que é raciocínio do modelo do que deve ser responsabilidade da engenharia ao redor dele.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Leitura que inspirou esta análise: &lt;a href="https://data4sci.com/blog/building-an-advanced-agentic-harness" rel="noopener noreferrer"&gt;Data For Science — Building an Advanced Agentic Harness&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>devops</category>
      <category>llm</category>
    </item>
    <item>
      <title>Arquitetura de grafos para agentes de IA: do loop ao sistema confiável</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Wed, 05 Aug 2026 10:33:14 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/arquitetura-de-grafos-para-agentes-de-ia-do-loop-ao-sistema-confiavel-pi6</link>
      <guid>https://dev.to/lucas_fogaca/arquitetura-de-grafos-para-agentes-de-ia-do-loop-ao-sistema-confiavel-pi6</guid>
      <description>&lt;p&gt;Uma aplicação de IA não fica confiável porque ganhou mais agentes. Ela fica confiável quando cada etapa tem uma responsabilidade clara, critérios de saída e um caminho definido para falhas.&lt;/p&gt;

&lt;p&gt;O artigo &lt;a href="https://x.com/eng_khairallah1/status/2083131009986396282" rel="noopener noreferrer"&gt;“How to Become a Graph Architect With Zero Experience”&lt;/a&gt;, publicado por Khairallah AL-Awady no X, organiza essa ideia em um roteiro de 20 passos. A proposta central é boa: antes de desenhar uma rede de agentes, é preciso dominar um loop simples e saber verificar se ele realmente funcionou.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comece pelo loop, não pelo diagrama
&lt;/h2&gt;

&lt;p&gt;Um loop agente-executor pode ser reduzido a quatro partes: uma ação, um resultado, uma verificação e uma condição de repetição. Parece elementar, mas é aí que muitos sistemas já falham. Sem um critério objetivo de qualidade, o agente apenas produz saídas com aparência de conclusão.&lt;/p&gt;

&lt;p&gt;O verificador merece atenção especial. Em tarefas de extração, por exemplo, ele pode checar campos obrigatórios e consistência de formato. Em código, pode executar testes. Em uma publicação, pode exigir revisão humana antes do envio. Quando a checagem é fraca, repetir o loop só multiplica erros.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que muda quando o problema vira um grafo
&lt;/h2&gt;

&lt;p&gt;Há problemas que um único loop resolve bem. Outros exigem ramificações, tarefas paralelas, pontos de controle e rotas específicas de recuperação. Nesse momento, pensar em grafo ajuda: nós executam trabalho; arestas determinam o próximo passo; estado transporta a informação necessária entre as etapas.&lt;/p&gt;

&lt;p&gt;Nem todo nó precisa ser um modelo de linguagem. Essa é uma distinção prática: uma validação determinística, uma chamada de API ou uma regra de autorização normalmente deve ser código comum. Reservar o LLM para interpretação, geração e decisões que realmente dependem de linguagem reduz custo, latência e variabilidade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Padrões que resolvem problemas recorrentes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Roteador:&lt;/strong&gt; escolhe o fluxo ou especialista adequado a partir da entrada.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orquestrador e trabalhadores:&lt;/strong&gt; divide uma tarefa em subtarefas e reúne os resultados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fan-out e fan-in:&lt;/strong&gt; executa partes independentes em paralelo e consolida a resposta.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gerador e avaliador:&lt;/strong&gt; revisa uma saída contra um padrão e devolve feedback específico.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portão humano:&lt;/strong&gt; interrompe o processo antes de uma ação irreversível, como publicar, gastar ou apagar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esses padrões não são um convite para criar arquiteturas complexas por reflexo. São opções para usar quando a tarefa pede separação de responsabilidades ou controle explícito do fluxo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Confiabilidade não é um detalhe de pós-produção
&lt;/h2&gt;

&lt;p&gt;Um grafo que funcionou em uma demonstração ainda não está pronto para uso contínuo. Ele precisa de portas de validação, recuperação para falhas previsíveis, persistência de estado para retomada e rastreabilidade para explicar o que aconteceu em cada execução.&lt;/p&gt;

&lt;p&gt;Vale definir, antes de rodar o sistema, o que ocorre quando uma ferramenta não responde, quando o resultado não passa na validação ou quando é necessária uma aprovação humana. “Tentar novamente” pode ser uma rota válida; não deveria ser a única.&lt;/p&gt;

&lt;h2&gt;
  
  
  A decisão mais madura: não usar um grafo
&lt;/h2&gt;

&lt;p&gt;O ponto mais útil do roteiro é também o menos chamativo: muitas tarefas não precisam de um grafo. Se há uma única operação, um único verificador e pouca dependência entre etapas, um script ou um loop simples será mais fácil de manter e depurar.&lt;/p&gt;

&lt;p&gt;Arquitetar sistemas de agentes é escolher a menor estrutura capaz de resolver o problema com segurança. Grafos entram quando a complexidade foi conquistada — não porque o diagrama ficou bonito.&lt;/p&gt;

&lt;h2&gt;
  
  
  Um plano de prática
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Construa um loop para uma tarefa real e crie um verificador rigoroso.&lt;/li&gt;
&lt;li&gt;Desenhe a mesma tarefa como nós, arestas e estado.&lt;/li&gt;
&lt;li&gt;Marque quais nós exigem LLM e quais devem ser determinísticos.&lt;/li&gt;
&lt;li&gt;Implemente um padrão por vez: roteamento, paralelismo ou avaliação.&lt;/li&gt;
&lt;li&gt;Adicione logs, checkpoints e uma rota de falha antes de aumentar a arquitetura.&lt;/li&gt;
&lt;li&gt;Compare o resultado com uma versão simples e mantenha o grafo apenas se ele trouxer ganho mensurável.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O nome “graph architect” pode variar com a moda do momento. A habilidade permanece: transformar um processo incerto em uma sequência observável, verificável e sustentável.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Fonte e inspiração: &lt;a href="https://x.com/eng_khairallah1/status/2083131009986396282" rel="noopener noreferrer"&gt;Khairallah AL-Awady, “How to Become a Graph Architect With Zero Experience (Full Course)”&lt;/a&gt;, publicado no X em 31 de julho de 2026. Este texto é uma síntese independente do roteiro original.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Mais arquitetura, menos tokens caros ao orquestrar agentes de código</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Tue, 04 Aug 2026 12:00:46 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/mais-arquitetura-menos-tokens-caros-ao-orquestrar-agentes-de-codigo-1kd9</link>
      <guid>https://dev.to/lucas_fogaca/mais-arquitetura-menos-tokens-caros-ao-orquestrar-agentes-de-codigo-1kd9</guid>
      <description>&lt;h1&gt;
  
  
  Mais arquitetura, menos tokens caros ao orquestrar agentes de código
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Este artigo é uma leitura do fluxo compartilhado em &lt;a href="https://www.reddit.com/r/codex/comments/1vdp65s/never_run_out_of_tokens_again/" rel="noopener noreferrer"&gt;r/codex&lt;/a&gt;. Os nomes de modelos e os preços citados são os informados na publicação original e podem mudar; confira a tabela vigente antes de usar o cálculo em produção.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quando uma tarefa de código é grande, a decisão mais cara nem sempre é qual modelo usar. Muitas vezes é deixar o modelo mais caro descobrir o problema, desenhar a solução, implementar, testar e revisar tudo no mesmo contexto.&lt;/p&gt;

&lt;p&gt;O fluxo proposto no r/codex separa essas responsabilidades: um modelo forte organiza o trabalho; um agente mais barato executa a maior parte; o primeiro volta para revisar e decidir se vale uma nova rodada de delegação. A ideia não elimina o custo de tokens. Ela tenta colocá-lo onde ele muda o resultado.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Planeje antes de abrir o terminal
&lt;/h2&gt;

&lt;p&gt;O primeiro passo usa SOL xhigh para transformar a tarefa em um plano de implementação detalhado. Isso força uma resposta para perguntas que normalmente aparecem tarde demais: quais arquivos mudam, qual é o comportamento esperado, quais riscos existem, como testar e o que não deve ser alterado.&lt;/p&gt;

&lt;p&gt;Se a tarefa ainda estiver vaga, a publicação sugere uma etapa opcional de perguntas dirigidas — uma habilidade no estilo “Grill Me”. Em vez de adivinhar requisitos, o agente pergunta até ter confiança suficiente para propor a implementação.&lt;/p&gt;

&lt;p&gt;O ganho não vem de produzir um documento bonito. Vem de reduzir retrabalho. Um plano que aponta dependências, critérios de aceite e casos de falha dá ao agente executor um alvo verificável.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Comprima o contexto que não será usado
&lt;/h2&gt;

&lt;p&gt;Depois do planejamento, a recomendação é compactar a conversa. O orquestrador não precisa carregar cada tentativa, cada saída de comando e cada raciocínio intermediário para a etapa seguinte. Ele precisa preservar decisões, restrições, arquivos relevantes e o plano.&lt;/p&gt;

&lt;p&gt;Contexto grande tem dois custos: aumenta a conta e torna mais fácil o agente se prender a detalhes que já não importam. A compactação não deve apagar informação crítica; ela deve trocar um histórico longo por um estado de trabalho claro.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use o modelo caro como orquestrador
&lt;/h2&gt;

&lt;p&gt;Na execução, SOL recebe a tarefa e o plano, mas não precisa escrever todo o código. Seu papel é iniciar Luna em modo de raciocínio máximo, revisar o resultado e escolher entre duas ações: delegar uma correção com o contexto necessário ou corrigir localmente quando isso for mais barato e simples.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-m&lt;/span&gt; gpt-5.6-luna &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;'model_reasoning_effort="max"'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--ephemeral&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-s&lt;/span&gt; workspace-write &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-a&lt;/span&gt; never &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'PLANO'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A revisão deve testar se a implementação respeitou o plano, se os testes cobrem falhas reais e se a solução ficou mais complexa do que a tarefa exige. Sem esse filtro, a divisão de trabalho só distribui erro entre dois agentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meça o custo por papel, não só o total
&lt;/h2&gt;

&lt;p&gt;A publicação usa como referência US$ 0,20 por milhão de tokens de entrada e US$ 1,20 por milhão de tokens de saída para a API da Luna. Com esses valores, dá para pedir ao orquestrador um relatório separado: custo da Luna, custo do próprio SOL e uma estimativa de quanto custaria se SOL xhigh resolvesse tudo sozinho.&lt;/p&gt;

&lt;p&gt;Essa comparação evita uma armadilha comum: considerar a delegação barata só porque um agente tem preço menor. Se o executor recebe um plano ruim, precisa de muitas idas e voltas ou devolve código que exige reescrita, a economia desaparece. O número útil é o custo para entregar uma mudança correta, testada e compreensível.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que vale testar no seu projeto
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Comece com uma tarefa que tenha critérios de aceite claros e alguns testes existentes.&lt;/li&gt;
&lt;li&gt;Registre tokens e tempo por etapa: planejamento, execução, revisão e correção.&lt;/li&gt;
&lt;li&gt;Peça ao orquestrador para manter o resumo de estado após cada ciclo.&lt;/li&gt;
&lt;li&gt;Compare a taxa de retrabalho com uma execução de modelo único.&lt;/li&gt;
&lt;li&gt;Trate preços e disponibilidade de modelos como dados variáveis, não como premissas permanentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ponto central do fluxo não é prometer tokens infinitos. É reservar raciocínio caro para decisões, desenho e revisão; deixar a implementação repetível para um agente mais econômico; e medir se a divisão realmente reduz o custo de entrega.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; &lt;a href="https://www.reddit.com/r/codex/comments/1vdp65s/never_run_out_of_tokens_again/" rel="noopener noreferrer"&gt;“Never run out of tokens again?” — r/codex&lt;/a&gt;. Publicação original fornecida pelo solicitante.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Entrevistas .NET em 2026 pedem raciocínio, não definições</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Mon, 03 Aug 2026 15:00:07 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/entrevistas-net-em-2026-pedem-raciocinio-nao-definicoes-1cn4</link>
      <guid>https://dev.to/lucas_fogaca/entrevistas-net-em-2026-pedem-raciocinio-nao-definicoes-1cn4</guid>
      <description>&lt;h1&gt;
  
  
  Entrevistas .NET em 2026 pedem raciocínio, não definições
&lt;/h1&gt;

&lt;p&gt;Saber definir &lt;code&gt;async/await&lt;/code&gt;, injeção de dependência ou tracking do EF Core continua sendo necessário. Mas a pergunta que separa memorização de experiência costuma ser outra: &lt;strong&gt;o que acontece quando isso falha em produção?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O guia &lt;a href="https://codewithmukesh.com/blog/dotnet-interview-questions/" rel="noopener noreferrer"&gt;“.NET Interview Questions: The 2026 Guide”&lt;/a&gt;, de Mukesh Murugan, reúne mais de 300 perguntas e organiza o estudo por C#, ASP.NET Core, EF Core, LINQ, APIs e system design. A edição atual foi atualizada para .NET 10 e C# 14.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uma dependência scoped dentro de um singleton
&lt;/h2&gt;

&lt;p&gt;Dizer apenas que “não pode” não basta. O problema é a &lt;em&gt;captive dependency&lt;/em&gt;: o singleton dura toda a vida da aplicação e pode reter uma instância que deveria durar apenas uma requisição. Quando isso envolve um &lt;code&gt;DbContext&lt;/code&gt;, surgem riscos de estado indevido, concorrência e erros difíceis de reproduzir.&lt;/p&gt;

&lt;p&gt;Uma resposta sólida identifica os ciclos de vida, explica a consequência e propõe uma alternativa que respeite o fluxo da aplicação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando uma tela vira dezenas de consultas
&lt;/h2&gt;

&lt;p&gt;O padrão N+1 aparece quando uma consulta carrega as entidades principais e o código dispara uma nova consulta por item para acessar uma relação. Aumentar o pool de conexões não corrige a origem do problema.&lt;/p&gt;

&lt;p&gt;O caminho é observar o SQL, medir o custo e decidir se a tela precisa de projeção, &lt;code&gt;Include&lt;/code&gt;, carregamento explícito ou outra estratégia. Em entrevista, explicar essa investigação é tão importante quanto citar o nome do padrão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Um rate limiter que não acompanha o deploy
&lt;/h2&gt;

&lt;p&gt;Um limitador local pode resolver o caso de uma única instância. Em várias réplicas, cada processo conta requisições de forma independente. Antes de escolher uma ferramenta, vale declarar a premissa: o limite é local ou global? O estado precisa ser compartilhado? Qual consistência e custo são aceitáveis?&lt;/p&gt;

&lt;h2&gt;
  
  
  Como treinar respostas melhores
&lt;/h2&gt;

&lt;p&gt;Para cada cenário, experimente responder nesta ordem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Qual é a decisão padrão?&lt;/li&gt;
&lt;li&gt;Qual trade-off ou risco precisa ser considerado?&lt;/li&gt;
&lt;li&gt;Em que condição a decisão mudaria?&lt;/li&gt;
&lt;li&gt;Como você validaria a hipótese em produção?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Essa sequência mostra capacidade de decisão, comunicação e revisão de hipóteses. É mais próxima do trabalho real do que uma lista decorada de conceitos.&lt;/p&gt;




&lt;p&gt;Este artigo é uma síntese original baseada em &lt;a href="https://codewithmukesh.com/blog/dotnet-interview-questions/" rel="noopener noreferrer"&gt;“.NET Interview Questions: The 2026 Guide”&lt;/a&gt;, de Mukesh Murugan. Consulte o material original para a lista completa de perguntas, respostas, alertas e aprofundamentos.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A lacuna de produtividade da IA: acelerar código não acelera todo o trabalho</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Sun, 02 Aug 2026 18:16:51 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/a-lacuna-de-produtividade-da-ia-acelerar-codigo-nao-acelera-todo-o-trabalho-3ni8</link>
      <guid>https://dev.to/lucas_fogaca/a-lacuna-de-produtividade-da-ia-acelerar-codigo-nao-acelera-todo-o-trabalho-3ni8</guid>
      <description>&lt;p&gt;&lt;em&gt;Este texto parte de &lt;a href="https://bjorg.bjornroche.com/management/ai-productivity-gap/" rel="noopener noreferrer"&gt;“The AI productivity gap”, de Bjorn Roche&lt;/a&gt;. Os percentuais citados abaixo são um modelo ilustrativo do autor, não uma medição universal.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A IA acelera uma etapa — não o trabalho inteiro
&lt;/h2&gt;

&lt;p&gt;Há uma expectativa recorrente em empresas de tecnologia: se a IA escreve código muito mais rápido, entregas completas também deveriam surgir numa velocidade parecida. A premissa parece intuitiva, mas esbarra na composição real de um dia de engenharia.&lt;/p&gt;

&lt;p&gt;Escrever código novo é só uma parte do trabalho. Antes disso, alguém precisa entender requisitos incompletos, investigar o comportamento do sistema, decidir limites de uma solução e negociar escolhas com outras pessoas. Depois, vêm leitura, depuração, revisão, testes, integração, deploy, documentação e reuniões. A IA já ajuda em várias dessas etapas, mas sua vantagem é mais clara justamente onde o tempo total costuma ser menor: transformar uma intenção relativamente definida em código.&lt;/p&gt;

&lt;p&gt;Essa diferença entre acelerar uma atividade e acelerar o fluxo inteiro é a lacuna de produtividade da IA.&lt;/p&gt;

&lt;h2&gt;
  
  
  O modelo de Roche: 15% para sêniores, 25% para juniores
&lt;/h2&gt;

&lt;p&gt;Roche propõe um exercício simples. Para um desenvolvedor sênior, ele estima 1,5 hora diária escrevendo código novo antes da IA. Mesmo supondo que a ferramenta reduza esse trecho para meia hora — um ganho agressivo de velocidade — o total diário cai de 8 para 6,75 horas. A economia é de 1,25 hora, cerca de 15%.&lt;/p&gt;

&lt;p&gt;No cenário ilustrativo para uma pessoa júnior, mais tempo está concentrado na escrita de código: 2,75 horas antes da IA e 1 hora depois. O dia passaria de 8 para 6 horas, um ganho de 25%.&lt;/p&gt;

&lt;p&gt;Os números não devem ser tratados como benchmark. A força do exemplo está na conta: o impacto global é limitado pela fatia do processo que a ferramenta realmente acelera. Se 70% do ciclo continua exigindo interpretação, decisão, coordenação e verificação, nenhuma melhoria local de geração de código vira automaticamente uma fábrica três vezes mais rápida.&lt;/p&gt;

&lt;h2&gt;
  
  
  O gargalo é raciocínio compartilhado
&lt;/h2&gt;

&lt;p&gt;Em trabalho mais experiente, o tempo não some porque a pessoa digita depressa. Ele vai para perguntas que ainda não têm resposta pronta: qual problema vale resolver, quais dados são confiáveis, que mudança pode quebrar outra área, o que simplificar, o que explicar ao time e como validar o resultado em produção.&lt;/p&gt;

&lt;p&gt;Essas tarefas têm contexto local, consequências distribuídas e, muitas vezes, requisitos ambíguos. Uma IA pode ajudar a explorar alternativas, resumir sinais e gerar rascunhos. Ainda assim, alguém precisa reconhecer se o resumo perdeu uma condição importante, se o plano cabe na arquitetura e se a alteração é segura para os usuários.&lt;/p&gt;

&lt;p&gt;Há também um custo que costuma ficar fora dos relatórios de produtividade: conteúdo ruim produzido com IA. Uma especificação excessivamente longa, uma tarefa pouco objetiva ou uma documentação que parece completa mas esconde decisões pode transferir tempo de quem escreveu para quem precisa ler e executar. Ganho individual que aumenta o trabalho de outra pessoa não é ganho do sistema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que isso muda a conversa sobre contratação
&lt;/h2&gt;

&lt;p&gt;Se a IA ajuda mais justamente a etapa em que profissionais juniores passam proporcionalmente mais tempo, a conclusão “não precisamos mais contratar juniores” merece cuidado. O argumento de Roche é o oposto: essas pessoas podem se beneficiar bastante quando usam a IA como ferramenta de aprendizado, revisão e experimentação — não como substituta do entendimento.&lt;/p&gt;

&lt;p&gt;Uma equipe saudável continua precisando formar gente capaz de decompor problemas, pedir ajuda com precisão, revisar saídas e construir repertório. Cortar a entrada de novos profissionais pode parecer eficiente no trimestre e criar escassez de experiência no futuro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como medir produtividade sem cair na contagem de código
&lt;/h2&gt;

&lt;p&gt;Em vez de transformar velocidade de geração em meta, lideranças podem observar o fluxo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Onde o trabalho espera?&lt;/strong&gt; Requisitos, aprovações, ambientes, revisões e incidentes mostram gargalos diferentes de “falta código”.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;O tempo poupado voltou como qualidade?&lt;/strong&gt; Mais testes úteis, revisão melhor e documentação mais clara são resultados concretos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A ferramenta reduziu ou redistribuiu trabalho?&lt;/strong&gt; Compare quem gera o material com quem precisa interpretar, revisar e corrigir depois.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;O time aprendeu?&lt;/strong&gt; Entregas rápidas que ninguém consegue manter cobram juros na próxima mudança.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A IA tende a melhorar mais partes do trabalho com o tempo. Até lá, a expectativa mais útil não é um salto mágico de produtividade. É usar a velocidade adicional para encurtar ciclos de aprendizado, reduzir tarefas mecânicas e dar mais espaço ao que ainda depende de julgamento técnico e colaboração.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; &lt;a href="https://bjorg.bjornroche.com/management/ai-productivity-gap/" rel="noopener noreferrer"&gt;Bjorn Roche — The AI productivity gap&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>management</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Refatorar para gastar menos tokens</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Sat, 01 Aug 2026 16:51:36 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/refatorar-para-gastar-menos-tokens-4p7f</link>
      <guid>https://dev.to/lucas_fogaca/refatorar-para-gastar-menos-tokens-4p7f</guid>
      <description>&lt;h1&gt;
  
  
  Refatorar para gastar menos tokens
&lt;/h1&gt;

&lt;p&gt;Quando agentes escrevem software em grande escala, a dívida de design não desaparece. Ela muda de forma: além de tornar o código mais difícil de entender, aumenta a quantidade de contexto que o agente precisa consumir a cada alteração.&lt;/p&gt;

&lt;p&gt;Giles Edwards-Alexander descreve um caso particularmente útil para pensar nisso. Ele construiu, com Claude Code e Cursor, uma aplicação de cerca de 150 mil linhas — sobretudo em Rust — sem revisar sistematicamente o código produzido. A camada de acesso a dados acabou concentrada em um único arquivo de 17.155 linhas, com repetição de montagem de requisições HTTP e serialização de JSON.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A hipótese do experimento:&lt;/strong&gt; investir tokens agora em refatoração pode reduzir os tokens necessários para implementar as próximas mudanças.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  O que foi medido
&lt;/h2&gt;

&lt;p&gt;O autor definiu uma mudança representativa e a executou, com um agente novo a cada rodada, antes e depois de etapas de refatoração. Assim, evitou que um agente acumulasse conhecimento do código ao longo do caminho. Em cada ponto, registrou linhas de código, tokens de entrada e saída e tempo de execução.&lt;/p&gt;

&lt;p&gt;O resultado mais expressivo não veio de apagar código em massa. A camada de acesso a dados terminou praticamente do mesmo tamanho: 16.608 linhas. O que caiu foi o maior arquivo, de 17.155 para 3.695 linhas, depois de extrair duplicações e separar responsabilidades em arquivos menores.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Métrica&lt;/th&gt;
&lt;th&gt;Resultado&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tokens de entrada para a mesma mudança&lt;/td&gt;
&lt;td&gt;159.564 → 27.360&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redução aproximada do contexto consumido&lt;/td&gt;
&lt;td&gt;83%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linhas no maior arquivo&lt;/td&gt;
&lt;td&gt;17.155 → 3.695&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  O mecanismo importa mais que o corte
&lt;/h2&gt;

&lt;p&gt;Dividir um arquivo arbitrariamente não garante economia. Se a divisão espalhar uma responsabilidade por muitos lugares, o agente ainda precisará abrir e atravessar todos eles. O ganho observado parece depender de duas coisas: limites mais claros e um conjunto menor de arquivos relevantes para cada mudança.&lt;/p&gt;

&lt;p&gt;Essa distinção é importante. A arquitetura não reduz apenas a dificuldade humana de navegar pelo sistema; ela orienta a recuperação de contexto do agente. Em termos práticos, a refatoração ajuda quando torna mais fácil identificar onde a alteração realmente deve acontecer.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que isso muda no trabalho diário
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use arquivos gigantes como sinal.&lt;/strong&gt; Não por uma regra estética de tamanho, mas porque eles forçam o agente a ler muito contexto irrelevante.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refatore antes de delegar uma sequência de mudanças.&lt;/strong&gt; O custo inicial pode ser compensado se a área continuar recebendo trabalho.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meça uma mudança recorrente.&lt;/strong&gt; Escolha uma tarefa representativa e compare tokens, tempo e arquivos lidos antes e depois.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Não espere autonomia arquitetural.&lt;/strong&gt; No relato, os agentes precisaram de direção humana tanto para escolher quanto para aplicar várias refatorações.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Há limites para a conclusão
&lt;/h2&gt;

&lt;p&gt;Trata-se de um experimento único, em uma aplicação ainda greenfield e mantida por uma pessoa. A contagem de tokens também foi aproximada a partir de caracteres, porque a ferramenta não oferecia uma medição confiável ao vivo. E o custo total da própria refatoração não foi isolado: o autor estima apenas um teto de cinco milhões de tokens para todo o trabalho de planejamento e execução.&lt;/p&gt;

&lt;p&gt;Mesmo com essas ressalvas, o experimento oferece uma tese concreta: em desenvolvimento assistido por IA, uma boa refatoração não é só uma aposta em manutenção futura. Ela pode diminuir, já na próxima tarefa, o contexto que o agente precisa carregar para trabalhar bem.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; adaptação e comentário a partir de &lt;a href="https://martinfowler.com/articles/exploring-gen-ai/refactoring-economic-benefit.html" rel="noopener noreferrer"&gt;“The Economic Benefit of Refactoring”&lt;/a&gt;, de Giles Edwards-Alexander, publicado em MartinFowler.com em 30 de julho de 2026.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
      <category>rust</category>
    </item>
    <item>
      <title>Como encontrar problemas que valem resolver como staff engineer</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Thu, 30 Jul 2026 18:38:34 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/como-encontrar-problemas-que-valem-resolver-como-staff-engineer-3lng</link>
      <guid>https://dev.to/lucas_fogaca/como-encontrar-problemas-que-valem-resolver-como-staff-engineer-3lng</guid>
      <description>&lt;p&gt;&lt;em&gt;Este texto foi inspirado em &lt;a href="https://lalitm.com/post/find-problems-staff-engineer/" rel="noopener noreferrer"&gt;“How I Find Problems to Solve as a Staff Engineer”&lt;/a&gt;, de Lalit Maganti. Não é uma tradução: é uma leitura aplicada do método descrito pelo autor.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A transição para staff engineer não acontece quando alguém recebe problemas maiores. Ela começa quando a pessoa passa a perceber problemas antes que eles virem demandas formalizadas.&lt;/p&gt;

&lt;p&gt;Isso não significa reservar uma hora na agenda, encarar uma página em branco e tentar “pensar estrategicamente”. A prática descrita por Lalit Maganti é mais concreta: prestar atenção ao ruído cotidiano da organização, guardar os atritos e esperar até que apareça evidência suficiente para saber se existe algo relevante ali.&lt;/p&gt;

&lt;h2&gt;
  
  
  Escute problemas, não pedidos
&lt;/h2&gt;

&lt;p&gt;Times costumam chegar com uma solução já embutida: “precisamos de um botão”, “precisamos de uma integração”, “precisamos de mais um painel”. O pedido é útil como pista, mas raramente é a definição completa do problema.&lt;/p&gt;

&lt;p&gt;Uma conversa melhor começa por perguntas que expõem o contexto: o que a pessoa tenta fazer? Onde o fluxo trava? O que ela já tentou? Por que a ferramenta atual não resolve? Se uma alternativa existisse, ela realmente eliminaria o atrito?&lt;/p&gt;

&lt;p&gt;Esse tipo de escuta acontece nas reuniões normais, nas mensagens de chat, nas apresentações e nos incidentes. Quando o assunto toca a sua área, vale acompanhar um pouco mais de perto: observar o fluxo real, revisar o bug com quem o investiga ou tentar reproduzir a situação. Isso separa a necessidade do usuário da primeira solução que ele imaginou.&lt;/p&gt;

&lt;p&gt;Também ajuda conversar com quem enxerga mais longe: responsáveis por sistemas críticos, pessoas que circulam por vários times e quem recebe as consequências do seu produto. São essas pessoas que costumam notar a repetição antes de ela aparecer no roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Não transforme o primeiro sinal em projeto
&lt;/h2&gt;

&lt;p&gt;Uma solicitação urgente para um time pode ser irrelevante para o produto inteiro. A prioridade daquele grupo pode mudar na semana seguinte; o pedido pode ter surgido de uma investigação pontual; ou a solução pode atender apenas um caso muito particular.&lt;/p&gt;

&lt;p&gt;Por isso, deixar problemas em espera não é indecisão. É uma forma de coletar evidência.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O mesmo obstáculo reaparece de forma independente em outros times?&lt;/li&gt;
&lt;li&gt;Pedidos diferentes apontam para a mesma limitação?&lt;/li&gt;
&lt;li&gt;As pessoas improvisam planilhas, scripts ou atalhos para contornar o produto?&lt;/li&gt;
&lt;li&gt;O custo aparece no trabalho diário, e não só na opinião de quem pediu a mudança?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não há um único mecanismo correto para isso. Pode ser uma nota, uma lista de hipóteses, tickets marcados ou uma rotina curta de revisão. O importante é não apagar problemas não resolvidos antes que eles possam se repetir, mudar de forma ou se revelar parte de algo maior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Procure a forma comum
&lt;/h2&gt;

&lt;p&gt;O caso contado por Maganti no Perfetto ilustra bem a diferença entre acumular pedidos e entender o problema. Vários times pediam pequenos ajustes na interface: manter itens fixos, abrir uma visualização já ampliada, criar agregações próprias. À primeira vista, eram funcionalidades distintas.&lt;/p&gt;

&lt;p&gt;O padrão por trás delas era outro: cada time queria adaptar a ferramenta ao próprio fluxo sem impor essa adaptação a todos os demais. A resposta não precisava ser uma lista de recursos sob medida; podia ser uma forma de extensão.&lt;/p&gt;

&lt;p&gt;Essa etapa exige cuidado. Uma explicação elegante para vários pedidos ainda é uma hipótese, não uma confirmação. Em outro exemplo do autor, uma proposta de cache parecia conectar dois problemas, mas o protótipo mostrou que eles precisavam de soluções diferentes. A hipótese foi dividida antes de virar uma arquitetura difícil de sustentar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Teste a hipótese antes de comprometer o roadmap
&lt;/h2&gt;

&lt;p&gt;O próximo passo depende de risco, custo e grau de certeza. Uma melhoria pequena e reversível pode ser feita logo. Uma ideia ainda nebulosa pede um protótipo descartável, que revele limites técnicos e dê aos usuários algo concreto para contestar. Uma iniciativa maior pede RFC, conversas com os times afetados e tempo para refinar a proposta.&lt;/p&gt;

&lt;p&gt;O ponto não é convencer os outros a qualquer custo. É tentar derrubar a própria ideia cedo. Se a demanda não se sustenta, se o custo técnico é alto demais ou se o momento da organização não é aquele, interromper ou estacionar o trabalho é um bom resultado.&lt;/p&gt;

&lt;p&gt;Quando a hipótese resiste, quem a identificou não precisa necessariamente implementá-la. Encontrar, enquadrar e validar um problema já pode mudar a direção do time. Essa é uma das formas mais úteis de influência técnica: melhorar a qualidade das decisões antes que a implementação comece.&lt;/p&gt;

&lt;h2&gt;
  
  
  O efeito acumulado
&lt;/h2&gt;

&lt;p&gt;Resolver problemas reais cria confiança. Pessoas que foram ouvidas voltam mais cedo na próxima vez; líderes passam a considerar sua avaliação com mais peso; conexões entre áreas ficam mais fáceis de perceber. O ciclo melhora tanto a capacidade de execução quanto a leitura do que merece ser executado.&lt;/p&gt;

&lt;p&gt;Para quem mira uma atuação de staff, a prática pode começar de modo simples: em vez de responder imediatamente a cada pedido, registre o atrito, entenda o trabalho que ele interrompe e observe se ele reaparece. O problema certo quase nunca se anuncia com um ticket perfeito. Ele aparece aos poucos, em lugares diferentes, até que a forma comum fique difícil de ignorar.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; &lt;a href="https://lalitm.com/post/find-problems-staff-engineer/" rel="noopener noreferrer"&gt;Lalit Maganti, “How I Find Problems to Solve as a Staff Engineer”&lt;/a&gt; (25 jul. 2026).&lt;/p&gt;

</description>
      <category>career</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Como o ChatGPT reduz custo e latência no loop de agentes</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Thu, 30 Jul 2026 12:08:17 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/como-o-chatgpt-reduz-custo-e-latencia-no-loop-de-agentes-1a9d</link>
      <guid>https://dev.to/lucas_fogaca/como-o-chatgpt-reduz-custo-e-latencia-no-loop-de-agentes-1a9d</guid>
      <description>&lt;p&gt;Quando um agente demora ou fica caro, é tentador olhar apenas para o modelo. Só que uma tarefa como “encontre a regressão, corrija e rode os testes” depende de um sistema inteiro: contexto, execução de ferramentas, transporte de rede, tokenização, filtros de segurança, roteamento e GPUs.&lt;/p&gt;

&lt;p&gt;O artigo da ByteByteGo, &lt;a href="https://blog.bytebytego.com/p/how-chatgpt-optimizes-its-agent-loop" rel="noopener noreferrer"&gt;How ChatGPT Optimizes its Agent Loop&lt;/a&gt;, organiza esse sistema em três camadas — &lt;em&gt;harness&lt;/em&gt;, API e inferência — e oferece uma ideia útil para quem constrói agentes: quase toda otimização relevante evita refazer trabalho que o sistema já fez.&lt;/p&gt;

&lt;h2&gt;
  
  
  O loop de um agente tem três camadas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Harness:&lt;/strong&gt; mantém o histórico, monta o contexto, interpreta chamadas de ferramenta, aplica políticas de aprovação e devolve os resultados ao modelo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API:&lt;/strong&gt; recebe a conversa estruturada, autentica, aplica limites, tokeniza o conteúdo e encaminha a requisição.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inferência:&lt;/strong&gt; executa o modelo nos aceleradores, preserva o estado necessário para a geração e produz os próximos tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma única tarefa pode repetir esse ciclo muitas vezes. Um segundo extra em cada chamada deixa de ser detalhe quando há dezenas de ferramentas, resultados longos e novas rodadas de raciocínio.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. No harness, transmita apenas o que mudou
&lt;/h2&gt;

&lt;p&gt;Em um fluxo HTTP sem estado, cada rodada tende a reenviar instruções, schemas de ferramentas e todo o histórico. A ByteByteGo descreve o uso de WebSockets persistentes e requisições incrementais: depois da primeira chamada, o cliente pode enviar o resultado novo de uma ferramenta e uma referência à resposta anterior. A conexão e o servidor já conhecem o resto.&lt;/p&gt;

&lt;p&gt;O mesmo princípio vale para o cache de prompt. O cache só é reaproveitado quando o prefixo é idêntico token a token. Por isso, ordenar definições de ferramentas de forma determinística e tratar o histórico como uma sequência append-only é mais do que capricho de implementação: muda o custo de cada rodada.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Menos ferramentas no contexto, mais ferramentas sob demanda
&lt;/h2&gt;

&lt;p&gt;Carregar centenas de schemas de integração em toda chamada consome contexto, mesmo quando quase nenhum será usado. Uma alternativa descrita no artigo é deixar no prompt apenas as ferramentas centrais e uma busca de ferramentas. Quando o agente precisa de algo específico, procura o catálogo e recebe a definição relevante.&lt;/p&gt;

&lt;p&gt;Há um detalhe importante: nessa situação, simplicidade pode vencer sofisticação. O exemplo usa busca lexical BM25 para recuperar ferramentas a partir de suas descrições, em vez de acrescentar outra camada de embeddings ao caminho crítico.&lt;/p&gt;

&lt;p&gt;Outra redução de rodadas é o &lt;em&gt;Code Mode&lt;/em&gt;: em vez de emitir várias chamadas independentes e esperar o resultado de cada uma, o modelo escreve um pequeno programa que as executa, paraleliza o que puder e devolve ao contexto só o resultado consolidado. Isso reduz tanto latência quanto ruído acumulado na conversa.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Na API, não retokenize a conversa inteira
&lt;/h2&gt;

&lt;p&gt;Tokenização é trabalho linear sobre o texto. Se a API retokeniza todo o histórico a cada resultado de ferramenta, ela relê milhares de tokens para acrescentar poucas linhas. Mantendo a conversa tokenizada em memória no lado do servidor, a API tokeniza o delta e o anexa ao estado existente.&lt;/p&gt;

&lt;p&gt;O artigo também destaca uma forma pragmática de diminuir o tempo até o primeiro token: iniciar verificações de segurança em paralelo à inferência. Se os controles terminam antes de o resultado precisar ser liberado, o usuário não paga duas vezes pelo tempo de espera. O requisito, naturalmente, é preservar a política de bloqueio ou retenção caso a verificação falhe.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Na inferência, proteja o estado que já foi calculado
&lt;/h2&gt;

&lt;p&gt;Na camada de GPUs, o roteamento não deve olhar apenas para a fila. Ele também deve tentar levar a próxima rodada de uma conversa para uma máquina que ainda guarda seu estado. Mandá-la para outra máquina pode obrigar o sistema a reconstruir um cache que já existia.&lt;/p&gt;

&lt;p&gt;Esse estado é o &lt;strong&gt;KV cache&lt;/strong&gt;, usado pelo transformer para não recalcular toda a atenção a cada token. Como ele cresce com o contexto e com o número de conversas concorrentes, políticas de retenção e transferência precisam ser guiadas por traços reais de uso, não por intuição.&lt;/p&gt;

&lt;p&gt;O artigo cita ainda duas técnicas conhecidas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Decodificação especulativa:&lt;/strong&gt; um modelo menor propõe vários tokens; o modelo maior os verifica em paralelo e aceita os corretos, sem alterar a qualidade da saída.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separação entre prefill e decode:&lt;/strong&gt; processar o prompt inteiro e gerar token a token são cargas diferentes. Separá-las permite configurar recursos para o gargalo de cada fase.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A métrica certa é custo por tarefa concluída
&lt;/h2&gt;

&lt;p&gt;O ponto mais útil não é uma técnica isolada. É observar a cadeia inteira: um prefixo estável ajuda o cache do prompt; o cache reduz trabalho na API e na GPU; uma ferramenta descoberta sob demanda evita contexto inútil; uma execução em lote corta voltas no loop.&lt;/p&gt;

&lt;p&gt;Para quem opera agentes, a pergunta prática é: &lt;strong&gt;qual trabalho este loop está repetindo?&lt;/strong&gt; Meça com tráfego parecido com o de produção, preserve estado quando for seguro e elimine recomputação antes de adicionar complexidade. A soma dessas pequenas decisões é que reduz latência e custo por tarefa que realmente chega ao fim.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; &lt;a href="https://blog.bytebytego.com/p/how-chatgpt-optimizes-its-agent-loop" rel="noopener noreferrer"&gt;ByteByteGo — How ChatGPT Optimizes its Agent Loop: Harness, API, and Inference&lt;/a&gt; (29 jul. 2026). Este texto é uma análise original baseada no artigo, não uma reprodução.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>architecture</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A melhor priorização é não priorizar</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Thu, 30 Jul 2026 11:14:56 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/a-melhor-priorizacao-e-nao-priorizar-3k3p</link>
      <guid>https://dev.to/lucas_fogaca/a-melhor-priorizacao-e-nao-priorizar-3k3p</guid>
      <description>&lt;p&gt;Há uma pergunta que consome uma quantidade desproporcional de energia em times de produto: &lt;em&gt;qual é a próxima prioridade?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ela parece inevitável quando entram em disputa pedidos de clientes, dívida técnica, confiabilidade, redução de custos e uma nova frente de receita. No artigo &lt;a href="https://staysaasy.com/strategy/2026/07/16/the-best-prioritization-is-no-prioritization.html" rel="noopener noreferrer"&gt;“The Best Prioritization Is No Prioritization”&lt;/a&gt;, o investidor e operador do Stay SaaSy propõe uma inversão útil: em muitos casos, o problema não é escolher melhor. É depender demais da escolha.&lt;/p&gt;

&lt;h2&gt;
  
  
  Priorizar não substitui capacidade de execução
&lt;/h2&gt;

&lt;p&gt;Frameworks como RICE e Kano podem dar vocabulário para uma conversa, mas não eliminam as incertezas que importam. Alcance, esforço e impacto frequentemente são estimativas frágeis, especialmente em mercados que mudam rápido e em produtos com poucos clientes. Depois que o time segue uma direção, também não existe um experimento paralelo que prove que aquela foi a escolha ótima.&lt;/p&gt;

&lt;p&gt;O custo menos visível é o da própria rotina de repriorização: reuniões, planilhas, alinhamentos e mudanças de contexto. Quando a organização consegue entregar pouco, cada decisão vira uma disputa de alto risco. Quando consegue entregar mais, ela pode testar mais hipóteses e aprender com o uso real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primeiro movimento: construir mais rápido
&lt;/h2&gt;

&lt;p&gt;A tese não é abandonar o julgamento. É deslocar parte do esforço gasto discutindo o backlog para remover atritos da entrega. Ciclos de planejamento podem ser menores; o tempo liberado pode ir para melhorar ferramentas, reduzir bloqueios, dar autonomia aos times e colocar trabalho em produção.&lt;/p&gt;

&lt;p&gt;Velocidade não torna qualquer ideia boa. Ela diminui o preço dos erros e aumenta a quantidade de sinais que o produto devolve. Um time que lança, mede e ajusta aprende mais sobre sua própria prioridade do que um time que prolonga a discussão antes de construir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Segundo movimento: tirar comparações impossíveis da mesa
&lt;/h2&gt;

&lt;p&gt;Outro ponto forte do texto é a defesa de equipes duráveis, com missões claras. Em vez de deslocar pessoas continuamente entre “o produto novo”, “o produto que mais gera suporte” e “a área com problema de escala”, cada grupo permanece responsável por um domínio.&lt;/p&gt;

&lt;p&gt;Isso transforma comparações entre objetivos incompatíveis em escolhas dentro de um contexto. Um time de produto principal pode discutir se reduz chamados, melhora a confiabilidade, entrega uma funcionalidade pedida ou corta custo operacional. Ainda há trade-offs, mas eles são mais concretos e mais próximos de dados de clientes, operação e finanças.&lt;/p&gt;

&lt;p&gt;A coordenação entre áreas não desaparece. Ela muda de forma: em vez de trocar prioridade toda semana, a empresa toma decisões de capacidade com mais cadência — ampliar, reduzir, dividir ou encerrar uma equipe. São decisões mais lentas, mas justamente por isso reduzem o vai-e-volta que corrói foco.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que vale testar na prática
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meça o tempo gasto para decidir.&lt;/strong&gt; Se o planejamento vira um projeto próprio, há um sinal de atrito organizacional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separe problemas de prioridade de problemas de fluxo.&lt;/strong&gt; Atrasos podem vir de dependências, falta de clareza, ambientes instáveis ou excesso de trabalho em andamento.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dê missões persistentes aos times.&lt;/strong&gt; Contexto acumulado e responsabilidade contínua costumam valer mais do que realocações frequentes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use decisões de capacidade para mudanças maiores.&lt;/strong&gt; Quando uma frente precisa crescer ou parar, trate isso como escolha explícita de recursos, não como um remendo semanal no backlog.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“Não priorizar” não é seguir uma lista ao acaso. É desenhar uma operação em que velocidade, foco e aprendizado reduzem a necessidade de arbitrar toda decisão como se fosse única. A pergunta deixa de ser “qual item vence agora?” e passa a ser “o que está impedindo cada time de avançar bem no seu domínio?”.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt; &lt;a href="https://staysaasy.com/strategy/2026/07/16/the-best-prioritization-is-no-prioritization.html" rel="noopener noreferrer"&gt;The Best Prioritization Is No Prioritization, Stay SaaSy (16 jul. 2026)&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Como pesquisar temas técnicos com IA sem terceirizar o entendimento</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Wed, 29 Jul 2026 12:09:51 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/como-pesquisar-temas-tecnicos-com-ia-sem-terceirizar-o-entendimento-1mjm</link>
      <guid>https://dev.to/lucas_fogaca/como-pesquisar-temas-tecnicos-com-ia-sem-terceirizar-o-entendimento-1mjm</guid>
      <description>&lt;p&gt;Uma resposta fluente não é o mesmo que entendimento. Em temas técnicos, a IA é mais útil quando ajuda a transformar uma dúvida vaga em uma investigação que você consegue refazer sem ela.&lt;/p&gt;

&lt;p&gt;A ideia vem de &lt;a href="https://www.0xkato.xyz/how-to-research-technical-topics-with-ai" rel="noopener noreferrer"&gt;“How to Research Technical Topics With AI”&lt;/a&gt;, de 0xkato. O artigo descreve um processo usado para estudar como LLMs funcionam: a IA sugere termos, dependências, fontes e críticas; a pessoa abre as referências, testa as explicações e escreve a síntese.&lt;/p&gt;

&lt;p&gt;O ponto não é reduzir o uso de IA por princípio. É colocá-la no lugar certo do processo.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Comece por uma pergunta que caiba numa investigação
&lt;/h2&gt;

&lt;p&gt;“Como LLMs funcionam?” abre assuntos demais: treinamento, tokenização, arquitetura, hardware, inferência, alinhamento e produto. Uma pergunta ampla costuma render uma visão geral convincente, mas pouco útil para explicar qualquer parte com precisão.&lt;/p&gt;

&lt;p&gt;Em vez disso, recorte o mecanismo. Por exemplo: o que acontece entre a entrada de um prompt e a previsão do próximo token? O recorte cria limites e uma sequência de estudo. Também deixa explícito o que ficou de fora.&lt;/p&gt;

&lt;p&gt;A IA pode ajudar aqui ao apontar ambiguidades, listar conceitos prévios e sugerir uma ordem de dependências. Isso é um mapa inicial, não uma resposta final.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Descubra os termos antes de buscar explicações
&lt;/h2&gt;

&lt;p&gt;Muitas vezes sabemos descrever a confusão, mas não sabemos o nome técnico dela. Perguntas como “como o modelo sabe qual palavra veio antes?” levam a termos como codificações posicionais, posições relativas e RoPE. Com a terminologia certa, papers, documentação e código deixam de ser uma busca aleatória.&lt;/p&gt;

&lt;p&gt;Também vale perguntar ao modelo o que esperar de cada referência antes de abri-la. Um paper pode mostrar como uma ideia foi formulada; a documentação pode mostrar uma implementação atual; o código pode esclarecer o detalhe que uma visão geral omite. Ainda assim, cada referência precisa ser lida no contexto.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Estude uma peça por vez
&lt;/h2&gt;

&lt;p&gt;Depois de mapear dependências, resista à tentação de pedir que a IA explique o sistema inteiro. Escolha uma parte e só avance quando conseguir dizer o que entra nela, o que acontece e o que sai.&lt;/p&gt;

&lt;p&gt;O artigo usa a atenção multi-head como exemplo. A imagem de que um vetor é “dividido em pedaços” para cada cabeça é memorável, mas pode induzir ao erro. A descrição mais precisa é que cada cabeça usa projeções aprendidas para Queries, Keys e Values. Implementações podem agrupar operações por eficiência; isso não transforma as cabeças em fatias semânticas predefinidas do vetor original.&lt;/p&gt;

&lt;p&gt;Uma boa pergunta para a IA é: “o que está tecnicamente errado nesta explicação, o que é uma simplificação razoável e onde ela deixa de ser segura?” Peça crítica, não uma reescrita imediata. Se o modelo substitui seu texto antes de você entender o problema, fica fácil aceitar a frase nova sem reparar a lacuna.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Mantenha evidência e explicação separadas
&lt;/h2&gt;

&lt;p&gt;Para cada parte estudada, registre duas coisas: a afirmação técnica e a fonte; depois, sua explicação mais simples para aquela ideia. Elas cumprem funções diferentes.&lt;/p&gt;

&lt;p&gt;O modelo mental permite que alguém acompanhe a intuição. A fonte define o que essa intuição representa — e os seus limites. Essa separação evita transformar uma simplificação útil numa afirmação literal sobre todo modelo ou toda implementação.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. O chat não é a fonte
&lt;/h2&gt;

&lt;p&gt;Um modelo pode indicar um paper, uma documentação, um benchmark ou uma implementação. Não deve ocupar o lugar deles. Para uma afirmação importante, abra a referência, encontre a passagem, leia o entorno e confira se o autor está mesmo defendendo a tese que você pretende usar.&lt;/p&gt;

&lt;p&gt;Verifique também idade e contexto. O transformer original, um LLM decoder-only atual e uma implementação específica são relacionados, mas não intercambiáveis. Uma explicação pode combinar gerações de arquitetura sem avisar. Suas notas precisam preservar essa diferença.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Tente derrubar a própria explicação
&lt;/h2&gt;

&lt;p&gt;A primeira explicação que parece fazer sentido é justamente a que merece ser pressionada. Pergunte: onde esse modelo mental falha? Qual palavra está forte demais? Estou descrevendo algo que ocorre em todos os casos ou uma implementação comum?&lt;/p&gt;

&lt;p&gt;Isso muda frases fáceis, como “as cabeças de atenção se especializam”, para formulações mais cautelosas quando a evidência pede. Alguns padrões de atenção podem ser reconhecíveis; isso não prova que cada cabeça tenha uma função limpa e fixa. A mesma cautela vale para expressões como “a rede feed-forward armazena conhecimento” ou “o modelo aprende a raciocinar”.&lt;/p&gt;

&lt;p&gt;Para buscar objeções, não dependa da mesma conversa que produziu a explicação. Troque os termos de busca, procure trabalhos posteriores e críticas, consulte outra ferramenta ou peça leitura a alguém que não acompanhou o raciocínio inicial.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Feche o chat e reconstrua o assunto
&lt;/h2&gt;

&lt;p&gt;O teste mais útil vem sem a interface aberta. Tente explicar o mecanismo numa página em branco. Se você consegue nomear dois componentes vizinhos, mas não consegue dizer o que mudou entre um e outro, encontrou uma lacuna específica. Volte à fonte naquele ponto.&lt;/p&gt;

&lt;p&gt;Escrever com suas palavras não é apenas a etapa de divulgação. É parte da pesquisa. Uma explicação pode parecer óbvia enquanto está na tela e desaparecer quando você tenta reconstruí-la sem apoio.&lt;/p&gt;

&lt;p&gt;Use a IA novamente na edição, quando já houver uma estrutura, notas verificadas, modelos mentais e limites claros. Um chat de pesquisa contém hipóteses, becos sem saída e fontes repetidas; transformar a conversa inteira em artigo pode fazer esse material aparecer como conclusão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Uma regra simples
&lt;/h2&gt;

&lt;p&gt;Use IA para recortar a pergunta, encontrar vocabulário, localizar fontes, testar explicações e expor pontos fracos. Use fontes para sustentar as afirmações. Use sua própria reconstrução para verificar se houve aprendizado.&lt;/p&gt;

&lt;p&gt;O resultado pode ser menos imediato do que copiar uma resposta bem escrita. Em troca, você ganha uma explicação que sabe defender, adaptar e corrigir.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Leitura de referência:&lt;/strong&gt; &lt;a href="https://www.0xkato.xyz/how-to-research-technical-topics-with-ai" rel="noopener noreferrer"&gt;How to Research Technical Topics With AI&lt;/a&gt;, por 0xkato.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>education</category>
    </item>
    <item>
      <title>IA está ampliando o que cabe em cada função no trabalho</title>
      <dc:creator>Lucas Fogaça</dc:creator>
      <pubDate>Tue, 28 Jul 2026 20:47:56 +0000</pubDate>
      <link>https://dev.to/lucas_fogaca/ia-esta-ampliando-o-que-cabe-em-cada-funcao-no-trabalho-1bkg</link>
      <guid>https://dev.to/lucas_fogaca/ia-esta-ampliando-o-que-cabe-em-cada-funcao-no-trabalho-1bkg</guid>
      <description>&lt;p&gt;A IA não está apenas acelerando tarefas dentro de uma função. Ela está tornando mais comum que pessoas assumam partes do trabalho que antes eram encaminhadas a outra área.&lt;/p&gt;

&lt;p&gt;Essa é a principal leitura de &lt;a href="https://openai.com/index/how-ai-is-expanding-what-people-do-at-work/" rel="noopener noreferrer"&gt;uma nova análise da OpenAI&lt;/a&gt;, baseada em mais de 800 mil mensagens de usuários do ChatGPT nos Estados Unidos. O estudo acompanha uso profissional em tempo real e procura responder a uma pergunta mais interessante do que “quais tarefas a IA executa?”: &lt;em&gt;quem passa a executá-las?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que os dados mostram
&lt;/h2&gt;

&lt;p&gt;Entre todas as mensagens relacionadas ao trabalho, 16,8% tratavam de atividades associadas a outra ocupação. Quando a análise exclui tarefas genéricas — como escrever, resumir e agendar, presentes em muitas profissões — o número sobe para &lt;strong&gt;43,5%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Isso descreve um deslocamento prático. Um pequeno empresário pode redigir uma peça de divulgação, revisar um contrato ou fazer uma análise financeira básica. Um vendedor pode explorar dados de clientes sem esperar uma análise formal. Um profissional de marketing pode investigar um problema simples no site antes de acionar desenvolvimento.&lt;/p&gt;

&lt;p&gt;Não significa que especialistas deixaram de ser necessários. Significa que a primeira resposta a um problema pode acontecer mais perto de onde ele apareceu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nem toda tarefa atravessa áreas do mesmo modo
&lt;/h2&gt;

&lt;p&gt;Marketing e engenharia são os campos cujas tarefas aparecem com mais frequência nas mensagens de profissionais de outras áreas. Cálculos financeiros e solução de problemas tecnológicos ficaram entre as três tarefas externas mais comuns em todos os outros sete grupos ocupacionais observados.&lt;/p&gt;

&lt;p&gt;O padrão também muda conforme a profissão. Designers recorrem bastante a tarefas de fora de sua ocupação: 35,2% de suas mensagens se enquadram nessa categoria. Já tarefas de design aparecem pouco em outras áreas, apenas 1,7% das mensagens. Engenharia apresenta quase o movimento inverso: 18,5% das mensagens de engenheiros envolvem tarefas externas, mas tarefas de engenharia representam 7,4% das mensagens de profissionais de outros campos.&lt;/p&gt;

&lt;p&gt;Marketing se espalha nas duas direções: 24,3% das mensagens de profissionais de marketing são sobre tarefas de outras ocupações, e tarefas de marketing correspondem a 8,9% das mensagens de pessoas em outros campos, a maior parcela externa do recorte.&lt;/p&gt;

&lt;h2&gt;
  
  
  Empresas menores têm uma razão prática para usar IA assim
&lt;/h2&gt;

&lt;p&gt;Em organizações grandes, há equipes especializadas, fluxos estabelecidos e mais opções para encaminhar uma demanda. Em negócios pequenos, quem está diante do problema tende a precisar resolvê-lo.&lt;/p&gt;

&lt;p&gt;Entre usuários médios, a participação de tarefas de fora da ocupação caiu de 18,9% em espaços de trabalho com 2 a 5 assentos para 16,3% em organizações com mais de 100 assentos. A OpenAI ressalta que esse padrão não aparece da mesma forma entre os usuários mais intensivos, que podem já ter rotinas de IA mais estáveis.&lt;/p&gt;

&lt;h2&gt;
  
  
  O ponto não é transformar todos em generalistas
&lt;/h2&gt;

&lt;p&gt;O ganho está em reduzir a espera e melhorar a qualidade da primeira tentativa. A pessoa que entende o contexto pode investigar, estruturar uma hipótese, preparar material e chegar ao especialista com uma demanda melhor definida.&lt;/p&gt;

&lt;p&gt;Para as empresas, a consequência é menos sobre rebatizar cargos e mais sobre redesenhar o trabalho: definir quais decisões podem ser apoiadas por IA, quais exigem revisão especializada e como registrar o que funcionou. Descrições de cargo costumam mudar depois. Os hábitos de trabalho já estão mudando antes.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Fonte: &lt;a href="https://openai.com/index/how-ai-is-expanding-what-people-do-at-work/" rel="noopener noreferrer"&gt;OpenAI, “How AI is expanding what people do at work”&lt;/a&gt;. Os dados se referem a mensagens de usuários do ChatGPT nos Estados Unidos e descrevem padrões de uso, não uma medida direta de desempenho ou substituição de profissionais.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>career</category>
    </item>
  </channel>
</rss>
