Latest / Entre Chaves / Snippet #20 Como configurar agentes autônomos no Copilot
Transcript
- 0:00Olá pessoal, meu nome é Breno, eu sou desenvolvedor aqui na
- 0:03DTIE. Hoje nesse snipet a gente vai
- 0:05falar um pouco sobre a criação de agentes no copylet.
- 0:08Nesse vídeo você vai aprender a criar agentes do zero, entender
- 0:11a anatomia desses elementos e como configurar elas da melhor
- 0:15forma, deixando elas restritas o suficiente para que elas
- 0:18consigam fazer trabalho da melhor forma.
- 0:20O ecossistema do copylet permite que a gente consiga criar várias
- 0:24ferramentas que vão auxiliar em diferentes etapas ali do
- 0:28processo. Dentre elas a gente tem.
- 0:30Das instructions, os hooks, as skills e os agentes.
- 0:34Então vamos começar falando das instructions.
- 0:37Todas essas ferramentas irão ficar nessa pasta ponto GitHub
- 0:40na raiz do projeto quando a gente estiver organizando esse
- 0:44ecossistema, é interessante já deixar as pastas criadas no
- 0:47ponto GitHub ou o próprio agente quando a gente solicitar a
- 0:51criação dessas ferramentas. Vai criar essas pastas para
- 0:54gente na pasta do ponto GitHub. Um detalhe interessante é que
- 0:57nesse momento de desenvolvimento de skills, agentes e hooks e
- 1:01structions, nós não precisamos criar tudo isso na mão.
- 1:05A própria LLMO, nosso próprio modelo, vai conseguir criar isso
- 1:08com base no que a gente solicitar para ele, em linguagem
- 1:11natural. Então, a gente consegue ser
- 1:13muito específico no que a gente quer se resguardar, que tipo de
- 1:17ferramenta que a gente quer criar e o que que a gente quer
- 1:20que ela faça para conseguir. Gerar elas automaticamente,
- 1:24usando os nossos, os nossos próprios agentes, aqui, o nosso
- 1:26próprio modelo do Copilot. Então, para começar com as
- 1:29instructions, eu vou criar uma pasta instructions.
- 1:33Então, essa primeira instruction, quero que ela
- 1:35considere os padrões de projeto dry, Kiss e solid para todos os
- 1:47códigos que eu gerar nesse. Ecossistema quando eu odeio esse
- 1:54comando do barra creating instruction, eu estou chamando
- 1:57uma skill do próprio compadre para criação de instructions
- 2:00personalizados aqui no meu projeto.
- 2:02Então, como a gente pode ver, a instruction foi gerada com o
- 2:06nome solid dry Kiss instructions ponto MD todas as instructions
- 2:10tem o sufixo instructions ponto MD na sintaxe da nossa
- 2:15instruction, a gente precisa ter uma descrição e um apply to.
- 2:19A descrição vai simplesmente resumir o que essa instruction
- 2:22vai fazer. E o apply two, a gente consegue
- 2:24definir que tipos de arquivos que essa instruction vai ser
- 2:27aplicado, em que ocasiões a gente vai aplicar essa
- 2:31instruction. Então, como a gente pode ver,
- 2:33né? Nessa instruction que eu estou
- 2:34definindo os padrões aqui de projeto que eu quero aplicar,
- 2:38né? Nos nas minhas geração de
- 2:39código. Agora falando sobre os rooks, os
- 2:42rooks são ferramentas que podem ser aplicadas.
- 2:46Como guard raios do nosso uso de e a.
- 2:48Então, quando eu vou mandar um comando aqui no chat, quando o
- 2:51nosso agente está executando, está tentando fazer alguma coisa
- 2:54rodar um comando no terminal, o Hulk vai ser chamado
- 2:57automaticamente para prevenir algumas coisas quando for
- 3:01executado um comando no terminal.
- 3:03Eu quero que seja validado se esse comando é algo destrutivo.
- 3:06Por exemplo, um RM trac RF que poderia deletar o nosso projeto
- 3:11aqui se for executado de uma forma incorreta, né?
- 3:14Então os hooks conseguem ser rodados em determinadas etapas
- 3:18do processo. Podemos ter hooks que se ativam
- 3:21antes da ferramenta ser chamada, podemos ter hooks que se aplicam
- 3:25depois da ferramenta ser chamada, e isso vai variar de
- 3:28acordo com a necessidade. Então agora vou chamar o comando
- 3:32barra create Hulk. Crie um Hulk que vai impedir que
- 3:41comandos destrutivos sejam executados no terminal, vai
- 3:49criar uma pastinha chamada hooks e vai gerar esse Hook com base
- 3:53no que eu solicitei aqui. Como a gente pode ver aqui, a
- 3:56gente tem. 3 arquivos que foram gerados para esse Hulk.
- 4:00Um deles é o Jason. Esse Jason é apenas a
- 4:04configuração do Hulk. Eu estou especificando que eu
- 4:07quero um Hulk de preto Youse, que é para ser usado antes da
- 4:11ferramenta executar, que é para a gente impedir que comandos
- 4:14destrutivos sejam utilizados. E um detalhe interessante é que
- 4:17como a gente pode estar usando o copality aqui?
- 4:21Em ecossistemas diferentes, em sistemas operacionais
- 4:23diferentes, o Hulk automaticamente, quando a gente
- 4:26pede pro compallet gerar, ele vai ser gerado tanto script de
- 4:29Power Shell quanto um bash pra funcionar em qualquer
- 4:32ecossistema que a gente esteja rodando, em qualquer sistema
- 4:35operacional. Então aqui no nosso Hulk a gente
- 4:37tem algumas especificações nesse script que vão impedir esses
- 4:41comandos, né? Vão validar esse comando com o
- 4:43rejex, né? Vai entender o que que ele está
- 4:45solicitando ali pra evitar esse comando destrutivo.
- 4:49Agora a gente vai falar das skills.
- 4:51Que são habilidades que a gente consegue dar para o nosso
- 4:53modelo, para ele executar coisas que a gente tem o conhecimento e
- 4:58quer passar para LLM, né? Esse conhecimento a gente vai
- 5:01gerar aqui um skill e a gente vai ver como que vai ser a
- 5:04anatomia dessa skill. Para a gente entender como
- 5:06funciona essa estrutura. Vou criar aqui um skill usando
- 5:10barra, create skill e na minha skill eu vou pedir para que ela
- 5:14consiga definir como o time implementa.
- 5:20Recursos hest, como deve ser a estrutura de pastas, a ordem de
- 5:27implementação, as convenções. E aqui nas convenções eu
- 5:32coloquei, né, que eu quero usar as rotas para validação, RFC
- 5:357807 para erros e que as rotas sejam versionadas numa barra v
- 5:41um. Vou solicitar isso aqui.
- 5:43Aqui dentro da pasta skills temos uma pasta com o nome da
- 5:47skill. Hest up API standards e dentro
- 5:50dessa pasta a gente vai ter as especificações da nossa skill.
- 5:54Uma delas é o nosso arquivo skill ponto MD.
- 5:57Então cada skill tem sua pasta respectiva e um arquivo padrão
- 6:01que sempre vai ter em todas as skills, que é o skill ponto MD.
- 6:04Nesse skill ponto MDA gente vai ter o nome da skill, a descrição
- 6:10e o argument 20, o nome dessa skill aqui nesse arquivo.
- 6:14Tem que ser exatamente o mesmo da pasta onde ele está incluído.
- 6:18Então, além desse arquivo skill, a gente tem uma pasta de asset e
- 6:22uma pasta de referências que vão auxiliar a nossa skill.
- 6:26Então a nossa skill vai ter referências a essas pastas para
- 6:29auxiliar, né? Então aqui a gente vai ter no
- 6:31asset templates que a nossa skill vai utilizar na hora de
- 6:35validar esse desenvolvimento de software, de de de recursos
- 6:39hest. E essas referências aqui, que
- 6:41são convenções. Que a gente mesmo especificou
- 6:44ali, em linguagem natural, que a gente queria que essa skill
- 6:46fosse capaz de validar no nosso desenvolvimento.
- 6:50Agora a gente chega pra parte mais interessante, que são os
- 6:53agentes do Copilot. Eu quero criar aqui agora um
- 6:56agente e pra isso eu vou chamar o comando barra create agent.
- 7:00E eu quero que seja criado um agente de desenvolvimento de
- 7:04aplicações back end rest em DOT net na descrição do nosso
- 7:09agente, a gente está aqui especificando o que que esse
- 7:11agente vai fazer. Aqui eu estou especificando
- 7:14quais rooks vão ser aplicados nesses agentes.
- 7:16E eu também tenho aqui uma parte que é muito importante, que são
- 7:20as ferramentas que esse agente vai ter acesso.
- 7:22Então aqui eu consigo clicar em configur tools, que vai me
- 7:25mostrar uma lista de ferramentas que esse agente vai poder
- 7:29acessar. E eu vou poder delimitar quais
- 7:32ferramentas que ele vai conseguir acessar.
- 7:34Então eu posso impedir o meu agente, por exemplo, de editar o
- 7:36meu código? Eu posso permitir ou não que o
- 7:38meu agente execute comandos no terminal?
- 7:40Posso pedir que o meu agente sempre gere um tio do list
- 7:44quando ele estiver executando ali no chat.
- 7:46Aqui a gente pode ver que os MCPS estão aparecendo aqui,
- 7:49todos os meus MCPS configurados e eu consigo dar pro meu agente.
- 7:54As ferramentas também dos MCPS. Então eu consigo criar agentes
- 7:58específicos para lidar com ferramentas externas também.
- 8:01Então, depois disso, a gente tem de fato o escopo do nosso
- 8:04agente, né? O corpo dele aqui, explicando
- 8:06tudo o que ele vai fazer com o que que ele deve se preocupar
- 8:09com padrões de código, padrões de pastas, abordagem que se a
- 8:13gente vai usar na hora que estiver desenvolvendo, enfim,
- 8:16depois que eu crio o código. Uma coisa interessante seria
- 8:20revisar no próprio copality. Ele deu uma sugestão de criar um
- 8:23teste edneer DOT net aqui que vai testar o que eu vou entregar
- 8:27com meu agente de de back end coder.
- 8:29Então vou pedir pro cliente e aí a gente criar um teste edneer e
- 8:33também um code review. Que vai revisar o código criado
- 8:37com os padrões que a gente já definiu.
- 8:39Então aqui é Pra Ele criar 2 agentes.
- 8:41A gente vai ver isso acontecendo na prática.
- 8:43E no final de tudo, eu vou criar um agente orquestrador.
- 8:47Eu consigo criar um agente que vai orquestrar a execução de
- 8:51todos esses agentes aqui no meu fluxo.
- 8:53Então, se eu tenho um fluxo complexo, eu consigo fazer um
- 8:56agente orquestrador. Que passe por todas essas etapas
- 8:59e para cada uma delas, chame um agente específico que vai
- 9:02executar aquilo ali. Para deixar a coisa ainda mais
- 9:05organizada e mais funcional. Cada agente que é chamado abre
- 9:09uma nova sessão no copailut. Então, todo o contexto que o
- 9:12agente vai ter vai ser daquela execução que ele está realizando
- 9:17ali. E o orquestrador tem a visão
- 9:18geral do que está sendo construído.
- 9:20Então temos aqui o nosso code review e temos o nosso teste em
- 9:24dneer. Agora eu vou pedir para que o
- 9:28meu create agent crie um agente orquestrador que vai orquestrar
- 9:36a execução dos 3 agentes em sequência, então ao invés de eu
- 9:43chamar o meu back end coder, ver a execução, depois chamar o meu
- 9:47tester, ver a execução, o resultado, depois chamar o meu
- 9:50agente de code review. Eu posso chamar o meu agente de
- 9:53orquestrador, que vai fazer cada etapa, validar os resultados,
- 9:57entregar para o próximo agente e seguir todo o fluxo para que eu
- 10:01consiga validar isso só no final.
- 10:03Então aqui a gente tem o nosso agente orquestrador, tem uma
- 10:06breve descrição de como ele vai se comportar, as ferramentas que
- 10:09ele vai ter acesso e os agentes que ele vai controlar.
- 10:12Então aqui a gente vê o back end coder, o teste engineer e o code
- 10:16review, que são os agentes que a gente criou aqui anteriormente.
- 10:19Então o nosso agente orquestrador, ele tem etapas que
- 10:22ele vai seguir. Quando a gente chama ele, na
- 10:24etapa um implementação, vai chamar o back end coder, na
- 10:28etapa de teste, vai chamar o teste edneer, quando chegar na
- 10:31parte de revisão de código, vai chamar o code review.
- 10:34Essa é a nossa orquestração de agentes.
- 10:36Com isso a gente consegue seguir um fluxo inteiro, utilizar as
- 10:39skills, utilizar nossos hooks e as nossas instructions e criar
- 10:4211 ecossistema de harners robusto e essa orquestração de
- 10:45agentes que vai possibilitar? Que a gente execute tarefas de
- 10:49uma forma muito mais rápida e menos repetitiva e que exija
- 10:52menos prompts manuais no chat. Agora eu consigo chamar os meus
- 10:56agentes pra executar as minhas ações, pra mim pra acessar esses
- 10:59agentes. A gente vai ter aqui, né?
- 11:01Na Na janelinha de seleção aqui, que a que a gente consegue mudar
- 11:05entre o agente, o Esc e o pleno, os agentes que a gente criou
- 11:09numa lixinha, então. Se eu quiser só executar um
- 11:13deles, eu consigo chamar, né? Por exemplo, se eu quisesse só
- 11:16testar, eu chamaria o meu teste em dnir.
- 11:18Mas se eu quiser executar um fluxo inteiro, eu chamaria o
- 11:20orquestrator e solicitaria para ele.
- 11:24Desenvolva a feature de. Login de usuários e aí ele vai
- 11:30passar pelas 3 etapas pelos meus 3 agentes, o orquestrador vai
- 11:34organizar essa execução, então espero que tenham gostado, que
- 11:37tenham aprendido um pouco mais sobre os agentes no Copilot e
- 11:40até a próxima.