Imagem: YouTube
O ecossistema tecnológico é unânime: em breve, todo código será escrito por agentes de IA. Com ferramentas como Cursor, Zed, Claude Code, Aider e WindSurf transformando o panorama de desenvolvimento, uma questão crucial emerge: como devemos arquitetar nossos códigos para otimizar o trabalho com essas ferramentas de IA? Se nossos agentes de codificação vão operar nossas bases de código, precisamos projetá-las para serem eficientes em termos de tokens e contexto.
Neste artigo, exploraremos as melhores arquiteturas de código para trabalhar com ferramentas de IA e agentes inteligentes, analisando suas vantagens, limitações e aplicações práticas. Lembre-se sempre do “grande trio”: contexto, modelo e prompt – esses são os pilares que determinam seu sucesso na era da IA generativa.
Uma máxima fundamental na era da IA generativa é: se você gerencia seu contexto, gerencia seus resultados. Quando as ferramentas de IA precisam compreender seu código para auxiliar no desenvolvimento, a forma como você organiza esse código determina diretamente a qualidade do suporte que receberá.
Vamos analisar três questões fundamentais:
Como desenvolvedores experientes, sempre devemos questionar se o problema que estamos tentando resolver vale a pena. À medida que as ferramentas de codificação com IA evoluem, precisamos avaliar criticamente se a arquitetura do código realmente faz diferença.
Uma das arquiteturas mais populares, embora frequentemente mal utilizada, é a arquitetura atômica componível. Esta abordagem estrutura o código em níveis hierárquicos:
Esta arquitetura oferece alto potencial de reuso, com cada componente projetado para ser reutilizado em diferentes contextos. Existe uma clara separação de responsabilidades que facilita a compreensão por ferramentas de IA, desde que haja descrições breves de cada nível.
Originalmente popularizada por Brad Frost para projetos de front-end, esta abordagem foi adotada em toda a pilha de engenharia. É possível estender além do nível de organismos, criando “membranas” e “ecossistemas” para níveis adicionais de abstração.
Um dos maiores benefícios é que esta arquitetura é extremamente testável. Com componentes pequenos e isolados, você pode facilmente criar testes unitários precisos para cada átomo e depois compor testes mais complexos para as estruturas maiores.
A principal desvantagem é o que podemos chamar de “problema da cadeia de modificação para novos recursos”. Quando você modifica um átomo, precisa atualizar todas as moléculas e organismos que o utilizam. Isso pode se tornar rapidamente tedioso e propenso a erros.
Além disso, requer disciplina para manter a cadeia de composição apropriada. Para ferramentas de IA, isso significa que mais contexto deve ser carregado na janela de contexto para entender as interdependências entre os componentes.
A arquitetura em camadas é provavelmente a mais amplamente estabelecida e conhecida. Ela organiza o código em diretórios arbitrários que representam coleções lógicas de arquivos, como:
Essa abordagem é encontrada em praticamente qualquer base de código popular, como PostgreSQL e Redis. É dinâmica e permite escalar bem à medida que o projeto cresce.
Há uma clara separação de responsabilidades, com limites bem definidos entre as diferentes camadas. Isso facilita a adição rápida de novas funcionalidades – se precisar de uma nova API, basta ir à camada de API; se precisar de um novo modelo, vá à camada de modelos.
A principal desvantagem para ferramentas de IA é que elas precisam importar código de várias camadas para entender o contexto completo. Isso significa que sua ferramenta de IA precisa analisar arquivos de API, módulos, serviços e utilitários simultaneamente, consumindo significativamente mais tokens no processo.
Além disso, nem sempre fica claro quem está importando quem e quais são as regras de dependência entre as camadas, o que pode confundir os modelos de IA.
A arquitetura de fatia vertical emerge como uma das mais promissoras para trabalhar com ferramentas de codificação de IA. Esta abordagem organiza o código por recursos (features) em vez de camadas técnicas.
Nesta estrutura, você tem um diretório “features” que contém subdiretórios para cada funcionalidade específica do seu produto ou aplicação. Cada subdiretório de recurso contém todos os arquivos necessários para aquela funcionalidade, independentemente da camada técnica.
A principal vantagem é que tudo relacionado a um recurso está contido em um único diretório. Isso significa que você pode carregar todo o contexto necessário para trabalhar em um recurso com um único comando de importação, economizando tokens e tempo.
Para ferramentas como Claude Code, Cursor ou Aider, você pode simplesmente apontar para o diretório do recurso em que está trabalhando, e a ferramenta terá todo o contexto necessário para compreender e auxiliar no desenvolvimento daquela funcionalidade específica.
Com a arquitetura de fatia vertical, você pode preparar o contexto para sua ferramenta de IA com um único comando, economizando tokens e fornecendo exatamente o contexto necessário.
A maior desvantagem é a duplicação de código. Como você deseja manter cada recurso isolado, evita-se compartilhar código entre diferentes recursos. Isso significa que funções semelhantes podem ser duplicadas em vários diretórios de recursos.
Criar uma pasta de utilitários compartilhados vai contra o princípio desta arquitetura, pois introduziria dependências cruzadas entre os recursos. Portanto, o reuso de código é sacrificado em favor da isolação de contexto, o que pode ser difícil para desenvolvedores iniciantes e de nível médio aceitarem.
A arquitetura de pipeline é especialmente relevante para engenheiros de dados, profissionais de ML Ops e qualquer pessoa trabalhando com processamento sequencial de dados. Esta arquitetura organiza o código em:
As etapas são compostas em pipelines, que são então executados para processar os dados de forma sequencial.
Os modelos de linguagem adoram padrões, tipos e caminhos claros, o que torna esta arquitetura excelente para comunicar etapas e estágios. As ferramentas de IA podem facilmente entender como os tipos e estruturas de dados fluem de uma etapa para outra.
Além disso, esta arquitetura facilita o processamento paralelo, que é uma grande vantagem em determinados cenários.
O principal problema é que esta arquitetura não é ideal para a maioria das aplicações que não sejam orientadas a pipeline. Menos de 10% dos engenheiros constroem sistemas que se beneficiariam significativamente desta abordagem.
Quando falamos especificamente sobre a construção de agentes de IA, três estruturas se destacam:
Na arquitetura atômica para agentes, o padrão hierárquico é mantido:
Na arquitetura de fatia vertical para agentes, cada agente é tratado como um “recurso” ou “fatia” independente. Isso permite que você tenha todo o contexto necessário para um agente específico em um único diretório, facilitando o trabalho das ferramentas de IA.
Esta abordagem também facilita o versionamento rápido dos agentes – basta copiar o diretório inteiro e modificar conforme necessário para criar uma nova versão.
A abordagem de agentes de arquivo único coloca todo o código do agente em um único arquivo, mesmo que isso signifique centenas de linhas. Embora isso possa parecer um anti-padrão em outras circunstâncias, para agentes de IA oferece a vantagem de ter todo o contexto necessário em um único arquivo.
Isso permite que as ferramentas de IA leiam o arquivo completo de uma vez, compreendendo todas as funcionalidades e interdependências sem precisar navegar entre múltiplos arquivos.
Após analisar várias arquiteturas, é natural questionar: isso realmente importa? A resposta é sim, mas com ressalvas.
As ferramentas de IA estão evoluindo rapidamente e se tornando cada vez mais capazes de entender bases de código complexas. No entanto, otimizar sua arquitetura para eficiência de tokens e clareza de contexto ainda traz benefícios significativos:
Para a codificação com IA, as arquiteturas atômica e de fatia vertical parecem oferecer as melhores vantagens. Para construção de agentes de IA, adicione a arquitetura de arquivo único a essa lista.
A escolha da arquitetura ideal dependerá sempre do seu caso de uso específico, da equipe e dos objetivos do projeto. Não existe uma solução única para todos os cenários, mas compreender as vantagens e limitações de cada abordagem permitirá que você tome decisões mais informadas.
Experimente implementar algumas dessas arquiteturas em projetos menores e observe como suas ferramentas de IA respondem. Comece a pensar em termos de eficiência de contexto e otimização de tokens ao projetar suas bases de código.
As ferramentas específicas que você usa – seja Claude Code, Cursor, Aider ou qualquer outra – importam menos do que os princípios e padrões subjacentes de uma codificação eficiente com IA. Ao dominar esses princípios, você estará preparado para o futuro da engenharia de software, independentemente de quais ferramentas específicas prevalecerem.
Quer aprofundar seus conhecimentos em codificação com IA e desenvolvimento de agentes inteligentes? Experimente implementar uma arquitetura de fatia vertical em seu próximo projeto e observe a diferença na eficiência e eficácia de suas interações com ferramentas de IA!
Este artigo foi baseado no vídeo abaixo. Se preferir, você pode assistir ao conteúdo original:
A inteligência artificial está passando por uma transformação radical. Enquanto todos falam sobre construir agentes…
O desenvolvimento com inteligência artificial está revolucionando a forma como criamos aplicações, e os servidores…
O YouTube se estabeleceu como a plataforma de conteúdo mais duradoura e lucrativa da internet.…
O YouTube se tornou muito mais do que uma plataforma de entretenimento. Para profissionais e…
A inteligência artificial está redefinindo os limites do que consideramos possível. Em 2025, testemunhamos avanços…
A criação de aplicativos de inteligência artificial sempre foi considerada uma tarefa complexa, reservada apenas…