Latest / Entre Chaves / Snippet #26 Harness Engineering na prática com Claude Code
Transcript
- 0:00Olá entre chaves, eu sou o Thiago, sou arquiteto na DTIE.
- 0:04Hoje a gente vai falar sobre Arns Engineering.
- 0:06Aqui nesse snip imagino que todo mundo que já tentou usar IAI no
- 0:10dia a dia já teve alguma situação que você ficou se
- 0:13pensando assim, se você consegue pode confiar no trabalho ali da
- 0:16IAE, tem que ficar revisando muita coisa.
- 0:18Tudo que AIA faz ou você confia demais às vezes não funciona ou
- 0:22você tem que ficar revisando coisas demais e gasta muito
- 0:24tempo também para resolver esse problema.
- 0:26A gente tem o conceito de ranners Engineering, basicamente
- 0:29é um arreio pra gente especificar como que IA que IA
- 0:33trabalhar num formato específico.
- 0:34Então a gente não estabelece esses formatos, ela tende a
- 0:37simplesmente usar o que ela tem de conhecimento de mundo no
- 0:39geral e pode muitas vezes não ser resultado o que você
- 0:42precisa, principalmente pra sistemas que já existem, né?
- 0:45Pra gente ir direto ao ponto, basicamente a gente vai fazer
- 0:48uma demo usando um ranners bem simples, os conceitos mais
- 0:52iniciais mostrando. O resultado sem usar o harners e
- 0:56a diferença quando a gente usa o harners numa aplicação bem
- 0:58simples de uma calculadora e vamos ver a diferença bom na
- 1:02nossa prática. Se a gente não for usar o
- 1:04harners nesse primeiro exemplo, só inicializei um projeto aqui
- 1:07em note poderia ser em qualquer linguagem lógico.
- 1:09E Na Na nossa ideia aqui com o pode, vou colar um prompt
- 1:12pedindo pra criar essa calculadora de uma calculadora
- 1:15que recebe parâmetros aqui de operadores e 2 números e me dá
- 1:19um resultado. Só isso.
- 1:21Não pedi Pra Ele fazer testes, nem nada disso, e ele vai criar
- 1:24pra mim. Só que eu não estabeleci nenhum
- 1:26tipo de regra, eu deixei a IA tomar todas as decisões por mim.
- 1:30Nesse caso aqui, vamos ver o resultado.
- 1:32Bom, ele já fez o trabalho dele, foi muito rápido, mas vamos
- 1:36dizer que se está adequado ao que eu gostaria, né?
- 1:39Como sistema, eu não especifiquei e.
- 1:41Nada muito específico Pra Ele, ele gerou um arquivo calk GS, aí
- 1:45o código ficou bem simples, bem direto, se a gente observar que
- 1:48no nosso Git a gente vai ver que ele não não comentou nem nada,
- 1:53eu não pedi, eu não especifiquei nada disso Pra Ele, beleza?
- 1:55Então sem o harners a gente tem aqui o nosso resultado é um
- 1:59arquivo calk GS simples, não foram criados testes, ele não
- 2:04comitou o resultado aqui eu não pedi nada disso, beleza?
- 2:08Meio que esperado subir dessa forma normalmente.
- 2:10Aí depois disso você iria pedir Pra Ele comentar, finalizar,
- 2:13adicionar testes. Se eu como deve lembrar disso,
- 2:16aí entra a parte onde entra o harners que ele pode ajudar a
- 2:19gente, em vez de toda vez eu ficar lembrando do meu agente,
- 2:23de como que eu quero trabalhar hoje, tem que ficar criando
- 2:26memórias específicas e tudo mais.
- 2:29Tem um jeito específico de trabalhar com isso?
- 2:32Que é o que a gente chama de harns and dnewing.
- 2:33Basicamente ele tem 2 grandes partes pra você definir guias de
- 2:38arquitetura, de como você quer trabalhar, de como que você quer
- 2:41que ele planeje e separe as suas etapas e sensores pra que ele
- 2:47revise o próprio trabalho dele sem que você precise revisar
- 2:49tudo e você chegue num num fluxo de trabalho com ele que você
- 2:54precisa revisar as coisas mais críticas de fato.
- 2:58A partir dos sensores que ele vai te dando feedback e um
- 3:01feedback pra si próprio. No nosso caso aqui pra
- 3:03simplificar. Voltando aqui pro nosso exemplo,
- 3:06agora com o Arns, eu no caso aqui do code seria no arquivo
- 3:10code MD, mas tem a convenção de usar o termo agente MD também,
- 3:16mas no code fica mais nativo dessa forma.
- 3:18Mas aqui basicamente já estabeleceu a primeira 2 regras
- 3:21aqui mais de guia Pra Ele. Primeiro a estabelecer que ele
- 3:24tem que planejar, ele não fez um planejamento no primeiro pronto.
- 3:28Então estabelecer um formato pra planejar e documentar esse plano
- 3:31pra mim. Depois eu gostaria de ser capaz
- 3:33de revisar em etapas se for necessário eu entender o que que
- 3:37foi feito. Então eu pedi Pra Ele fazer um
- 3:39controle de Comite Pra Ele comitar passo a passo.
- 3:42Tudo que ele tá fazendo aqui seria só um exemplo muito básico
- 3:45de guias. Eu poderia ir muito além com
- 3:48isso, colocar regra de arquitetura e tudo mais.
- 3:50Mas como exemplo é de só uma calculadora, então estamos sendo
- 3:53mais simples aqui. E uma terceira regra que se
- 3:56encaixa como sensor, nesse caso aqui, sensor e arquitetura.
- 4:00Eu pedi Pra Ele criar os testes automatizados unitários e rodar
- 4:04esses testes. E aí eu pedi Pra Ele só dar a
- 4:06tarefa como concluída, como quando ele tiver o retorno com
- 4:10sucesso dos testes, com todos os testes passando, quando os
- 4:13testes não passarem, isso funciona como sensor Pra Ele
- 4:16continuar tentando e corrigir os testes.
- 4:18Você pode fazer sensores com várias outras coisas, com vários
- 4:21outros. Tipos de ferramentas pode ser um
- 4:25teste no play right, retornando sucesso, pode ser até mesmo
- 4:28acesso de um MCP que retorna alguma coisa específica, como
- 4:32alguma coisa no banco de dados, até coisa do tipo e agora a
- 4:35gente vai fazer uma prática. Então, considerando esse rams
- 4:38que a gente explicou, vou usar o mesmo prompt pra gente ter um
- 4:42teste justo aqui, vou colar aqui e vamos ver o que que ele vai
- 4:47fazer. Vou deixar o automody aqui
- 4:49ligado Pra Ele não ficar pedindo permissões.
- 4:51Mas o que ele identificou? Ele tá identificando aí.
- 4:54Já o claud MD com as regrinhas do harn e agora ele já mudou o
- 4:58comportamento. Ele vai primeiro fazer o
- 5:01planejamento e eu pedi Pra Ele confirmar.
- 5:03Ele já parou aqui um pouco que ele já gerou o plano e mostrou
- 5:07um resumo, e ele fez o planejamento dele aqui de como
- 5:09que ele vai seguir me mostrou exatamente confirmando o que que
- 5:13ele vai implementar, vai gerar um arquivo de testes usando uma
- 5:17biblioteca GS que eu já tinha deixado lá configurada e beleza.
- 5:21Então eu concordo com esse plano, vou deixar ele seguir
- 5:24esse tipo de parada, estratégia que pode ser planejado pra
- 5:27qualquer etapa mais crítica. No caso do planejamento, é é
- 5:30interessante porque o planejamento é onde você gasta
- 5:32mais fink, né? Depois, quando você passa pra
- 5:34implementação, você pode passar, é um modo mais de execução.
- 5:38Agora ele tá já executando, tá criando os testes, todo o
- 5:42código, como dá pra ver aqui, ele pensou um pouquinho mais de
- 5:45tempo, mas ele fez todas as etapas, criou os testes, passou
- 5:48por alguns erros ao longo do processo.
- 5:50Mas ele foi se resolvendo e só deu como concluída depois que
- 5:54ele conseguiu o sucesso da validação dos testes, ele rodou
- 5:59internamente esses testes via sub agentes.
- 6:02No caso dos sub agentes, ele ajuda a economizar tokens, ser
- 6:05usado da maneira correta ali. Mas ele rodou, teve sucesso.
- 6:08Finalmente nos testes, passou tudo, considerou que tá
- 6:12resolvido, que tá pronto. Se eu sempre te olhar aqui no
- 6:15nosso Git do harnes está como se não tivesse nada.
- 6:17Mas na verdade nossa árvore aqui já está aqui o comit dele pronto
- 6:22com todo o trabalho salvo, conforme tinha instruído o legal
- 6:26disso que eu só tive que fazer isso uma vez.
- 6:28Eu só tive que configurar uma vez.
- 6:29Eu posso compartilhar isso com meu time.
- 6:31Vai funcionar de uma forma mais determinística, por mais que ela
- 6:35não seja determinística, mas. Esse tipo de coisa de ajuda, ela
- 6:38ter um trabalho mais determinístico no seu time.
- 6:41Fica mais fácil de compartilhar essas regras e reforçar esses
- 6:44arrios no seu código, independente de em qual máquina
- 6:47que está sendo executado. Então está aqui o resultado.
- 6:50Ele criou o teste, considerando que é uma aplicação bem simples,
- 6:53cobrindo bastante regras. Eu numa pesquisa demais, né?
- 6:56Como que ele deveria criar esses testes?
- 6:58E devido a eu ter instruído ele criar testes, ele criou um
- 7:01código aqui também mais organizadinho, vamos dizer
- 7:04assim. Eu poderia também especificar
- 7:07toda a arquitetura do código e tudo mais, mas pro exemplo, o
- 7:10ponto era esse de demonstrar que você consegue reforçar como que
- 7:14você deseja o output ali do seu resultado, principalmente pra
- 7:18situações também que você já tem um código existente, isso é
- 7:21especialmente necessário. Bom, então é isso.
- 7:25Obrigado por me escutar. Espero que vocês tenham gostado
- 7:27desse snip, que tenha sido bem útil para você esse papo sobre
- 7:31harner e Engineering e me conta aí depois.
- 7:34Testa aí a sua maior dor de engenharia que você tiver
- 7:37criando o seu cloud MD para fazer o seu primeiro hainess,
- 7:41valeu?