Tudo o Que Eu Sabia Sobre Codificação com IA Estava Errado

AAI LABS
Computing/SoftwareInternet Technology

Transcript

00:00:00Você já conhece esses frameworks de codificação com IA como Beemad,
00:00:03Speckit e outros,
00:00:04mas esses não são os únicos.
00:00:06Existem centenas de pessoas experimentando e lançando seus próprios fluxos de trabalho,
00:00:09mas quando você os experimenta,
00:00:10perceberá que muitas vezes eles não conseguem cumprir suas promessas.
00:00:13Não é porque seus métodos são ruins,
00:00:15é porque eles não se adequam ao seu caso de uso específico.
00:00:18Quando construímos aplicativos,
00:00:19na maioria das vezes criamos nossos próprios fluxos de trabalho em vez de depender de fluxos prontos.
00:00:23Isso ocorre porque os fluxos de trabalho devem ser construídos em torno do seu caso de uso específico e só funcionam se estiverem alinhados com o projeto que você está tentando construir.
00:00:30Então,
00:00:30como você constrói um fluxo de trabalho para o seu próprio processo?
00:00:32Para isso, você precisa conhecer certos princípios.
00:00:34Estes são os princípios que todos os frameworks usam de uma forma ou de outra.
00:00:38Antes de discutir os princípios principais,
00:00:40é essencial que você saiba o que está dentro da janela de contexto dessas ferramentas de IA.
00:00:44É realmente importante,
00:00:45pois gerenciar o contexto é basicamente o que esses frameworks fazem.
00:00:48A janela de contexto é basicamente a quantidade de informação que o modelo pode lembrar de uma só vez.
00:00:53Qualquer coisa que saia da janela de contexto do modelo sai de sua memória de trabalho,
00:00:57e ele não tem como recuperá-la.
00:00:59Os modelos têm uma janela de contexto limitada.
00:01:00Por exemplo,
00:01:01os modelos Anthropic têm uma janela de contexto de 200 mil tokens,
00:01:04e os modelos Gemini têm 1 milhão.
00:01:06Embora esses possam parecer números realmente grandes em termos das mensagens que você envia,
00:01:10na verdade não são tão enormes,
00:01:11porque nessas ferramentas de IA,
00:01:13a janela de contexto não consiste apenas do seu prompt de sistema e mensagens do usuário,
00:01:17mas também inclui muitas outras coisas como suas mensagens anteriores,
00:01:20arquivos de memória,
00:01:21ferramentas,
00:01:21chamadas MCP e assim por diante.
00:01:23Você precisa aprender a aproveitar ao máximo esse espaço de trabalho limitado,
00:01:26para que quando você construir seus fluxos de trabalho,
00:01:28o modelo faça exatamente o que você quer que ele faça.
00:01:30Estarei usando o Claude Code como minha ferramenta principal de codificação ao longo do vídeo,
00:01:34mas você pode construir seu fluxo de trabalho com qualquer plataforma,
00:01:37pois todas têm as ferramentas necessárias para esses princípios.
00:01:39O princípio mais importante e a chave para qualquer design de fluxo de trabalho é a divulgação progressiva.
00:01:44Isso significa revelar ao LLM apenas o que importa,
00:01:46e manter a atenção do modelo focada no que é realmente necessário agora,
00:01:50em vez de preencher a janela de contexto com tudo o que ele possa precisar no futuro.
00:01:54Agora,
00:01:55modelos mais avançados como o Sonnet 4.5 têm um recurso de edição de contexto integrado,
00:02:00onde eles podem entender o que é ruído e tentar filtrá-lo por conta própria,
00:02:04e usam comandos grep para restringir o que você quer.
00:02:07Mas isso sozinho não é suficiente.
00:02:08Quando damos instruções vagas,
00:02:10mesmo esses modelos mais novos carregam muitas coisas que não são necessárias e poluem a janela.
00:02:14Em vez de pedir ao Claude para corrigir o erro no seu backend,
00:02:18é melhor pedir que ele verifique os endpoints um por um,
00:02:20em vez de pedir para corrigir tudo de uma vez.
00:02:23O recurso de habilidades no Claude agora é de código aberto e todas as ferramentas podem usá-lo.
00:02:27As habilidades são praticamente a personificação da divulgação progressiva.
00:02:29Sua descrição fornece informações suficientes para que sua plataforma de codificação com IA saiba quando cada habilidade deve ser usada sem carregar tudo no contexto.
00:02:38Um grande erro que as pessoas cometem é usar MCPs para tudo.
00:02:41Você só deve usar MCPs quando dados externos forem necessários e usar habilidades para todo o resto.
00:02:46O segundo princípio igualmente importante é que informações não necessárias agora não devem estar na janela de contexto.
00:02:52Para conseguir isso,
00:02:53as ferramentas usam anotações estruturadas.
00:02:55E podemos usar isso a nosso favor fornecendo à sua ferramenta de IA arquivos externos que ela pode usar para documentar quaisquer decisões,
00:03:01problemas ou débito técnico.
00:03:03Essa abordagem permite que seu agente mantenha um contexto crítico que,
00:03:06de outra forma,
00:03:07poderia ser perdido ao construir algo realmente complexo.
00:03:09Essas ferramentas também têm um recurso de compactação para gerenciar a janela de contexto.
00:03:13E quando o contexto reinicia,
00:03:15você não precisa depender apenas do resumo da compactação.
00:03:17Por exemplo,
00:03:18seu agente pode usar essas anotações para obter contexto sobre o que já foi feito e o que ainda precisa ser feito.
00:03:23Essa abordagem é particularmente útil para tarefas de longo horizonte,
00:03:27que são inerentemente complexas.
00:03:28Você pode estar familiarizado com o agent.md.
00:03:30É um arquivo de contexto padrão que todos os agentes leem antes de iniciar a sessão.
00:03:34Alguns agentes não seguem isso e têm seus próprios,
00:03:37como o claud.md,
00:03:38e eu os uso para orientar o agente sobre como os arquivos externos são estruturados e o que escrever em cada um deles.
00:03:44Às vezes,
00:03:44esses agentes pausam aleatoriamente no meio de uma tarefa de longa duração.
00:03:47Muitas vezes isso acontece porque o contexto ultrapassou 70% de seu limite.
00:03:52É aqui que entra o conceito de orçamento de atenção.
00:03:55Sua janela de contexto é aquilo ao qual o modelo presta atenção ao gerar saída.
00:03:59Quando ultrapassa 70%,
00:04:00o modelo precisa se concentrar mais e há uma chance maior de alucinações.
00:04:04Em termos de agentes de IA,
00:04:05isso os impede de usar suas ferramentas de forma eficaz e muitas vezes eles simplesmente optam por ignorá-las.
00:04:10Para resolver isso,
00:04:11existem várias ferramentas integradas que você pode usar.
00:04:14Como você já sabe,
00:04:14a compactação permite que o modelo comece do zero com um resumo adequado do que aconteceu como prompt inicial e uma janela de contexto reduzida.
00:04:21Então,
00:04:22em vez de deixar encher até 90% e acionar o recurso de compactação automática,
00:04:25tente ficar de olho na janela de contexto e faça você mesmo.
00:04:28Se você estiver experimentando,
00:04:29use o retrocesso integrado do Claude para que você possa excluir as partes desnecessárias em vez de continuá-las e pedir mudanças ao Claude.
00:04:36Você também deve limpar ou iniciar uma nova janela de contexto para qualquer nova tarefa,
00:04:40para que o contexto anterior não deixe o modelo mais lento.
00:04:42Outra coisa que decorre do princípio da divulgação progressiva é a capacidade desses agentes de executar tarefas em segundo plano sem poluir a janela de contexto principal.
00:04:51Os subagentes trabalham em sua própria janela de contexto isolada e apenas reportam a saída de volta ao agente principal.
00:04:57Isso é particularmente útil ao trabalhar em tarefas que são isoladas umas das outras,
00:05:00porque sua janela de contexto principal é protegida de ser inflada com as chamadas de ferramentas e pesquisas que o subagente faz,
00:05:06garantindo que a informação permaneça em sua zona de trabalho dedicada.
00:05:10Como esses agentes são executados em segundo plano,
00:05:12você pode continuar interagindo com seu agente principal e deixá-lo trabalhar em algo que realmente requer sua atenção.
00:05:17Sempre que quero que algo seja pesquisado,
00:05:19como as regras de um novo framework com o qual estou trabalhando,
00:05:22apenas uso esses subagentes.
00:05:23Dessa forma,
00:05:24suas chamadas de ferramentas e pesquisas são isoladas e eles apenas retornam a resposta ao agente principal.
00:05:29Se você entende o princípio de anotações,
00:05:31também deve saber qual formato de arquivo usar para qual tarefa.
00:05:34Como esses arquivos têm formatos diferentes,
00:05:36eles afetam a contagem de tokens e,
00:05:38portanto,
00:05:38a eficiência do seu fluxo de trabalho.
00:05:40YAML é o mais eficiente em tokens,
00:05:41então eu o uso principalmente para esquemas de banco de dados,
00:05:44configurações de segurança e detalhes de API.
00:05:46Sua indentação ajuda os modelos a estruturar as informações adequadamente.
00:05:49Markdown é melhor para documentação como seu claud.md porque os níveis de cabeçalho facilitam para o modelo navegar entre seções.
00:05:56XML é especificamente otimizado para modelos Claude.
00:05:59A Anthropic afirma que seus modelos são ajustados para reconhecer essas tags como contêineres e separadores,
00:06:05o que é útil quando você tem seções distintas como restrições,
00:06:08resumos ou detalhes visuais.
00:06:10Outros modelos geralmente preferem Markdown e YAML em vez de XML.
00:06:13E por último, JSON.
00:06:14É o menos eficiente em tokens por causa de todas as chaves e aspas extras,
00:06:17então só o uso para coisas pequenas como estados de tarefas e realmente não recomendo usá-lo na maior parte do tempo.
00:06:23Git é uma das coisas mais básicas que você aprende ao começar a programar.
00:06:26Temos visto outra tendência com esses fluxos de trabalho de contexto em que as pessoas realmente usam o histórico de commits do git como um lembrete ao modelo do progresso que foi feito,
00:06:35seja em todo o projeto ou em uma única tarefa.
00:06:37Mesmo que você não queira usá-lo para armazenar progresso,
00:06:40geralmente você deve usar esses fluxos de trabalho de engenharia de contexto em um repositório inicializado com git.
00:06:44Ter um fluxo de trabalho de engenharia de contexto significa que você não permite que o modelo faça tudo de uma vez,
00:06:49mas sim que atue em etapas planejadas uma por uma.
00:06:51Se em qualquer estágio você encontrar um problema,
00:06:54o git permite controlar para qual versão reverter e ajuda a avaliar qual mudança está causando problemas.
00:06:59As pessoas também implementaram paralelismo com git worktrees.
00:07:02Também mostrei vários fluxos de trabalho onde sub-agentes trabalham em worktrees dedicadas para trabalho paralelo.
00:07:07Qualquer que seja o fluxo de trabalho que você acabar criando,
00:07:09sempre haverá casos em que você acabará repetindo instruções para procedimentos comuns.
00:07:13Um bom exemplo é como você pede às ferramentas de IA para fazer commits no git ou atualizar sua documentação.
00:07:18Em quase todas essas ferramentas de IA,
00:07:19existem maneiras de reutilizar seus prompts mais repetidos.
00:07:22Eu frequentemente uso custom/commands nos meus próprios projetos porque eles basicamente dão ao Claude um guia reutilizável.
00:07:28Eu frequentemente uso um comando catchup que contém instruções sobre como estruturo a memória fora da janela de contexto,
00:07:34para que o Claude saiba como se atualizar com o projeto em vez de ler cada arquivo.
00:07:38Eles também são bons em impor estrutura.
00:07:40Para que meus commits e documentação sigam um formato definido,
00:07:43uso um commit/command que segue uma estrutura específica de como deve escrever mensagens de commit e quais verificações pré-commit deve fazer antes de commitar.
00:07:51Dessa forma,
00:07:51os /commands mantêm tudo padronizado,
00:07:53e eu não preciso instruir o Claude repetidamente para realizar tarefas da maneira que prefiro.
00:07:58Como você sabe,
00:07:58MCPs devem ser usados sempre que dados externos forem necessários.
00:08:01Jira é o software de gerenciamento de equipes mais amplamente utilizado.
00:08:04Se você quiser obter informações de tickets,
00:08:06pode usar o Jira MCP para que ele possa acessar tickets diretamente e começar a implementar mudanças.
00:08:11Da mesma forma,
00:08:12uso o Figma MCP para fornecer ao Claude código com o guia de estilo do aplicativo,
00:08:16que ele então usa para construir o design.
00:08:18Para tarefas onde as capacidades integradas do modelo ficam aquém,
00:08:21MCPs são essenciais para interagir com fontes externas de forma eficiente.
00:08:25Você pode incluir esses MCPs diretamente em seus /commands para que eles se tornem parte de todo o seu fluxo de trabalho.
00:08:31Isso nos leva ao final deste vídeo.
00:08:32Se você quiser apoiar o canal e nos ajudar a continuar fazendo vídeos como este,
00:08:36pode fazê-lo usando o botão super thanks abaixo.
00:08:39Como sempre, obrigado por assistir e te vejo no próximo.

Key Takeaway

Construir fluxos de trabalho eficientes com IA de codificação requer dominar princípios de gerenciamento de contexto, especialmente divulgação progressiva e uso estratégico de ferramentas como habilidades, subagentes e anotações estruturadas.

Highlights

A janela de contexto é limitada e gerenciá-la eficientemente é fundamental para o sucesso de fluxos de trabalho com IA

Divulgação progressiva é o princípio mais importante: revelar ao LLM apenas o que importa no momento

Use habilidades (skills) para fluxos de trabalho internos e MCPs apenas quando dados externos forem necessários

Arquivos de anotação estruturada (YAML, Markdown, XML) permitem documentar decisões sem poluir a janela de contexto

Subagentes trabalham em janelas de contexto isoladas, protegendo o contexto principal de ser inflado

Git deve ser usado como base para fluxos de trabalho, permitindo controle de versão e reversão de mudanças problemáticas

Commands customizados evitam repetição de instruções e mantêm padronização em tarefas comuns

Timeline

Introdução: O Problema com Frameworks Prontos

O vídeo apresenta a problemática de frameworks de codificação com IA como Beemad e Speckit, que frequentemente não cumprem suas promessas. O palestrante explica que isso não ocorre porque os métodos são ruins, mas porque esses frameworks não se adequam a casos de uso específicos. Ao construir aplicativos, desenvolvedores criam seus próprios fluxos de trabalho personalizados em vez de depender de soluções prontas. A questão central levantada é: como construir um fluxo de trabalho adequado ao seu próprio processo de desenvolvimento?

Fundamentos: A Janela de Contexto

Esta seção explica o conceito fundamental da janela de contexto, que é a quantidade de informação que o modelo de IA pode lembrar de uma só vez. Modelos Anthropic têm 200 mil tokens e Gemini tem 1 milhão de tokens de janela de contexto. O palestrante enfatiza que, embora pareçam números grandes, na prática não são tão enormes porque a janela inclui não apenas prompts e mensagens do usuário, mas também mensagens anteriores, arquivos de memória, ferramentas e chamadas MCP. Gerenciar o contexto é basicamente o que os frameworks fazem, e é essencial aprender a aproveitar ao máximo esse espaço de trabalho limitado para que o modelo faça exatamente o que você deseja.

Princípio 1: Divulgação Progressiva

O princípio mais importante para design de fluxos de trabalho é a divulgação progressiva: revelar ao LLM apenas o que importa agora, mantendo a atenção focada no necessário em vez de preencher o contexto com tudo que possa precisar no futuro. Embora modelos avançados como Sonnet 4.5 tenham edição de contexto integrada, isso não é suficiente quando damos instruções vagas. O palestrante recomenda ser específico: em vez de pedir para 'corrigir o erro no backend', peça para verificar endpoints um por um. As habilidades (skills) no Claude são a personificação deste princípio, fornecendo informações suficientes sobre quando usar cada habilidade sem carregar tudo no contexto. Um erro comum é usar MCPs para tudo, quando na verdade MCPs devem ser usados apenas quando dados externos forem necessários.

Princípio 2: Anotações Estruturadas

O segundo princípio importante é que informações não necessárias agora não devem estar na janela de contexto. Ferramentas usam anotações estruturadas para conseguir isso, permitindo fornecer arquivos externos para documentar decisões, problemas ou débito técnico. Essa abordagem permite que o agente mantenha contexto crítico que poderia ser perdido ao construir algo complexo, especialmente útil para tarefas de longo horizonte. O palestrante menciona o uso de arquivos como agent.md ou claud.md como contexto padrão que agentes leem antes de iniciar a sessão. Esses arquivos orientam o agente sobre como arquivos externos são estruturados e o que escrever em cada um, garantindo que quando o contexto reinicia, há informações disponíveis além do resumo de compactação.

Gerenciamento de Orçamento de Atenção

Esta seção aborda o conceito de orçamento de atenção e o problema de agentes pausarem aleatoriamente durante tarefas longas. Quando o contexto ultrapassa 70% de seu limite, o modelo precisa se concentrar mais e há maior chance de alucinações, impedindo agentes de usar ferramentas eficazmente. Para resolver isso, o palestrante recomenda várias estratégias: usar compactação antes de atingir 90% (fazendo manualmente em vez de esperar a automática), usar o recurso de retrocesso integrado do Claude para excluir partes desnecessárias, e limpar ou iniciar nova janela de contexto para cada nova tarefa. Essas práticas evitam que o contexto anterior deixe o modelo mais lento e mantêm a eficiência do trabalho.

Subagentes e Isolamento de Contexto

Subagentes são apresentados como uma aplicação prática do princípio de divulgação progressiva, permitindo executar tarefas em segundo plano sem poluir a janela de contexto principal. Eles trabalham em sua própria janela de contexto isolada e apenas reportam a saída de volta ao agente principal. Isso é particularmente útil para tarefas isoladas umas das outras, porque a janela principal é protegida de ser inflada com chamadas de ferramentas e pesquisas do subagente. Como rodam em segundo plano, você pode continuar interagindo com o agente principal enquanto o subagente trabalha. O palestrante usa subagentes sempre que quer algo pesquisado, como regras de novos frameworks, garantindo que chamadas de ferramentas e pesquisas sejam isoladas.

Formatos de Arquivo e Eficiência de Tokens

Esta seção detalha qual formato de arquivo usar para cada tarefa, já que diferentes formatos afetam a contagem de tokens e a eficiência do fluxo de trabalho. YAML é o mais eficiente em tokens, ideal para esquemas de banco de dados, configurações de segurança e detalhes de API, com sua indentação ajudando modelos a estruturar informações. Markdown é melhor para documentação como claud.md, pois níveis de cabeçalho facilitam navegação entre seções. XML é especificamente otimizado para modelos Claude, com a Anthropic afirmando que seus modelos reconhecem tags como contêineres e separadores, útil para seções distintas como restrições e resumos (outros modelos preferem Markdown e YAML). JSON é o menos eficiente devido a chaves e aspas extras, recomendado apenas para coisas pequenas como estados de tarefas.

Git como Base do Fluxo de Trabalho

O palestrante enfatiza a importância de usar Git como base para fluxos de trabalho de contexto, onde o histórico de commits serve como lembrete ao modelo do progresso feito no projeto ou em tarefas específicas. Mesmo que não seja usado para armazenar progresso, fluxos de trabalho de engenharia de contexto devem estar em repositórios inicializados com Git. Ter um fluxo de trabalho de engenharia de contexto significa não permitir que o modelo faça tudo de uma vez, mas sim atuar em etapas planejadas uma por uma. Git permite controlar para qual versão reverter quando problemas surgem e avaliar qual mudança está causando problemas. O palestrante também menciona implementações de paralelismo com git worktrees, mostrando vários fluxos onde sub-agentes trabalham em worktrees dedicadas para trabalho paralelo.

Commands Customizados e Reutilização de Prompts

Para evitar repetir instruções em procedimentos comuns, todas as ferramentas de IA oferecem maneiras de reutilizar prompts repetidos através de commands customizados. O palestrante usa frequentemente um comando 'catchup' que contém instruções sobre como estrutura memória fora da janela de contexto, permitindo que Claude se atualize com o projeto sem ler cada arquivo. Commands também são eficazes em impor estrutura: um 'commit command' garante que commits e documentação sigam formato definido, com estrutura específica para mensagens de commit e verificações pré-commit antes de commitar. Dessa forma, os commands mantêm tudo padronizado e eliminam a necessidade de instruir o Claude repetidamente para realizar tarefas da maneira preferida.

MCPs para Dados Externos

A seção final reforça que MCPs devem ser usados sempre que dados externos forem necessários, com exemplos práticos de implementação. O Jira MCP é mencionado como solução para software de gerenciamento de equipes, permitindo acessar tickets diretamente e implementar mudanças baseadas neles. Similarmente, o Figma MCP fornece ao Claude código com guia de estilo do aplicativo, que é usado para construir o design. Para tarefas onde capacidades integradas do modelo ficam aquém, MCPs são essenciais para interagir com fontes externas de forma eficiente. O palestrante conclui explicando que MCPs podem ser incluídos diretamente em commands customizados, tornando-os parte de todo o fluxo de trabalho integrado.

Community Posts

View all posts