Full transcript
0:00Opa, seja muito bem-vindo ao nosso curso
0:02gratuito de Cloud Code. Eu tô muito
0:05feliz em gravar esse curso aqui para
0:06você, porque, cara, é difícil encontrar
0:08bons conteúdos de cloud code. Eu tenho
0:10alguns amigos em que, inclusive, eu
0:11consumo o conteúdo deles. Em alguns
0:13pontos até me inspirei no conteúdo deles
0:14para trazer esse conteúdo, mas, cara, é
0:17difícil você achar conteúdo bom de cloud
0:18code. Muita gente fica falando só de
0:20skills, só de hooks, só de, cara,
0:23tecnicazinhas que são a mesma coisa que
0:24era o promptia surgiu em 2023. Eh,
0:28quando a gente fala, por exemplo, em
0:292024, 2025, onde o pessoal todo mundo
0:32ficava doido com prompto,
0:34esse prompt aquilo. Só que mais
0:37importante do que prompt, mais
0:38importante do que skill, é você entender
0:39realmente o fundamento, como que a
0:41funciona, como que você pode utilizar
0:43ela da melhor maneira possível. E é com
0:45isso que eu quero que você saia desse
0:46curso aqui. Se você não me conhece,
0:48muito prazer, meu nome é Lucas. Eu
0:50trabalho como estrategista de A, criando
0:52soluções de inteligência artificial para
0:54outras empresas. Eu já trabalhei em
0:55projetos para grandes nomes do mercado
0:57digital, como Lona Carolina, Carol de
0:59Carvalho, Betina Rodolf, Henry Harmelin,
1:01inclusive JD workshops para grandes
1:03empresas como o Grupo Atacadão. E nesse
1:05curso aqui eu quero que você realmente
1:07saia do zero em Cloud Code até que você
1:09consiga construir a sua primeira
1:11solução, você consiga colocar ela na
1:13internet para que outras pessoas
1:14consigam acessar e ver a sua solução.
1:17Então aqui eu vou partir do básico, do
1:18zero. Vou te explicar o que é o Cloud
1:19Code, porque todo mundo tá falando dele,
1:22como que ele funciona, como que você
1:23instala, como que você cria ali suas
1:25primeiras pastas, as primeiras coisas
1:27com o Cloud Code, OK? E depois a gente
1:29vai construir ali um projeto, a gente
1:30vai refinar, vai testar, vai encontrar
1:32alguns bugs e é normal, ok? A única
1:35certeza quando a gente fala de software,
1:36de soluções, é que a gente vai encontrar
1:38bugs, sejam eles feitos por humanos ou
1:40sejam eles feitos por IA. A gente sempre
1:42vai encontrar bugs, sempre vai encontrar
1:44algum probleminha que a gente vai
1:45precisar corrigir e ajustar. E tá tudo
1:48bem, tá? Mas isso daqui é normal. Depois
1:49a gente vai fazer o nosso deploy. A
1:50gente vai subir na internet e também a
1:52gente vai trabalhar aqui com construção
1:53de skills. Então vou mostrar como que
1:55você constrói as suas próprias skills,
1:57porque elas são muito poderosas e cara
1:59vale muito a pena você saber como
2:00construir boas skills, ok? Eu já te
2:02adianto que não é difícil, tá bom? A
2:04maior parte desse curso aqui, cara, a
2:05gente não vai fazer nada que seja muito
2:07difícil, ok? A gente realmente vai
2:08explorar, a gente vai ver a parte
2:10prática aqui, vai ver teoria, tá bom? A
2:12gente vai ter bastante teoria porque é
2:13importante que você entenda como que
2:15funciona, OK? Vou tentar ao máximo
2:16misturar teoria com prática para que não
2:18fique muito maçante, mas não tem como a
2:20gente fugir da teoria porque ela também
2:21é muito importante pro nosso contexto
2:23aqui. Mas você reparar também que, cara,
2:25não tem nada difícil de ser feito, tá?
2:27Aqui realmente eu não vou falar que é
2:29fácil, que é só fazer, mas realmente não
2:32é difícil, tá? Só que não é simples. E
2:34por que que não é simples? Porque você
2:35precisa entender os fundamentos, o
2:37contexto do seu projeto. Você precisa
2:39entender profundamente como que o cloud
2:40code funciona. Então fica tranquilo que
2:42não vai ter nada muito difícil, não vai
2:43ter nada que você não consiga acompanhar
2:44aqui, ok? E também já quero deixar um
2:46aviso, tá? Se você é um cara técnico, é
2:49um cara de dev, é um cara que já tem
2:50mais conhecimento sobre infra, sobre
2:52cara projeto, sobre software, esse curso
2:55não foi feito pensado para você. Esse
2:56curso realmente foi feito e foi pensado
2:58para quem tá iniciando agora com cloud
3:00code, com outras ferramentas de A, tá?
3:02Então eu realmente quero trazer aqui os
3:04conceitos fundamentais do cloud, mostrar
3:05como que você constrói projetos. Então,
3:07ou alguns termos eu não vou trazer aqui
3:09agora, porque senão eu vou pegar algo
3:11muito complicado, muito técnico e que só
3:13vai dificultar o aprendizado, ou senão
3:14eu vou abstrair um pouco, vou
3:15simplificar para que realmente fique eh
3:18de fácil entendimento e que a grande
3:20maioria aqui consiga entender, ok?
3:22Então, se você é técnico, se você é
3:23deve, algumas coisas talvez seram
3:25básicas demais para você. E, cara, se
3:26você não conhece nada de a, não conhece
3:28nada de cloud code, você realmente vai
3:29tirar o melhor proveito possível, porque
3:31esse curso foi feito e foi produzido
3:33pensando em você, tá bom? Então, vamos
3:36lá. que eu já quero começar explicando
3:37um pouquinho da nossa estrutura do
3:38curso. Aqui dentro a gente vai passar
3:39por cinco etapas principais. A primeira
3:42etapa vai ser de entender o cloud code.
3:44Então a gente vai realmente ter muita
3:45teoria aqui, vai entender como que ele
3:46funciona, como que é o que que ele é
3:48internamente, porque ele é muito bom.
3:50OK? A gente a gente vai entender o que é
3:51o cloud code, vai ver alguns fundamentos
3:53também, tá? Depois a gente vai
3:55configurar o Cloud Code. Então vou
3:56mostrar como que você instala o Cloud
3:57Code na sua máquina, como que você
3:59testa, como que você usa para criar
4:00projetos. Depois a gente vai fazer a
4:03configuração do nosso primeiro projeto.
4:04Então a gente vai criar aqui um projeto
4:06do zero. E nesse caso vai ser uma área
4:07de membros onde os alunos vão poder
4:09acessar e vão poder consumir as aulas,
4:10ok? Então a gente vai ter aqui a nossa
4:12área de membros. Depois a gente vai ter
4:13a parte de teste e refinamento. Eu
4:15reparei que eu tô mostrando de uma forma
4:16muito esquisita, né? Eu poderia ter
4:18levantando dedo por dedo, mas eu tô aqui
4:20fazendo dessa forma, tampando meu rosto.
4:21Mas enfim, depois a gente vai ter a
4:23nossa parte aqui, a parte quatro, ó. Já
4:25tô até confuso, a nossa parte de testes
4:26e refinamentos. Então a gente onde a
4:28gente vai testar realmente o nosso
4:29software, vai procurar bugs, vai
4:31procurar alguns erros pra gente corrigir
4:32utilizando aqui o cloud code e por
4:34último a gente vai fazer o nosso deploy.
4:35A gente vai subir na internet lá pra
4:37gente realmente ter funcionando o nosso
4:39projeto, OK? Essa daqui são cinco passos
4:41assim fundamentais da nossa estrutura. A
4:43gente também vai ver depois do deploy
4:44ali a nossa parte de skills, como que a
4:46gente queria skills, vai ver subir,
4:48vamos ver sobre subagentes, sobre agent
4:50teams, OK? Mas por enquanto vamos
4:52começar aqui pelo básico. Vamos entender
4:54o que é o cloud Code e por que ele mudou
4:57tudo em 2026. Então vem aqui pra minha
4:59tela. Primeiro de tudo, tá? O que mudou
5:01em 2026? Cara, atualmente a escreve
5:05código e você supervisora. A grande
5:07maioria dos desenvolvedores estão
5:08fazendo isso, OK? Claro que a gente tem
5:10aqueles dev dinossauros, aqueles que
5:12ainda estão um pouco, digamos que
5:13atrasados no tempo, mas a maioria dos
5:15programadores, inclusive eu conheço
5:17programadores muito, muito bons que
5:19ganham muito bem. E cara, a maioria do
5:21trabalho deles hoje é realmente isso,
5:23tá? Principalmente quando a gente fala
5:24de, por exemplo, front end, que é a
5:26parte ali de design, parte visual, a
5:27gente vai entender isso mais pra frente.
5:29A grande parte dos códigos hoje em dia é
5:31a que tá fazendo, OK? Inclusive na
5:33própria Tropic, que é a dona do cloud,
5:35boa parte do código é feito por IA. E,
5:37cara, em muitas empresas iss aqui é
5:38sempre uma realidade cada vez mais
5:40presente, mais é realmente a verdade do
5:43que acontece dentro das empresas, OK?
5:45Que aí criando código, porque atualmente
5:47ela tá criando num nível muito muito
5:48bom. E quando você tem experiência, você
5:50realmente consegue dar bons comandos,
5:52você consegue criar algo muito bom.
5:54Então, com poucos bugs, com poucas
5:55falhas de segurança, OK? E, enfim,
5:58falhas de segurança sempre vai ter, mas
6:00o nosso objetivo é deixar o mais difícil
6:02possível e reduzir, OK? E qualquer
6:04pessoa hoje em dia consegue buildar, tá?
6:06Qualquer pessoa consegue criar um
6:07software, qualquer pessoa consegue criar
6:08uma solução sem ter muita experiência
6:11técnica, tá? E aqui eu não tô falando,
6:13por exemplo, que você vai criar o novo
6:14Instagram, você vai criar um software em
6:173 meses, 5 meses, vai ter 1 milhão de
6:18usuários, vai ser totalmente escalável,
6:20etc. Não é isso, mas qualquer pessoa
6:22hoje em dia consegue criar boas soluções
6:24de inteligência artificial. E inclusive
6:27esse isso daqui que você tá vendo é
6:28oidraw. É uma ferramenta onde você
6:30basicamente consegue pegar aqui, ó, e
6:32desenhar, consegue criar esses diagramas
6:34aqui e a gente vai utilizar ele ao longo
6:36de todo o nosso curso. Só que o que é
6:38muito legal aqui é que normalmente o
6:40escalidral você usa na internet, tá?
6:41você tem ali na internet e tudo mais,
6:43você pode acessar, só que ele não tem a
6:45função de pastas, ele até tem, porém
6:47para você utilizar você precisa pagar. E
6:49cara, honestamente, eu não queria pagar
6:50isso por escalidraw, eu não queria ter
6:51que pagar ali, sei lá, $25 ou acho que é
6:54ó, alguma coisa assim todo mês para
6:56poder utilizar, porque no longo prazo ia
6:57ficar mais caro do que eu tentar outra
6:59ferramenta, outra solução. Só que o
7:01escalidraw ele possui um negócio que a
7:03gente chama de open source. Eu vou até
7:04mudar aqui para mim para te explicar o
7:06que que é open source. Open source
7:08basicamente é você ter um software que
7:10ele é aberto pro público. Então qualquer
7:11um consegue abrir o seu software, ver o
7:14seu código e tudo mais que você criou e
7:15também consegue instalar na própria
7:16máquina. Eu falei: "Cara, isso daqui é
7:18legal". Então o que que eu fiz? Eu
7:20peguei aqui o Scalidraw, eu baixei ele
7:22na minha máquina e eu dei toda a base de
7:24código dele cloud code. E aí ele fez o
7:26seguinte, esse software que você tá
7:28vendo aqui, ele realmente é um software
7:30todo, toda a base do escalidra tá aqui.
7:32Ele realmente é o escalidraw, porém a
7:35diferença é que eu pedi para ele
7:36adicionar isso daqui, uma barra lateral
7:39onde eu posso criar novas pastas. Eu
7:40posso vir aqui, ó, tendo cada tendo
7:43várias lousas diferentes, coisa que o
7:45Scalidraw só me permitiria ter pagando.
7:48E isso daqui eu fiz em coisa de 20
7:50minutos com o Cloud Code. Eu só baixei o
7:52código, na verdade eu nem baixei, para
7:54ser bem honesto. Eu pedi pro Cloud Code
7:55baixar o código, pedi para ele analisar
7:57o código e criar essa solução para mim.
7:59E tudo isso é feito em menos de 20
8:00minutos. E agora eu tenho minha própria
8:01solução aqui dois Calidral, onde eu
8:03posso criar novas lousas, novas pastas
8:05sem ter que pagar nada para eles, tá? E
8:07cara, eu tenho um conhecimento técnico,
8:09eu entendo um pouco aqui de arquitetura,
8:10um pouco eh de código, não a sintaxa,
8:13como escrever, mas eu tenho um certo
8:14conhecimento técnico. Só que se você me
8:16pedisse para fazer isso daqui, eu
8:18ficaria boiando e provavelmente eu nem
8:19iria sair do lugar. Então, cara,
8:21qualquer pessoa hoje em dia consegue
8:22buildar, OK? Seja do zero, ou seja,
8:24pegando, por exemplo, a base de algum
8:26software e adaptando, como foi aqui no
8:28caso do do Scalidraw. E hoje em dia,
8:30horas de desenvolvimento viraram
8:32minutos. Se eu fosse pedir isso daqui
8:33para um dev, provavelmente ele me
8:35cobraria ali R$ 1.000 no mínimo, tá? Só
8:37para talvez analisar o código e ver o
8:39que ele precisaria fazer. Depois talvez
8:40me cobraria mais 1000, R00 ou R$ 2.000
8:43para construir isso de fato e ele
8:45demoraria mais ou menos umas duas, três
8:46semanas para me entregar, tá? Isso daqui
8:48realmente é verdade, tá? E pode parecer
8:50que não, mas realmente seria. Talvez ele
8:52não pegaria, por exemplo, para fazer só
8:53o meu projeto, ele teria trabalho em
8:55paralelo, etc. Mas enfim, eu demoraria
8:57três semanas para ter um projeto que a
8:58IA criou para mim em menos de 20
9:00minutos, tá? Então é algo assim simples,
9:03isso aqui não é nada muito avançado, só
9:05que me economizou dinheiro, tá? Isso
9:06aqui é fundamental de A quando a gente
9:07fala de solução, é economizar dinheiro
9:09para você, pro seu cliente, ok? E
9:11também, cara, eu não precisei pagar tudo
9:13isso para dev, tá? Então, mesmo sendo
9:14algo simples, me economizou muito
9:16dinheiro, me economizou tempo, porque eu
9:17não esperei três semanas e realmente
9:19resolveu minha dor, resolveu o meu
9:21problema. E o que a gente faz aqui com
9:22Iá é isso, é isso que eu quero ensinar
9:24você a fazer com inteligência
9:25artificial, a resolver problemas, a
9:26resolver as suas dores, tá? E quem
9:28domina Cloud Code, quem domina
9:30inteligência artificial em 2026, entrega
9:3210 vezes mais rápido e às vezes até com
9:34mais qualidade. Porque realmente, cara,
9:36a questão aqui não é só você utilizar IA
9:37para construir, é você utilizar IA para
9:39te ajudar a pensar, para que você pense
9:41em soluções melhores, para que ela
9:42construa boa parte e você só precise
9:44realmente ir fazendo pequenos ajustes e
9:46pedindo para ela ajustar ali e aqui. E
9:48cara, isso aqui tá simplesmente
9:49fenomenal. Eu tô usando Cloud Code há
9:51bastante tempo e é incrível tudo que
9:53você pode construir com ele. Eu quero
9:55que você também tenha essa experiência e
9:56você também possa construir com o Cloud
9:58Code, ok? E qual que é a diferença real
10:01entre o cloud chat que a gente tem ali?
10:03Eh, você pode acessar, por exemplo,
10:04cloud. Engan e conversar com o cloud e o
10:08cloud code que você baixa aí no seu
10:09computador. Quando a gente fala do cloud
10:11chat, a gente tá falando de uma
10:12inteligência artificial, ok? Isso aqui
10:13realmente é verdade. E você acessa ali,
10:15você pode conversar com ela, você pode
10:16mandar arquivos, você pode pedir para
10:17ela criar código, tá? você também pode
10:19pedir para para ela criar código, só que
10:21ela é mais limitada porque ela tá
10:23limitada naquela interface de chat.
10:25Então ela consegue entrar na internet,
10:27consegue criar, por exemplo, diagramas
10:29semelhantes a esse daqui. Ela consegue
10:31fazer muita coisa, só que ela tá num
10:32ambiente limitado, tá? Então pensa, por
10:35exemplo, se você tá numa academia que
10:36tem poucos equipamentos, você tá
10:38limitado, você pode treinar, você pode
10:40fazer muita coisa boa ali dentro, é
10:41melhor do que nada, só que você tá
10:43limitado porque o seu ambiente tá te
10:45limitando. A mesma coisa é com o Cloud
10:46Chat. Quando ele tá ali naquele chat na
10:48internet, ele pode fazer muita coisa,
10:50mas a atuação dele de fato, o que que
10:52ele pode fazer é muito limitado, porque
10:53ele tá só na internet. Agora, quando
10:55você tem o Cloud Code, ele tá instalado
10:57no seu computador. Ele age direto nos
10:59projetos, ele consegue ler, escrever,
11:01executar arquivos, ele consegue, por
11:03exemplo, abrir o seu navegador, consegue
11:05usar ali os comandos que tem dentro do
11:07seu do terminal do seu computador.
11:08Então, ele pode, por exemplo, abrir um
11:09aplicativo automaticamente, ele pode
11:11baixar algum aplicativo, alguma
11:12dependência, qualquer coisa
11:14automaticamente. Ou seja, é como se ele
11:16tivesse aqui, cara, numa Aeronberg da
11:17vida. Para quem manja de academia, a
11:19Aonberg é o sonho de consumo de qualquer
11:21pessoa que treina. É uma academia com
11:23muitos equipamentos, com muita
11:24liberdade, muito grande. E é exatamente
11:26isso que é o cloud code. É o realmente o
11:28cloud, o modelo, a inteligência
11:29artificial dentro de um ambiente que
11:31extrai o melhor dele, tá? Ou seja, é uma
11:33academia top de linha aqui, basicamente
11:35que é o seu computador, onde ele pode
11:36fazer basicamente de tudo, tá bom? E
11:38aqui ele trabalha de forma autônoma.
11:40Então você consegue, por exemplo, pedir
11:41pro cloud criar um software completo e
11:43ele vai trabalhar criando software.
11:45Então dependendo, você pode, por
11:46exemplo, passar 20, 25, 30 minutos aqui
11:49sem fazer nada, só com o cloud ali
11:51rodando e criando o seu código, tá? Isso
11:52aqui pode acontecer. Ele vai trabalhando
11:54ali de forma autônoma, vai pensando, vai
11:56precisando, vai corrigindo algumas
11:58coisas, alterando e cara, isso daqui é
11:59muito muito legal, tá bom? Então aqui,
12:01só pra gente começar a realmente ir pro
12:03nosso conteúdo, sem muita enrolação,
12:05qual que é o resultado que eu quero que
12:06você tenha aqui com esse curso? Tá?
12:08Primeiro configurar ambiente CLI e IDE,
12:10OK? Então, a gente vai entender o que é
12:11o CLI, o que que é IDE. A gente
12:12realmente vai configurar aqui todo o seu
12:14ambiente para você utilizar o cloud
12:15code. A gente vai construir um projeto
12:17real do zero, que nesse caso vai ser
12:19aquela área de membros que eu comentei,
12:20que não é um projeto simples, tá? É um
12:22projeto mais complexo, que envolve
12:23várias questões e que vai ser bem legal,
12:25porque eu tenho certeza que a gente vai
12:26encontrar alguns bugs e a gente vai
12:27querer fazer alguns ajustes. Então, isso
12:29aqui vai ser bem legal pra gente
12:30trabalhar e a gente testar da melhor
12:31maneira possível. Depois a gente vai ver
12:33aqui sobre MCP, sobre skills, sobre
12:35hooks, OK? Inclusive, a gente vai
12:37utilizar na prática aqui MCP, Skills e
12:39tudo mais. Os hooks a gente não vai
12:41utilizar porque é uma parte um pouco
12:42mais complexa. Eu não quero trazer esse
12:43nível de complexidade agora nesse curso.
12:45Eu vou trazer alguns vídeos depois sobre
12:46hooks, porém nesse momento aqui a ideia
12:49ficar um pouco mais na parte que você
12:50realmente consegue executar sem
12:51complicar demais, porque eu quero que
12:52você avance e realmente consiga
12:54utilizar, ok? E nesse primeiro momento,
12:56os hooks honestamente não são tão
12:57relevantes. É importante que você saiba
12:59que eles existem, que você saiba o que
13:00eles fazem, mas ele usar de fato aqui a
13:03gente acabar nem utilizando porque não
13:04não vai haver necessidade, tá?
13:06Depois a gente vai fazer o deploy
13:08funcionando. Então nosso nosso sistema
13:10realmente vai funcionar, vai est na
13:11internet, a gente vai conseguir acessar.
13:13E por último, a gente vai criar times de
13:15agentes inteiros aqui para trabalhar em
13:17paralelo, em conjunto. Então agora que a
13:19gente já passou aqui por toda essa
13:20explicação sobre o que que mudou, sobre
13:21o resultado que eu quero que você tenha,
13:23agora que a gente já viu qual que é a
13:24diferença entre o chat e o cloud code,
13:26vamos de fato se aprofundar aqui na
13:28nossa base conceitual. Eu já poderia ter
13:29mudado a de lousa, tá? Mas eu quero
13:31exibir um pouquinho aqui do meu sistema
13:33para vocês que eu fiz com Cloud Code.
13:35Então aqui, por exemplo, ó, eu realmente
13:36consigo fazer tudo que eu faço com
13:37Scalidraw, porém com essas lousas e
13:39enfim, isso aqui é muito legal, é muito
13:41útil, tá bom? Então você consegue fazer
13:43muita, muita coisa boa com Cloud Code.
13:45Eu poderia já ter trago aqui, porém
13:47realmente quis abrir e mostrar que aí eu
13:49posso fazer isso para você, tá bom?
13:50Então vamos lá. O que que é um token? A
13:53primeira coisa que a gente precisa
13:54entender, porque ele vai ser muito
13:55importante pra gente entender a parte de
13:56contexto e porque que isso daqui é
13:57importante, tá? Então o token ele não é
14:00uma palavra, tá? Ele é basicamente um
14:01pedaço de texto. Então sempre que a
14:03responde alguma coisa para você e sempre
14:05que ela cria, por exemplo, um código, o
14:06que ela retorna são vários tokens, ok? E
14:09a IA, ela também não lê texto, ela lê
14:11uma sequência de tokens. Então quando
14:13você manda um prompt, um comando pra IA,
14:15o que ela tá recebendo ali é de fato
14:17tokens. O que que são esses tokens? É
14:18basicamente um conjunto de números que
14:20indica qual que é o significado
14:21semântico de uma palavra. Então, por
14:24exemplo, quando a gente fala de, ah, o
14:26cachorro bebeu água, o que ela recebe
14:28não é essa frase, ela recebe um conjunto
14:30de números que faz com que ela consiga
14:32depois prever os tokens que vem depois.
14:35Então, basicamente, ela pega um conjunto
14:36de números, entende ali é basicamente ao
14:38que que eles se referem, OK? E depois
14:40ela consegue gerar outro conjunto de
14:42números que são mais prováveis de sair
14:45depois desse conjunto, tá bom? Então,
14:47basicamente, aí ela consegue gerar
14:48tokens, OK? Esses tokens são palavras e
14:51o que ela vai fazendo é vendo ali o que
14:52que ela recebeu e o que que é mais
14:54provável de vir depois desses tokens.
14:56Eu, por exemplo, sempre gosto de mostrar
14:57esse site aqui quando eu vou falar de
14:59tokens. Por quê? Aqui eu posso
15:00basicamente digitar um texto e aqui ele
15:02me retorna quais são os tokens desse
15:04texto. Então, por exemplo, eu falei que
15:06tokens não é uma palavra, um pedaço de
15:07uma palavra, mas quando é uma palavra
15:09pequena, como olá, um token pode ser a
15:12palavra toda, tá bom? Mas basicamente
15:14aqui a gente tem olá que é um token, tem
15:16a vírgula que é outro token, tem isso
15:18que também é um outro token nesse caso,
15:20só para me contrariar, ok? A gente tem o
15:22e, tem o um e tem um teste. Nesse caso
15:25aqui, todas as palavras, tudo que a
15:26gente tem virou um token, infelizmente.
15:28Mas eu posso mandar aqui, por exemplo,
15:30eu sou o Lucas e trabalho com
15:33inteligência artificial. Eu vou escrever
15:35aqui porque provavelmente ele vai
15:36dividir, ó. Perfeito. E algumas palavras
15:39longas para que ele divida, OK? Nesse
15:41caso aqui desse modelo do GPT com a GPT
15:435 em diante, ele tokeniza dessa maneira.
15:45Então, por exemplo, olha, eu tenho aqui
15:47o eu, o Sou, que também é um token. Eu
15:49tenho o espaço aqui que virou um token,
15:50porque eu tenho dois espaços, então um
15:52espaço virou o token. Eu tenho o O, que
15:54também é um token junto aqui com espaço.
15:57Eu tenho o espaço lu que é um token.
16:00Depois eu tenho o as, que é um outro
16:02token, tá bom? Enfim, vou ficar
16:03repetindo aqui, mas basicamente cada
16:05pedacinho de cor que a gente tem aqui é
16:06um token. E quando a gente manda uma
16:08palavra para, o que ela vê não é isso
16:10daqui, ela vê isso daqui, tá? Ela vê
16:13entre aspas também, tá? Porque ela
16:14recebe isso daqui, um conjunto de
16:15números que carrega o significado
16:17semântico daquela frase, tá bom? E com
16:19isso ela consegue prever quais são os
16:22outros conjuntos de números que vão vir
16:24em sequência, qual que é a probabilidade
16:25de cada token, ok? Então, quando a gente
16:27fala que, por exemplo, inteligência
16:28artificial não tem sentimento, que ela
16:29não consegue entender emoções humanas, é
16:31porque ela realmente não consegue
16:32entender essas palavras. Ela entende um
16:34conjunto de números e ela calcula qual
16:35que é a probabilidade do próximo número
16:38vir ali. Então, qual que é o número mais
16:39provável de vir em sequência depois
16:41daquele conjunto de números que ela
16:42recebeu, OK? E por que que isso daqui é
16:44importante, tá? Primeiro custo, porque a
16:47gente paga por token movido. Então,
16:48sempre que a gente manda ali, por
16:49exemplo, uma mensagem paraá, ela tá
16:51consumindo token e tá gerando token e a
16:53gente paga por isso. Nesse caso do cloud
16:55code, eu vou te mostrar as diferentes
16:57formas que a gente tem de utilizar, ok?
16:59A gente não vai pagar exatamente por
17:00tokens no cloud code, mas sempre que a
17:02gente constrói alguma solução com
17:03inteligência artificial, tipo um a gente
17:05já no WhatsApp ou algo assim, a gente
17:06vai pagar por tokens, ok? Segundo,
17:09velocidade mais tokens gera mais
17:11lentidão. Ou seja, a velocidade que a
17:13gente gera uma resposta é basicamente o
17:15seguinte: quanto mais tokens a gente
17:16tem, tanto para ele consumir quanto para
17:18ele gerar, mais lento vai ser a geração
17:21da resposta. Então, por isso que a gente
17:23pode ter aqui, por exemplo, mandar um
17:24prompt para ele e ficar 20, 25, 30
17:26minutos esperando, principalmente quando
17:28a gente fala para ele construir um
17:29software completo, porque ele vai est
17:30gerando todo o código do software, todo
17:32o design, tudo isso. E tudo isso leva
17:35tempo porque ele precisa gerar muitos
17:37tokens, ok? Terceiro, limite. Toda
17:40sessão tem um teto máximo. Então ali a
17:41gente vai ver o que são uma sessão
17:42dentro do cloud code, mas toda sessão
17:44ela tem um teto de quantos tokens pode
17:45ser consumido, quantos tokens podem ser
17:47enviados e tudo mais. Então a gente tem
17:49ali todas as questões que a gente pode
17:50utilizar paraa gestão de contexto, OK?
17:52Para que a gente evite a máxima de ficar
17:53com ele sobrecarregado, mas chega um
17:55ponto em que é melhor melhor criar uma
17:57nova sessão do que ficar naquela mesma,
17:59OK? E também a qualidade. Quando a gente
18:01chega perto do teto de tokens ali de uma
18:03sessão, a gente começa a perder a
18:05qualidade do modelo. Ele começa a errar
18:08mais porque ele acaba esquecendo de
18:09algumas coisas. É como se ele não
18:11tivesse uma lembrança sobre isso, ok?
18:13Então isso aqui é muito importante a
18:14gente entenda o que são os tokens e
18:16também o que é a janela de contexto, ok?
18:19A janela de contexto é basicamente a
18:20memória de um agente, só que é até onde
18:23ele consegue se lembrar. Então, por
18:24exemplo, então nesse caso aqui, tudo que
18:26o cloud sabe, toda a informação que ele
18:27tem acesso tá aqui. Então, o prompt que
18:30a gente manda, as respostas que ele
18:31gera, os arquivos que ele lê, as
18:33ferramentas que ele tem acesso, as
18:35skills, tudo isso consome tokens do
18:37nosso modelo, tá? Tudo isso vai
18:39preenchendo ali a janela de contexto
18:41dele, que é basicamente até quando ele
18:42consegue se lembrar. E quando ela enche,
18:44ele vai se esquecendo do início e
18:45principalmente do que tá no meio. Por
18:47quê? A gente tem basicamente isso daqui,
18:49ó. Eu vou desenhar aqui um graficozinho
18:51pra gente, muito simples, OK? onde a
18:53gente tem basicamente, então aqui a
18:54gente vai ter basicamente duas coisas, a
18:56performance do modelo, OK? E também vou
18:59colocar aqui o quanto que ele lembra,
19:01tá? Porque isso aqui vai ser legal pra
19:02gente, tá? Então é basicamente a
19:04performance barra o quanto que ele
19:05lembra, ou seja, o resultado que ele
19:07entrega e o quanto que ele consegue
19:08lembrar pra gente, tá bom? Ou seja, a
19:10curarça ali que ele tem na memória dele.
19:12E aqui embaixo a gente vai ter a posição
19:14na memória, tá? Isso daqui não tô
19:15inventando aqui, não sei o que tô
19:16falando isso. Isso aqui veio de um
19:17artigo chamado Lost in the middle, que é
19:19basicamente o perdido no meio. E agora
19:21você vai entender porque que ele tem
19:22esse nome, tá? E aqui eu tô
19:23simplificando um pouco para ficar mais
19:24fácil e mais acessível para você. E o
19:26que a gente vai ter aqui, tá? A gente
19:28vai começar aqui em cima com o máximo de
19:29performance, ele lembrando bastante
19:31dessa parte do documento, OK? Porém,
19:33conforme a gente vai colocando mais
19:34informação aqui no nosso prompt, na
19:36nossa janela de contexto, vai
19:37acontecendo isso, vai descendo aqui. E
19:40quando a gente chega aqui mais ou menos
19:41no meio, eu não sou muito bom com
19:43desenhos, mas eu tô me esforçando aqui.
19:45Quando chega aqui mais ou menos no meio,
19:46é o ponto onde o nosso modelo lembra de
19:48menos informações do documento. Ou seja,
19:50a gente tem aqui a nossa janela de
19:52contexto, tá bom? Pensa que isso daqui,
19:53ó, é a nossa janela de contexto, tá?
19:55Tudo isso daqui que a gente tem, todas
19:57as informações que a gente tem ali,
19:58prompt, etc., elas vão estar aqui dentro
19:59desse retângulo. As informações que
20:01estão aqui no meio, por exemplo, ó, a
20:03gente tem aqui as informações no meio,
20:04né? Vou colocar elas um pouco mais
20:06densas e tem as informações aqui no
20:07final, elas serão mais esquecidas por
20:10ele vai se lembrar muito do que tá no
20:12começo e vai lembrar um pouco mais
20:14também, um pouco mais do que no meio das
20:16informações que estão aqui no final.
20:18Porém, o que tá aqui no meio, ele vai se
20:20esquecer de algumas coisas. E quando eu
20:22digo esquecer, eu digo que ele não vai
20:23ter uma performance tão boa com base
20:25nessa parte do documento. Então o que
20:26vai acontecer aqui é que, por exemplo,
20:28se você manda um documento para ele
20:29muito grande e você pergunta sobre
20:31alguma informação aqui no meio, a
20:32probabilidade dele não se lembrar, dele
20:34não conseguir te responder com 100% de
20:36precisão, com 100% de acerto, é maior do
20:39que se você perguntar alguma coisa sobre
20:41o início do documento ou sobre o final
20:43do documento, tá bom? Então, por isso
20:45que isso daqui é muito importante,
20:46porque não adianta nada a gente querer
20:47construir alguma coisa com uma janela de
20:49contexto muito cheia, porque ele vai se
20:51esquecer de algumas coisas e também
20:53quanto mais informação você manda para
20:54ele, pior vai ser o resultado que ele
20:56gera, porque ele vai ter mais
20:57dificuldade de raciocinar, de pensar, de
20:59trabalhar com tudo aquilo que ele
21:00precisa, ok? E aqui a gente tem quatro
21:02zonas de contexto, tá? Isso aqui não é
21:03bem exatamente dessa maneira, quer dizer
21:05que vai ser sempre assim, mas eu quis
21:07colocar isso daqui para te ajudar a
21:09entender melhor como que você deve
21:10gerenciar o seu contexto. E aqui eu tô
21:12passando na parte conceitual. Eu tô
21:13buscando fazer você entender as coisas
21:14primeiro. Depois a gente vai ver como
21:16isso aqui funciona na prática, como que
21:17a gente faz, como que a gente manipula,
21:19etc. Ok? E o que acontece? A gente tem
21:21as quatro zonas de contexto. A gente tem
21:23aqui a zona verde, OK? Que é o quê? É
21:25quando tudo tá fluindo. Você tem ali,
21:27cara, bastante contexto livre. Ele tá
21:28conseguindo criar tudo de boa. Ele se
21:30lembra de tudo que ele fez. Ele sabe
21:32qual que é o código que ele tá
21:33construindo, ele sabe de todas as
21:34informações e detalhes importantes.
21:36Então aqui, cara, tá até 50%, você tá
21:39muito tranquilo, não tem com que se
21:40preocupar. Agora, quando a gente começa
21:42a ficar aqui amarelinho, ou seja, a
21:44gente tá ali entre 70%, a gente tem que
21:47prestar atenção. A gente ainda pode
21:49continuar usando aqui aquela sessão, mas
21:51a gente já fica com atenção porque
21:52algumas coisas podem sair erradas, tá?
21:54ou a gente pode ter que relembrar alguma
21:56coisa, pode ter que citar novamente para
21:57que ele realmente gereja
22:01em 70% aqui a gente já precisa começar a
22:04tomar algumas atitudes que é o quê? É
22:06criar uma nova sessão no cloud code, é
22:08usar o comando barraca compact que ele
22:10vai compactar aquele contexto dando uma
22:12limpada ali dentro, tá? Então ele vai
22:13limpar ali, vai tirar o que não é
22:15essencial, ok? E senão analisar as
22:18skills que a gente tem ali dentro, os
22:19MCPs que estão ativados, tudo isso é
22:21muito importante, OK? E por último, a
22:23gente tem aqui em vermelho, cara, mais
22:25de 90% já começa a mexer urgentemente
22:27nas coisas. Aí começa a remover alguns
22:29documentos que não são importantes, que
22:30são só de informação, começa a remover,
22:32por exemplo, algumas skills que você não
22:33tá utilizando, alguns MCPs, limpa o seu
22:36contexto, inicia uma nova sessão, tá? A
22:38que vai ser muito muito importante, tá
22:40bom? Então, quando tiver aqui, por
22:42exemplo, a parte amarela, já começa a
22:44analisar, tá? já fica um pouco mais pé
22:46atrás, já começa ali ver algumas
22:47práticas pra limpeza do contexto, para
22:49que você tenha um resultado melhor. A
22:50gente vai ver também quais são essas
22:52práticas na prática mesmo de fato que
22:54você pode tomar, ok? E o que que consome
22:56a janela de contexto do nosso cloud
22:58code? basicamente tudo que a gente manda
23:00para ele. Então o seu prompt vai
23:02consumir, as respostas do cloud vai
23:04consumir, os arquivos que ele lê vai
23:06consumir, o resultado de ferramentas e
23:09de CLI que ele executa. Então, por
23:11exemplo, se ele usa um um MCP do Supe,
23:13isso aqui vai consumir ali tokens dele.
23:16Então ele vai ter ali tokens que ele,
23:17tanto do que ele mandou quanto do que
23:18ele buscou, do que ele recebeu de
23:20resultado. Aí a gente vai ter também
23:21aqui os tokens, por exemplo, de skills,
23:23OK? Ou seja, de quais skills ele tem
23:25ativa, é de quais skills ele buscou,
23:27qual skill que ele usou. vai ocupar aqui
23:29a janela de contexto do nosso agente. A
23:31gente também vai ter, por exemplo, os
23:32comandos que ele executa no seu
23:33computador. Então, tudo isso vai
23:34consumindo o contexto do nosso cloud
23:37code e também as instruções gerais, tá?
23:39Ou seja, as instruções globais que a
23:40gente tem ali, que vão servir para cada
23:42projeto que a gente tem do cloud code.
23:43Para todos os projetos, se a gente tem
23:45alguma instrução global, ela vai servir,
23:47ela vai se aplicar e vai consumir do
23:48nosso contexto. Então, sobre contexto é
23:50basicamente isso. O contexto basicamente
23:52a gente faz com base em tokens, então
23:54aqui que é aqueles pedaços de palavra
23:55que a gente vai ter, OK? fazer com base
23:57nos tokens e é importante que a gente
23:59fique atento nele, que a gente gerencie
24:00para que a gente consiga bons
24:01resultados. Quanto mais informações a
24:03gente tiver no nosso contexto, mais
24:05informações a gente vai perder, mais da
24:07qualidade do nosso modelo a gente vai
24:08perder, tá bom? Então é importante que a
24:10gente tome muito cuidado com o nosso
24:12consumo de tokens, com tudo que a gente
24:13tá fazendo aqui dentro. E agora eu quero
24:16trazer você para é o conceito de
24:18software, tá? não vai ser exatamente
24:20sobre a, mas como a gente vai utilizar o
24:21cloud code para criar software, então eu
24:23quero que você entenda esse conceito de
24:24software antes da gente realmente
24:25começar a ver sobre o cloud code, porque
24:27o cloud Code no final das contas ele é
24:29uma ferramenta. Esse conceito aqui de
24:30front end, de back end, ele vai se
24:32aplicar a tudo, ok? Então vamos primeiro
24:34começar aqui pelos conceitos de
24:35ferramenta, pelos conceitos de a de
24:37forma geral, é de ferramenta não, né?
24:39Perdão, de software de IA. E depois a
24:41gente vê realmente parte de ferramenta,
24:42porque isso daqui vai se aplicar a
24:44qualquer ferramenta que você for
24:45utilizar, ok? Bom, quando que a gente
24:48fala aqui de front end e back end, o que
24:49a gente quer dizer? Basicamente, e aí de
24:51forma muito simplista aqui por enquanto,
24:53o front end ele é a interface da sua
24:54aplicação. Então é tudo que tem ali que
24:56o seu usuário consegue ver no seu
24:58software. Então é a página que você
24:59criou, é o botão que ele consegue criar,
25:01clicar, quer dizer, é tudo que tem ali
25:03de visual que ele consegue interagir, é
25:05o front end. O back endo que ele não
25:08consegue ver, é tudo que acontece por
25:09debaixo dos planos. Então a lógica de
25:11processamento, toda a lógica de negócio
25:12que você tem ali, toda a lógica de
25:13processamento acontece no backend. Tudo
25:16que roda ali no servidor, o seu banco de
25:18dados, tudo que você usa para, por
25:19exemplo, calcular um resultado, para
25:20gerar um resultado pro usuário final,
25:22acontece no backend. Numa parte ele não
25:25visualiza, então tudo que o usuário vê
25:27que ele toca vai est no frontend. Então
25:29telas, botões, formulários e dados que
25:32são exibidos, etc. Estão no front end,
25:34ok? Ele roda ali no navegador da pessoa.
25:36Agora o back end ele acontece por trás.
25:39Ele roda no servidor, tem lógica, tem
25:41processamento, tem o banco de dados, tem
25:42todos os cálculos ali que você precisa,
25:44por exemplo, para entregar um resultado.
25:46Então, vamos supor que você tem um
25:47dashboard de vendas. Todo esse cálculo
25:49de de vendas, de quantas vendas teve, de
25:51quanto que falta, por exemplo, para
25:53meta, tudo isso acontece por debaixo dos
25:55panos, OK? Acontece ali nos bastidores,
25:58no back end, tá bom? E basicamente como
26:00que funciona essa comunicação? O seu
26:01usuário ele vem aqui, ele acessa o front
26:03change, OK? Então ele acessou o
26:05frontend, o frontcha vai pedir os dados
26:07pro usuário, então ele pede os dados do
26:09usuário lá no backend, ok? O back endar
26:13essas regras no banco de dados. Então,
26:15por exemplo, a gente vai cuidar para que
26:17um usuário não veja a informação de
26:18outro usuário. Ele só consiga ver as
26:21informações dele mesmo, ok? Depois o
26:24back end vai retornar, o banco de dados,
26:26perdão, vai retornar pro back end essa
26:27informação. O back end vai responder em
26:29Jzon prochain, que é basicamente uma
26:31estrutura de dados, OK? Não se preocupa
26:33com isso aqui agora, mas é basicamente
26:34como os dados são organizados para que
26:36computadores consigam consumir, tá?
26:37Então é bem simples de entender, não
26:39precisa prestar muita atenção nisso, até
26:40porque boa parte a vai fazer pra gente,
26:42tá? Depois a gente explora um pouquinho
26:43mais sobre isso, mas entenda que os
26:45dados não trafegam de em texto corrido,
26:47eles trafegam na maior parte das vezes
26:49em Jzon, que é a linguagem meio que
26:51universal, a estrutura universal de
26:52dados, OK? Depois ele retorna pro front
26:55end e o front end exibe a interface com
26:57os dados, ok? É basicamente isso que
26:59acontece. Vem aqui, o usuário pede pro
27:01front end, o front end pede pro back end
27:04que pede pro banco de dados, ok? Então,
27:07por que que a gente pede pro banco de
27:08dados? Porque dependendo do que for
27:09feito, a gente não precisa do banco. Se
27:11é, por exemplo, fazer um cálculo, se,
27:12por exemplo, é trabalhar com alguma
27:14lógica, a gente pode trabalhar
27:15diretamente aqui é no back end, tá? Aí
27:18só retornar pro front end. Mas quando a
27:20gente quer buscar algum dado que ficar
27:21armazenado, a gente sempre procura no
27:23nosso banco de dados, OK? Então,
27:24manchados vem, retorna pro back end, o
27:26back end retorna pro front end, que vai
27:28retornar a informação pro usuário para
27:30que ele possa acessar, consumir e
27:32utilizar. OK? Basicamente é isso que
27:35acontece. E quando a gente fala de
27:36software, ou seja, de construir um
27:38sistema de fato, todo software possui
27:40essas três camadas aqui, tá? Então, ele
27:42possui o front end, que é o que o
27:43usuário vai ver, ele possui o back end,
27:45que é o que vai gerenciar toda a parte
27:47de lógica, todo o processamento, tá? E
27:49lá por debaixo dos planos ainda vai ter
27:50o banco de dados que vai armazenar os
27:52dados, tá? O banco de dados é o
27:53fundamental, é principal que existe um
27:55banco de dados para que armazene os
27:56dados. Sem o banco de dados, por
27:58exemplo, se você acessa lá, vamos supor
28:00aqui mesmo, tá? O banco de dados nesse
28:02caso é o meu computador, fica tudo
28:03armazenado no meu computador. Se eu faço
28:05aqui um rabisco, faço uma lousa aqui e
28:07preenchá com informações, eu não tenho
28:08banco de dados, eu não tenho isso daqui
28:10sendo armazenado no meu computador, eu
28:11vou perder essas informações. A mesma
28:13coisa quando você acessa, por exemplo, o
28:14Instagram. Se você tenta criar um post e
28:16o Instagram não tem banco de dados, tá?
28:18Ele não conseguiria salvar esse post e
28:20exibir para outras pessoas. Então, o
28:22banco de dados é fundamental porque é
28:23ele que armazena todas as informações de
28:25forma persistente. Ou seja, mesmo que
28:27reinicieem o servidor, mesmo que
28:29desliguem ele, liguem de volta, enfim,
28:31tudo que for feito ali, o banco de dados
28:33vai salvar esses dados, vai garantir que
28:34eles não sejam perdidos em caso de
28:36reiniciar o servidor, de desligar, etc.,
28:38porque tá tudo salvo ali, OK? Então, ele
28:40realmente vai conseguir depois retornar
28:41normalmente. Então, o banco de dados é
28:43muito importante porque sem ele você não
28:44tem informação armazenada, ok? E qual
28:47que é a diferença aqui agora um pouco
28:48mais profundo do cloud code, tá? Quando
28:51a gente fala do cloud, a gente fala do
28:52modelo de inteligência artificial. Ele
28:54por si só ele só consegue responder a
28:56gente, tá? Quando eu tô falando aqui do
28:57cloud, modelo de inteligência artificial
28:59e não do site ali, do chat do cloud,
29:02quando a gente fala só do modelo, ele só
29:03consegue tirar texto. Ou seja, você
29:05responde e ele te dá uma resposta. Você
29:07pergunta, na verdade, ele te dá uma
29:08resposta. Você manda uma mensagem, ele
29:10te responde. Então, basicamente, eh,
29:12você pede sempre alguma coisa para ele,
29:13tá? Você não consegue ter autonomia,
29:15você não consegue ter controle. Quando a
29:17gente fala do Cloud Code, ele é de fato
29:19um agente. Ele é um agente autônomo que
29:21age no seu computador. Então ele
29:22consegue planejar, agir, verificar e
29:25corrigir. OK? Ele tem aquele ciclo que a
29:27gente chama de react, que é o quê? É
29:29reasoning, raciocínio mais ação. Então
29:32ele consegue raciocinar sobre o problema
29:33que você dá para ele e agir em cima
29:35disso, ok? E nesse caso ele age direto
29:38no nosso projeto, criando ali o nosso
29:39código, eh, criando skills, criando o
29:41que a gente quiser ali dentro, tá bom?
29:43Então ele consegue ler, escrever e
29:45executar comandos. Então essa que é a
29:46diferença do Cloud Code, é porque ele de
29:48fato é um agente de inteligência
29:50artificial. E quando a gente fala de um
29:51agente, a gente tem esse loop interno,
29:53tá? Que a gente tem a tarefa recebida.
29:56Então, por exemplo, a gente envia uma
29:57mensagem ali pro cloud code, a gente
29:58pede para ele criar um software, pede
30:00para ele criar uma skill, ele planeja os
30:02passos, então ele entende o nosso
30:04pedido, ele entende o que ele vai
30:05precisar utilizar, planeja os próximos
30:07passos e vai executando. Então aqui ele
30:09executa ferramentas, ele gera o código,
30:11ele gera o texto, ele gera o que a gente
30:12pediu, verifica o resultado e corrige,
30:15tá? Caso tenha algum erro, caso ele
30:17precise adaptar alguma coisa, ajustar,
30:19ele corrige esse erro e depois retorna
30:21aqui pro nosso loop. Ou seja, ele vem,
30:23planeja os passos, executa a ferramenta,
30:25verifica o resultado até que ele tenha
30:27chegado no resultado final e esteja tudo
30:28funcionando. E onde que o cloud code
30:30roda, tá? Basicamente, ele vai rodar em
30:32dois principais lugares aqui que a gente
30:33pode utilizar. É, na verdade, dois
30:36principais que a gente vai utilizar
30:36aqui, mas também tem um terceiro, OK? O
30:39principal é no terminal, então na nossa
30:41interface principal via CLI, que é
30:43basicamente o quê? No caso do Windows,
30:45eu vou apertar aqui o Windows R, dar um
30:47enter e aqui no meu terminal tá digitar
30:49cloud. Eu venho aqui, ele vai abrir o
30:52meu cloud e eu já posso interagir com
30:54ele. Vou aqui falar para confirmar. E
30:56aqui eu vou falar, ó, dar um oi pra
30:57galera. Aqui ele já tá rodando o cloud
30:59code. Se eu pedir para, por exemplo, ele
31:01acessar alguma pasta no meu computador
31:02para ele fazer alguma coisa, ele já vai
31:04funcionar. Inclusive aqui ele retornou
31:05um oi para vocês, tá? Mas fica
31:08tranquilo, a gente pode utilizar o cloud
31:09aqui pelo terminal, mas não é aqui que a
31:11gente vai utilizar ele. A gente vai
31:12utilizar o cloud pela IDE, tá? O que que
31:14é uma IDE? É basicamente um ambiente de
31:16desenvolvimento, onde a gente pode ali e
31:18ver arquivos, configurar arquivos, a
31:19gerenciamento de GitHub, etc, pela IDE.
31:22E a gente também vai utilizar pela
31:23interface, que é muito mais amigável,
31:24muito mais fácil. Eu já mostro para você
31:26como é que fica, OK? A gente também vai
31:28ter o GitHub @cloudinprss. Você pode,
31:31por exemplo, subir uma PR lá no GitHub,
31:33que para você que não conhece, é
31:34basicamente um sistema utilizado
31:36mundialmente para armazenar ali os seus
31:38códigos. Então você consegue subir os
31:39seus códigos lá no Hitub, ele fica
31:41armazenado ali e ali você consegue, por
31:43exemplo, trabalhar em conjunto com
31:44outras pessoas, consegue analisar algum
31:46código, consegue analisar e algum
31:48documento, consegue versionar. Então
31:50você consegue ter diferentes versões do
31:51seu código para você conseguir ter ali
31:53um controle. Caso, por exemplo, você
31:54suma uma versão para produção, ela tem
31:56um erro, você consegue retornar pra
31:57versão anterior, ok? Então, o GitHub ele
32:00basicamente, de forma bem simplista para
32:01que você entenda, ele é um lugar onde
32:03você consegue armazenar o seu código,
32:04tá? E aí dentro disso ali ele vai ter
32:06várias ferramentas internas que vão te
32:08ajudar, por exemplo, a construir de
32:09forma mais escalável, mais segura, etc.
32:11E é utilizado mundialmente, ok? E aqui
32:14um ponto muito legal do Cloud Code é que
32:15ele entende todos os todo o projeto e
32:17não só os arquivos abertos. Então, por
32:19exemplo, basicamente um projeto é o quê?
32:21No nosso computador, um projeto vai ser
32:22uma pasta. Dentro dessa pasta, ele
32:24consegue entender todos os arquivos que
32:26estão dentro dela. E ele não depende
32:28somente daqueles arquivos que estão
32:29abertos, que você tá olhando, que você
32:30tá acessando. Ele consegue abrir todos
32:32os arquivos, entender todos eles e aí
32:34agir, tá? Então ele entende todo o
32:36projeto que você tem ali dentro da sua
32:37pasta, OK? Então aqui agora eu quero
32:39trazer um pouco mais alguns conceitos
32:40que a gente vai utilizar no cloud de
32:42MCP, de APIs e de web hooks, OK? O MCP
32:45eu já deixei aqui, porém eu vou explicar
32:47antes. AP e Web Hook. Eu quero desenhar
32:49um pouco com você para que você entenda.
32:51Que que é aqui? Uma API, tá? Uma API,
32:53basicamente é uma forma que a gente tem
32:55para se comunicar com outras
32:57plataformas. Então, vamos supor, o
32:59Instagram permite que eu envie uma
33:01mensagem para você, caso você tenha
33:02enviado uma mensagem para mim. É uma
33:03regrinha interna do Instagram, mas não
33:05foca nisso agora, ok? Ele permite que eu
33:07envie uma mensagem para você através da
33:08PI. Então, ao invés de eu ter que entrar
33:10lá no meu Instagram e mandar mensagem
33:12para você, eu consigo vir aqui na PI do
33:15Instagram. Então tem, por exemplo, eu
33:17aqui desse lado, eu peço para ele, ó,
33:19envia uma mensagem pro fulano. Então eu
33:21peço paraa PI e a PI vai lá no servidor,
33:24pede para enviar e você aqui do outro
33:25lado recebe a mensagem. Então uma API é
33:28basicamente uma forma programática da
33:30gente se comunicar com outros sistemas.
33:32E quando eu falo programática,
33:33basicamente eu quero dizer o quê? E sem
33:35ter que fazer manualmente, eu posso
33:37fazer através de código, através do Nit,
33:39eu consigo fazer uma requisição e eu
33:40consigo me conectar com outras
33:42plataformas. Então posso, por exemplo,
33:43pedir, vamos pôr aqui agora um outro
33:45sistema. Eh, a gente tem um sistema, eu
33:47posso ter um CRM, por exemplo, onde eu
33:49posso pedir pra pay dele criar um novo
33:51contato. Então eu venho, faço o pedido
33:53na API, ele vai lá no banco de dados e
33:55fala: "Ó, tem esse carinha aqui querendo
33:57criar um novo contato no back end, na
33:59verdade". E o back end vai lá, trata
34:00todos os dados, vê se tem tudo que ele
34:02precisa e aí ele cria o usuário no banco
34:04de dados, ok? Então, basicamente, uma
34:06API é uma forma de se integrar, de se
34:08comunicar com outras plataformas. Pensa
34:09na pe como garçom de um restaurante.
34:11Você pede pro garçom alguma coisa, um
34:13prato de comida, alguma coisa assim. Ele
34:14vai lá na cozinha, que é o servidor, e
34:16pede para eles. Ó lá, o cara ali pediu
34:18para você fazer um carbonara, por
34:21exemplo. Foi o primeiro exemplo aqui que
34:23me veio na cabeça. Ele pedi para você
34:25fazer um carbonara. Aí o cara fala:
34:26"Beleza, vou preparar". Então a PI vai
34:28lá, o servidor vai lá. Então o servidor
34:30vai lá, prepara ali o que você pediu,
34:32nesse caso carbonária, e depois o garçom
34:34vem e te entrega de volta. É isso que
34:36acontece no API. Você pede algo, OK?
34:38Então você vem aqui, pede alguma coisa e
34:41ela te retorna outra coisa. Então ela te
34:43retorna, éí basicamente esse daqui, o
34:44fluxo de toda a API. Você pede algo e
34:46depois ela te retorna a algo, tá? Um ID,
34:48uma informação ou algo do tipo. E a
34:51gente também tem o web hook. Que que é o
34:53web hook? Basicamente, o hook é alguém
34:55que vai te avisar quando algo ficar
34:56pronto. Então, por exemplo, o garçom,
34:58ele não precisa ir toda hora lá lá na
35:00cozinha, porque em determinados
35:02restaurantes eles podem ter um sistema
35:03onde ele só fala ali, ó, pedido tal tá
35:05pronto. Quando o pedido tal fica pronto,
35:07o web Hook vai e avisa o garçom, ou
35:10seja, esse sistema avisa o garçom.
35:11Então, ao invés de você precisar ficar
35:13perguntando toda hora pro garçom, ou o
35:15garçom tem que perguntar toda hora pra
35:16cozinha, ele só recebe a informação
35:18quando tá pronto. Então, ele não precisa
35:19ficar perguntando, ele só recebe, ó, tá
35:21pronto isso daqui, ó. Você pode fazer o
35:22que você quiser aí agora e vai lá e você
35:24faz o que você quer. Então o web hook,
35:26vou até aumentar um pouquinho aqui, ele
35:28é basicamente alguém que te avisa quando
35:29algo acontece. É uma notificação que
35:31chega para você. Então, por exemplo,
35:33escolhe aqui um iFood, quando o
35:35entregador tá perto da sua casa ou o
35:36Uber tá perto de você, o Uber vai lá e
35:38manda uma notificação para você. É
35:40exatamente isso que é web hook. Para que
35:41você não tenha que ficar perguntando
35:42toda hora na PI, ou seja, você não tem
35:44que ficar aqui, ó. Ei, tá pronto? Ei, tá
35:47pronto? Ei, tá pronto? Ei, terminou isso
35:48daqui? O webhook, ele vem aqui e te
35:50avisa, ó, tá pronto, você já pode pegar
35:52aqui. E o webhook manda para você a
35:54informação. A mesma coisa com o Uber.
35:56Você não precisa ficar olhando toda hora
35:57pro celular para ver se ele tá chegando
35:58ou não. Quando d ali 2 minutos, ou seja,
36:00em 2 minutos o motorista vai chegar, ele
36:02já te avisa, ele manda uma notificação
36:04para você e também tem a vibração ali e
36:06tudo mais. Ou seja, ele te avisa quando
36:07tá perto, quando tá chegando e tudo
36:09mais, sem que você tenha que ficar
36:10perguntando, sem que você tem que ficar
36:12olhando toda hora pro aplicativo do
36:14Uber. E no caso é isso que é uma API e
36:15um web Hook, OK? E o MCP ele serve
36:18justamente por quando a gente fala de
36:20API, eu vou até mostrar uma documentação
36:21API para você. Vou pesquisar aqui, ó,
36:23Docs API RDS Station. A gente pode
36:26pesquisar sim API de qualquer plataforma
36:28que a gente quiser. Nesse caso aqui eu
36:30pesquisei da RD Station, que é um CRM.
36:32Eu posso acessar aqui a documentação e
36:33tudo mais. Deixa eu vir aqui na parte de
36:35API. E quando eu venho em API, olha o
36:38tanto de informação que eu tenho. Tudo
36:40isso daqui são informações que eu posso
36:41utilizar para fazer alguma coisa no CRM
36:43deles. Então, por exemplo, eu posso vir
36:45aqui em contatos e criar um novo
36:47contato. Aí eu venho e falo para eles,
36:48ó, eu quero criar um novo contato com
36:50esse nome, com esse número e com esse
36:52e-mail. Eles vão lá e criam. Só que qual
36:54que é a questão, cara? Olha o tanto de
36:55funções que eu tenho aqui. Se eu
36:57quisesse, por exemplo, fazer com que o
36:59meu agente de A conseguisse interagir
37:00com essa documentação aqui, eu teria que
37:02dar todos os end points para ele. Você
37:04tem esse point que serve para isso. E
37:05basicamente o end point é essa URL aqui,
37:07ó, que a gente tá vendo, é o end point,
37:09é o ponto final da API, OK? Então,
37:12basicamente, sempre que a gente quer
37:13fazer alguma requisição, a gente tem que
37:14chamar essa URL aqui, OK? Então eu teria
37:16que falar, ó, você tem essa RL aqui que
37:19faz isso, isso e isso. Você precisa
37:20mandar isso, isso e isso. Você pode
37:22utilizar nesse nesse caso. E eu
37:24precisaria fazer isso para tudo que eu
37:25quisesse utilizar aqui dentro. Mas com o
37:27MCP não. O MCP ele é como se fosse nesse
37:30caso o cabo C dos dos celulares. Então,
37:32por exemplo, antigamente a gente tinha
37:34diversos tipos de cabos para celulares,
37:36tá? É de um tempo para cá, quando foi
37:38ficando mais moderno, então acho que
37:39talvez o quê? Os anos 2010 em diante, eu
37:42sou de 2007. Então eu não tenho
37:43exatamente esse parâmetro. Mas eu lembro
37:44que meu pai já me falou uma vez que
37:46antigamente cada celular, cada marca
37:48tinha o seu próprio carregador. Então
37:50tinha uma marca que usava um carregador
37:51de um jeito, tinha outra marca que
37:52utilizava outro tipo de carregador. E
37:54sempre que você precisava de carregador,
37:55você precisava procurar o carregador
37:57específico daquele celular, daquela
37:59marca. Hoje em dia, não. Graças ao cabo
38:01USBC, a maioria dos celulares já
38:03utilizam o mesmo tipo de cabo. Então não
38:05preciso ficar procurando diferentes
38:06tipos de cabos quando eu fico ali sem
38:08bateria. Eu posso só pedir pro meu amigo
38:10que provavelmente ele vai ter o mesmo
38:11tipo de cabo que eu, porque já é muito
38:13comum que todo mundo utilize o cabo
38:14USBC, até porque a maioria dos celulares
38:16hoje já vem com esse tipo de cabo, OK? E
38:19a mesma coisa é com o protocolo MCP, que
38:21é model, ou seja, protocolo de contexto
38:25para modelos de A. Então, nesse caso
38:26aqui, você consegue fornecer pro seu
38:28agente de ar um protocolo ali que sempre
38:30que ele quiser executar alguma
38:31ferramenta, por exemplo, do papel que a
38:33gente vai utilizar aqui, criar um banco
38:34de dados, eh, criar uma nova tabela,
38:36consumir algum dado, criar uma nova
38:38tabela dentro do nosso banco, o nosso
38:40agente consegue fazer isso aqui de forma
38:42automática, sem que eu tenha que falar
38:43para ele e quais end points ele deve
38:45utilizar, como que ele deve utilizar,
38:47autenticação, etc. Eu só dou acesso para
38:49ele, conecto com ele e depois ele já
38:51consegue consultar e descobrir sozinho
38:53tudo que ele precisa ali dentro. Então
38:55ele consegue entender quais são os end
38:56points, quais são os parâmetros que ele
38:57precisa enviar, sem que eu mesmo tenha
38:59que ler toda aquela documentação e
39:01fornecer isso para ele. Então aqui ele
39:02descobre, ó, tudo que ele precisa
39:04sozinho, tudo que ele pode fazer,
39:05descobre ali os campos, eh, quais são as
39:07referências, o que que ele tem que
39:08mandar pra PI, OK? E é o ponto, zero
39:11leitura de docs manuais. Você não
39:13precisa ler praticamente nada da
39:14documentação API, você só precisa
39:15configurar, dar acesso e pronto, ele já
39:17consegue utilizar, ok? Então é para isso
39:20que serve o MCP. Basicamente você
39:21conectar o seu agente de A com várias
39:23ferramentas sem que você tenha que falar
39:25para ele como que ele deve utilizar.
39:26Você só conecta e ele mesmo já consegue
39:28procurar naquela ferramenta o que que
39:29ele tem que usar para fazer alguma
39:30coisa, como que ele utiliza e quais
39:32informações ele manda, ok? O MCP ele
39:34veio para unificar a forma como agentes
39:37de A interagem com ferramentas, porque
39:38aí você não precisa, por exemplo, para
39:40cada ferramenta específica, analisar a
39:42documentação delas, entender como
39:43funciona, entender como autentica, como
39:45faz cada coisa. Você só configura MCP e
39:47o seu agente já vai saber o que ele tem
39:49que fazer. você configura ali as
39:50credenciais, as senhas, etc. E pronto, o
39:53seu, a gente já consegue interagir com
39:54essas com essas ferramentas sem que você
39:55tenha que ensinar ele. Você fala: "Ó, eu
39:57quero criar alguma coisa lá no Slack".
39:58Ele vai lá e cria automaticamente um
40:00Slack utilizando o MCP, porque ele já
40:02consegue pegar ali as informações, pegar
40:04o que ele precisa e mandar lá pro slack.
40:06E quais casos que a gente tem de MCP,
40:08tá? A gente vai utilizar aqui inclusive
40:09alguns deles. Então o que a gente vai
40:11utilizar aqui é despa. Como eu já falei
40:13de monte de dados, ó, eu consigo
40:14fornecer acesso a monte de dados
40:16completo pro nosso cloud code, só
40:18fornecendo MCP. Eu dou para ele o MCP,
40:20autentico lá, configuro, ele já vai
40:22conseguir interagir com o meu banco de
40:23dados sem que eu tenho que fazer nada.
40:24Ele mesmo já entende como fazer, como
40:25utilizar, etc. A mesma coisa é com, por
40:28exemplo, produtos, então Notion, Gira,
40:30qualquer tipo de produto que a gente tem
40:31ali, que tem MCP, a gente consegue
40:33integrar o nosso cloud code. Inclusive,
40:35por exemplo, o cloud, aquele chat que
40:37você acessa, ele tem integração direta
40:38com Slack, com Clickup, com Notion, que
40:41você só conecta ali com o MCP, faz
40:43autenticação ali, ele já consegue, por
40:44exemplo, fazer requisições, procurar
40:46quais tarefas você tem para fazer, que
40:47que você precisa fazer, quem que faz o
40:49que, enfim, de forma automática ele
40:51consegue comunicar com esses produtos,
40:53OK? A gente tem aqui também deploy. Ele
40:54pode fazer o deploy automático
40:56utilizando MCP na Versel, no GitHub.
40:58Inclusive a gente vai utilizar aqui o
40:59Cloud Code para fazer o deploy no
41:00GitHub. Eu nem vou abrir ali no nosso
41:02GitHub e fazer muita configuração. Eu
41:04vou deixar para boa parte o próprio
41:05cloud fazer. Design também com Figma e
41:08comunicação aqui com Slack Gmail, tá?
41:09Você conecta ali simplesmente preparando
41:11o MCP.
41:12e você configura algumas questõ
41:14questõezinhas ali do MCP que são muito
41:15simples, autentica, faz o log ali na sua
41:17ferramenta ou coloca a senha ali que ele
41:19precisa para utilizar, que não é a mesma
41:21senha do seu e-mail, aqui é uma senha
41:22separada ali que a gente chama de chave
41:24API. E pronto, ele já tá conectado, ele
41:26já consegue utilizar essas ferramentas,
41:28OK? E depois, qual que é o problema que
41:31a gente tem CMCP? Lembra que eu falei
41:32que a gente tem que entrar lá naquela
41:33documentação? Então, a gente tem que
41:36achar a PI externa, ou seja, algumas são
41:38fáceis de encontrar. Eu abro ali, por
41:39exemplo, a RD Station, pesquiso ali,
41:41Docs API, eu já acho, mas algumas são
41:43mais difíceis. Depois eu tenho que ler
41:44toda a documentação manualmente,
41:46entender exatamente o que faz cada parte
41:47dela, cada end point, cada parâmetro que
41:49eu preciso desenviar. Eu preciso copiar
41:51tudo isso, mandar pro cloud no chat,
41:53falar para ele, ó, você precisa disso e
41:55disso daqui, fazendo isso e isso e isso
41:57ou seja, eu tenho todo esse trabalho
41:58manual de fazer isso e depois é algo
42:00lento e é propenso a erro, tá? Então
42:02cara, isso daqui é a pior parte que é
42:04algo lento. Você tem que fazer aquele
42:05trabalho ali que o pessoal gosta de
42:06falar de cor job, que você ficar
42:08entrando em documentação API, ficar
42:09procurando, ficar lendo, ficar
42:11configurando cada parte, depois você tem
42:13que explicar pro chat e fica mais penso
42:15a erro, porque você consome mais do
42:17contexto do seu cloud. Então, cara, fica
42:19muito muito ruim, tá? E o MCP ele
42:21resolve justamente isso. Você lê muito
42:23pouco da documentação só para entender a
42:24estrutura do MCP, o que que precisa para
42:26autenticar e pronto, você faz essa
42:28pequena configuração e já era, já tá
42:30tudo preparado, tá? Inclusive, você vai
42:32ver que, cara, com o MCP do Super Base,
42:33a gente vai fazer aqui em menos de 1
42:35minuto, porque é muito simples e muito
42:37fácil, OK? E agora vamos falar sobre o
42:39que é skill, tá? O que que é uma skill?
42:41Basicamente, vamos pensar aqui, eu gosto
42:43sempre de tentar associar inteligência
42:45artificial com humanos. E o My Skill é
42:48basicamente um playbook. É, em grandes
42:50empresas, como bancos, eh, por exemplo,
42:52Itaú, no Bank, etc. grandes empresas que
42:54realmente têm processos bem estruturados
42:56e bem mapeados, a maioria delas costuma
42:58possuir playbooks, que são basicamente
43:01instruções de como que você deve fazer
43:02alguma coisa. Então, por exemplo, você
43:04entrou na empresa, eles vão criar o seu
43:06e-mail, vão criar seu acesso, as
43:07ferramentas, etc. E você vai receber um
43:09playbook explicando como que você deve
43:11fazer isso. Então, você acessa esse site
43:12aqui, você usa esse seu e-mail que foi
43:14criado, você usa a senha que a gente te
43:16mandou temporária, você troca sua senha,
43:18habilita tan tanã tã tã, tá? Você recebe
43:21ali todo um playbook explicando como que
43:23você deve fazer alguma coisa. E uma
43:25skill é basicamente a mesma coisa. É um
43:27playbook que você dá pro cloud code
43:28explicando como que ele deve fazer
43:30alguma coisa. E o legal é que essas
43:32skills elas são reutilizáveis. Então
43:34você pode utilizar ela em vários
43:35momentos do seu projeto sem que você
43:36tenha que ficar sempre ali mandando
43:38aquele mesmo comando. Então, por
43:39exemplo, qual que é o principal objetivo
43:40de um Playbook? É fazer com que chegou
43:42uma nova pessoa na empresa, você não
43:44precise parar o seu tempo para ensinar
43:45ela. Você manda o playbook para ela e
43:47tem todo o passo a passo. A mesma coisa
43:49com o cloud. Você não precisa ficar toda
43:50hora repetindo a mesma coisa, é
43:52ensinando, refinando. Você só manda ali
43:54com a skill, tá? Fala: "Ó, usa essa
43:55skill aqui para fazer isso daqui". E ele
43:57já consegue utilizar com muita precisão,
43:59com muita qualidade, sem que você perca
44:00mais tempo explicando, construindo
44:02prompt, etc. Tá? Então, nesse caso, ela
44:05se torna macro reutilizável via barra
44:07comando. Então, muita coisa ali no cloud
44:09que a gente vai ver, a gente vai
44:10utilizar um barra alguma coisa. Nesse
44:12caso, a gente tem, por exemplo, o barra
44:13em skills. Você pode mencionar uma SC
44:15ali dentro utilizando barra, OK? Eh, a
44:17gente tem também evitar de repetir
44:18promptos complexos. Então, cara, eu
44:20coloco ali na skill, eu só falo para ele
44:22utilizar aquela skill e já era. Eu não
44:23preciso ficar, por exemplo, criando ali
44:24o prom de novo e pensando no prompt,
44:27construindo, escrevendo, etc. Eu só
44:29mando ali para ele utilizar skill e ele
44:31já utiliza com todo o comando que ele
44:32precisa para alguma tarefa, tá? Então
44:34aqui, por exemplo, a gente pode ter o
44:35barra review, barra teste, que vai
44:37ensinar basicamente como que deve
44:38revisar um código, como que deve testar
44:40um código. A gente pode ter, por
44:41exemplo, o front end, que é uma skill
44:43que a gente vai utilizar aqui nesse
44:44curso, onde basicamente ele instrui como
44:46que o cloud deve fazer design, tá? Então
44:48não preciso, por exemplo, falar como que
44:49ele deve fazer, eu só falo para ele
44:51utilizar skill e ele já vai entender
44:52automaticamente como que ele deve
44:54utilizar, ok? e também fica cravada no
44:56projeto para sempre, ou seja, é algo que
44:58vai estar sempre ali no nosso projeto,
44:59que o nosso cloud vai poder utilizar, a
45:01não ser que, por exemplo, vá lá e apague
45:03e remova toda a Ste, mas a princípio
45:05fica ali no projeto sempre disponível
45:07para ele utilizar quando ele ver que é
45:08necessário, tá? Então em alguns casos
45:10você também nem precisa falar para ele
45:11utilizar, só pelo contexto ali ele já
45:13consegue saber que ele precisa utilizar
45:15aquele skill. E por que que a gente vai
45:17utilizar skills ao longo do nosso
45:18projeto com cloud code? E você também
45:20vai utilizar ao longo do seu dia a dia,
45:21porque cara, um prof normal você tem que
45:24server sempre de novo, ele gera
45:25consistência. Então, por exemplo, se eu
45:27quero que meu cloud Code faça design, eu
45:29sempre tenho que falar como que eu quero
45:30que ele faça, ó, faça dessa maneira, é,
45:33utilize isso, não utilize aquilo, tome
45:34cuidado com isso, tanã, tanã, tanã, tá?
45:37Isso daqui vai gerar um resultado
45:38impreciso, tá? Inconsistente. Por quê?
45:41Porque são instruções que eu tenho que
45:42estar sempre repetindo para ele e nem
45:44sempre vou escrever da mesma maneira.
45:45Então, acaba que se torne consistente,
45:47se torna trabalhoso e também limitado. E
45:50você já vai ver o porquê. Quando a gente
45:51usa skill, não, eu só falo para ele, ó,
45:53utiliza essa skill ou passa alguma
45:55tarefa que ele vai identificar que ele
45:56precisa daquela skill e ele vai carregar
45:58todo o contexto com só clique, ou seja,
45:59ele carrega tudo que ele precisa ali
46:01daquela skill. Eu preciso fazer dessa
46:02forma, daquela forma, eh, eu não devo
46:04utilizar isso, eu tenho acesso a isso,
46:05isso e aquilo. E o nosso cloud code já
46:07consegue executar. Então, isso aqui fica
46:09previsível, você consegue compartilhar
46:10com o seu team, OK? E cara, você não tem
46:12todo o trabalho de ficar escrevendo toda
46:14hora. E também tem um ponto muito legal
46:15que a gente vai entender agora, tá? Já
46:17vou pular um pouquinho paraa frente,
46:18poderia elaborar um pouquinho mais, mas
46:20vou pular um pouco paraa frente que eu
46:21consigo explicar melhor isso daqui, tá?
46:22Qual que é anotomia de uma skill? Toda
46:24skill vai possuir essas três partes
46:26aqui. Na verdade, toda não, tá? Para ser
46:28sincero, toda skill vai possuir somente
46:30o skill pon, tá? Isso daqui é
46:31obrigatório, toda skill deve e precisa
46:34ter. E algumas skills, isso daqui é
46:36opcional, opcional, podem ter arquivos
46:38de referência e scripts, que basicamente
46:40vão ter ali, por exemplo, exemplos e
46:42padrões de como que ele deve criar
46:43alguma coisa. Então, pode ter, por
46:45exemplo, exemplos e padrões de código da
46:47empresa, exemplos e padrões de como
46:49fazer design, exemplos e padrões de como
46:51escrever um post carcel pro Instagram,
46:53tá? Basicamente vai ter aqui referências
46:55que ele pode seguir e também vai ter os
46:57scripts que são automações em Python ou
46:59JS como link e testes. Ou seja, você
47:02consegue criar scripts que ele pode
47:03executar. A gente vai criar aqui uma
47:05skill que vai ser bem legal, que
47:07basicamente vai ser uma vai ser o quê?
47:08uma skill para eu utilizar aqui no meu
47:09dia a dia, você também vai poder
47:11utilizar ou algo do tipo. Mas é legal
47:13porque é uma skill bem complexa, ela não
47:14é uma skill tão simples que vai ser o
47:16quê? Eu quero, por exemplo, poder mandar
47:17para ele um link de um vídeo do YouTube,
47:20ele vai extrair o áudio desse vídeo,
47:22baixar, transcrever, OK? Utilizando
47:24algum modelo, é local de inteligência
47:26artificial para fazer a transcrição. E
47:28depois ele vai transformar esse conteúdo
47:29em um post carrussel para mim, tá? vai
47:31ser muito útil aqui pro meu dia a dia,
47:33vai me ajudar bastante, só que eu tenho
47:34certeza também vai ser bem legal pr você
47:35ver como que a gente pode utilizar
47:37skill, cara, da forma mais absurda
47:40possível, tá? Por quê? Porque aqui a
47:41gente vai combinar muita coisa. A gente
47:43vai combinar, por exemplo, usar skill
47:44como referência. Então eu vou utilizar
47:45aqui minha skill de copywriting como
47:46referência. Eu vou utilizar também aqui
47:48toda a parte de script, ou seja, eu
47:50quero que ele pegue ali o script e
47:52consiga extrair essa informação. Porque
47:54se eu só chego, por exemplo, no cloud
47:55ali de chat e peço para ele extrair o
47:58áudio de um vídeo, rodar um modelo ali
48:00para, por exemplo, transcrever, fazer
48:02isso, fazer aquilo, ele não consegue.
48:04Porém, quando eu tenho o cloud code
48:05rodando no meu computador e eu tenho
48:06essa esse script, ele consegue fazer
48:08isso. Ele pega o áudio do vídeo, ele
48:10transcreve, ele entende todo o texto que
48:12tem ali, todo o conteúdo e depois
48:13consegue me retornar um conteúdo
48:15adaptado, tá? Então, realmente vai
48:17demonstrar aqui tudo que a gente tem ao
48:18máximo de scripts, OK? E aqui também a
48:20gente vai ter o skill.md, né, que eu eu
48:22pulei um pouco ele, mas basicamente é
48:24nele que vai ter toda a instrução, eh,
48:26formato e regra que ele deve utilizar.
48:28Então, ele, como que ele deve fazer
48:29alguma coisa, eh, o que como que ele não
48:31deve fazer, exemplos, eh, qual formato
48:34que ele deve retornar, etc. Tá? Sempre
48:35vai ter aqui no skills. O skills. Ele
48:38também sempre vai ter o nome e a
48:40descrição, porque que que acontece?
48:42Basicamente no skills.md a gente vai ter
48:44aqui nosso skill, né? Então vou criar
48:47aqui uma skill que basicamente vai ser
48:48esse documento aqui. Dentro desse
48:50documento, eu vou ter o nome, vou ter a
48:53descrição. O que acontece? A descrição e
48:55o nome eles sempre serão retornados. O
48:57seu agente sempre vai ter isso daqui
48:59incutido lá no contexto, que basicamente
49:01vai ter o quê? Qual que é o nome da
49:02skill? Quando que ele deve utilizar, o
49:04que que ela retorna para ele, quando que
49:05ele não deve utilizar, enfim,
49:07basicamente é isso. Informações
49:09principais sobre aquela skill. E aqui
49:11embaixo, depois vou ter todo o conteúdo.
49:13Ou seja, o nosso agente de A, ele não
49:15vai sempre buscar esse conteúdo aqui,
49:17tá? Ele só vai ter o nome e a descrição
49:19da skill. Quando ele identificar que ele
49:21precisa disso daqui, aí sim ele vai
49:23chamar skill. Isso aqui é muito legal
49:24porque eu não vou estar sempre poluindo
49:26o contexto do meu agente com essa parte
49:28aqui de baixo. Eu só vou colocar aqui
49:29para ele o nome e a descrição, que é
49:31realmente que ele precisa saber. E aí
49:32quando ele identificar que naquela
49:34ocasião específica ele precisa daquela
49:36skill, ele vem aqui e solicita o
49:38conteúdo. Mas se ele não precisar, ele
49:40só tem o nome e a descrição para saber
49:42que ele tem acesso, ok? Então aqui
49:43basicamente essa que é a anatomia de uma
49:45skill. A gente tem vai ter o skill MD
49:47que vai carregar ali o core da skill,
49:49toda a parte principal dela, que vai
49:50carregar o nome, a descrição que vai ser
49:52retornado pra gente, o conteúdo que ele
49:54pode solicitar, arquivo de referência,
49:56então exemplos de como que ele deve
49:57fazer, como que ele não deve fazer, OK?
49:59e também os scripts que ele tem acesso,
50:01que vai ajudar ele executar determinadas
50:03coisas. E lembra que eu falei aqui que a
50:05skill ela é muito melhor que só um
50:06prompt normal? Por quê? Porque no prompt
50:08eu não consigo falar para ele, ó, usa
50:10esse script aqui, tá? com skill, não,
50:12com a skill consigo ter ali um script
50:14que ele pode usar e ele pode
50:15simplesmente utilizar esse script quando
50:17é necessário. Então, por exemplo, se eu
50:18faço um prompt, ah, adapte esse texto
50:21aqui para um post de carrocel que a
50:22gente vai fazer aqui. Eu precisaria
50:24rodar toda a parte ali por fora. Então,
50:26precisaria pedir, por exemplo, ah, uma
50:27plataforma para gerar a transcrição do
50:29vídeo do YouTube, eu teria que baixar
50:30ele, baixar o áudio, gerar a
50:32transcrição, OK? Para só depois eu
50:34mandar pro cloud. Como isso daqui? Não,
50:36eu consigo só pedir pro Cláudio, ó, usa
50:37a skill tal para gerar um post carrocel
50:40com base nesse vídeo. Ele vai pegar
50:41aquele vídeo, vai transcrever ele e vai
50:44e me retornar depois o post já pronto,
50:46tá? Sem que eu ten que escrever prompt,
50:47sem que tem que fazer nada, porque ele
50:49já tem tudo que ele precisa para
50:50executar esse processo. E agora eu quero
50:52falar sobre um tema um pouquinho
50:53avançado, tá? Que é os hooks, tá bom?
50:55Inclusive, ele é tão, digamos assim, um
50:57pouco mais avançado que a gente nem vai
50:59utilizar aqui por enquanto porque não
51:00vai fazer sentido pro nosso caso. Então,
51:01o que que são os hooks, tá? Eles
51:03basicamente são scripts travados em
51:05ciclos de vida, ou seja, é basicamente
51:07um script que ele vai sempre ser
51:09executado depois que o cloud fazer
51:10alguma coisa ou antes dele fazer alguma
51:12coisa. A gente pode colocar nesses dois
51:13momentos. E nesse caso não depende do
51:15cloud, não depende, por exemplo, lá do
51:17cloud lembrar e fazer, tá? Eles são 100%
51:20determinísticos. Se eu falar que vai ter
51:21um hook que vai fazer tal coisa, depois
51:24que o Cloud fazer tal coisa, sempre vai
51:26acontecer. Aqui é realmente um script
51:28que identifica que isso aconteceu e ele
51:29vai ser executado. Então aqui uma
51:30analogia que a gente pode utilizar, ele
51:32é igual aos gits, mas pros agentes, ou
51:34seja, quando acontecer alguma coisa, faz
51:36tal coisa ou antes de acontecer tal
51:38coisa, faz tal coisa, tá? Nesse caso
51:40aqui voltado 100% pro cloud code. Então
51:42como que a gente poderia, por exemplo,
51:43utilizar o hook na prática, tá?
51:45Basicamente a gente poderia ter um
51:46builder e um validator, ou seja, o
51:48builder vai ser ali basicamente o nosso
51:49cloud principal. Então eu falo para ele,
51:51ó, eu quero que você construa aqui a
51:53nossa área de membros eh com tal e tal
51:56coisa. Falei para ele, ele vai aplicar e
51:58vai escrever os códigos novos. Depois
52:00que ele que ele escreveu todo o código,
52:02quando ele for, por exemplo, retornar
52:03pra gente uma mensagem, pode passar pelo
52:05validador que vai fazer o quê? Vai
52:07somente ler e checar a integridade, vai
52:09checar todo o nosso código. Só que eu
52:11não dependi do Cloud Code fazer isso.
52:13Assim que ele terminou a geração dele,
52:15assim que ele terminou de fazer aquilo,
52:17falei: "Ó, cara, você vai validar
52:18primeiro". Então vai ter ali um
52:19validador que vai analisar todo o código
52:22antes de, por exemplo, do CUD me
52:23responder. Ele gerou o código,
52:24automaticamente depois vai chamar esse
52:26validator que vai analisar o nosso
52:28código, tá? A mesma coisa poderia ser,
52:30por exemplo, com o MCP do Supase. Eu
52:33poderia criar um hook que sempre que ele
52:35quiser fazer alguma coisa com o Supas,
52:37antes dele fazer de fato, me pergunta se
52:39eu permito. Ou, por exemplo, me pergunta
52:41é se é realmente aquilo ali que deve ser
52:42feito. Eu posso colocar um hook que
52:45antes dele fazer isso, ele vai
52:47demonstrar que ele quer fazer antes de
52:48de fato executar. Vai ter um hook ali
52:50que vai, por exemplo, me pedir a
52:51permissão para fazer. Eu poderia fazer
52:53isso daqui ou por exemplo, com uma
52:54mensagem no WhatsApp. Vamos que eu dei
52:55para ele a a API do WhatsApp ali para
52:57ele se conectar. deu MCP ali do
52:59WhatsApp, ele demonstraria a intenção de
53:01enviar uma mensagem. Então eu falo para
53:02ele, ó, envie mensagem para fulano. Ele
53:05vai identificar essa minha intenção, vai
53:06demonstrar a intenção dele de enviar
53:08mensagem através do MCP, porém antes de
53:10ser enviado, vai travar ali. Ele vai me
53:12perguntar se eu posso utilizar. Posso
53:14colocar um hook que acontece antes da
53:16chamada de ferramenta e da mesma forma
53:18também posso ter um hook que acontece
53:19depois da chamada de ferramenta, que vai
53:20ser, por exemplo, ah, ele enviou a
53:22mensagem, eu recebo o hook para
53:23conseguir salvar isso no meu banco de
53:25dados e ter esse log. OK? Então aqui a
53:27gente consegue ter um resultado
53:28perfeitamente code reviewed sem humanos.
53:30Ou seja, eu tenho aqui o meu builder, o
53:32meu validador sem que eu tenha os
53:34humanos. E a vantagem disso daqui é
53:36porque acontece de forma automática, tá?
53:37Eu não tô falando pro cloud fazer isso,
53:39eu tô falando que vai acontecer dessa
53:40maneira, tá? Porque se eu falo pro
53:42cloud, ele pode simplesmente não fazer.
53:44Dependendo do contexto, algo do tipo,
53:45ele fala: "Ah, não vou fazer". Quando é
53:47com os hooks, não, isso aqui sempre vai
53:49acontecer, é determinístico, OK? E como
53:52que o nosso hook pode ser utilizado? Tá?
53:53A gente tem aqui alguns eventos de
53:55trigger. A gente tem os dois mais comuns
53:57que eu já citei para você, que é o
53:58pretuse e e o post to use, que é
54:01basicamente o quê? O pretuse você usa
54:03ele para validar ou bloquear antes de
54:05uma ação. Então, sempre que o cloud for
54:07fazer alguma ação, ele meio que primeiro
54:09alerta você, ele fala para você o
54:11seguinte: "Olha, o Cloud tá querendo
54:13fazer isso daqui, ele pode fazer? Ele
54:14não pode fazer, que que eu devo fazer
54:16aqui?" Ok? Então o preto to use ele
54:18valida, ele acontece antes da chamada
54:20ferramenta. Se o cloud demonstrou a
54:21intenção de usar a ferramenta, ele
54:23primeiro me alerta, ó, ele quer fazer
54:25isso daqui, OK? Então ou por exemplo,
54:27posso salvar no banco de dados o que que
54:28ele mandou, posso fazer alguma coisa do
54:30tipo, tá bom? Mas sempre que ele quiser
54:32usar uma ferramenta, usar aquela
54:34ferramenta específica que eu configurei,
54:35ele vai me alertar, ok? Ou seja, o preto
54:37to use ele acontece antes da gente usar
54:39a ferramenta. Ou a gente demonstra a
54:41ferramenta, ele vai executar, só que
54:43nesse mesmo do processo ele trava.
54:44falou: "Não, ó, primeiro eu tenho que
54:45fazer isso daqui com o Hook, tá? Porque
54:47ele identificou aqui ou a gente queria
54:48usar aquela ferramenta específica." E é
54:50isso aqui que é legal, tá? Eu sempre
54:51configuro para alguma coisa específica.
54:53Então, se por exemplo ele vai fazer uma
54:55chamada por sua base que envolve a
54:56palavra delete, eu consigo verificar
54:58primeiro essa chamada, mandar para mim,
55:01eu valido ou não, tá? Aprovo ou não se
55:03ele vai usar essa ferramenta, mas eu
55:05posso validar sempre que ele for chamar
55:07e a ferramenta do super base com não sei
55:09o que de delete, eu valido. OK? Eu
55:11também posso ter a posto use, que é o
55:13quê? sempre que ele usar uma ferramenta,
55:16logo depois ele faz alguma coisa. Então
55:18ele linta, ele formata, ele manda para
55:20algum lugar, ou seja, eu posso fazer
55:21alguma coisa com isso, mas sempre que
55:23depois que ele terminar de usar uma
55:24ferramenta, sempre que ele terminar de,
55:25por exemplo, e criar uma nova linha lá
55:27no SP, eu posso registrar isso para
55:29deixar ali nos logs. Eu posso fazer
55:31alguma coisa com com essa com esse
55:32retorno da ferramenta, OK? É para isso
55:34que serve o post to use. Ele sempre vai
55:36ser acionado depois. O pré-tool, ele é
55:38acionado antes da ferramenta realmente
55:40ser executada. O post tool use ele
55:43realmente acontece depois que a
55:44ferramenta já foi executada. E aqui a
55:46gente tem mais alguns, tá? A gente tem o
55:47user prompt submit que ele basicamente
55:49pode validar e enriquecer seu txt. Ou
55:51seja, você manda ali um texto, manda um
55:52prompt, ele pode identificar que você
55:55mandou alguma coisa, só que antes de ir
55:56para agente você pode ter um agente que
55:58melhora, tá? Que melhora o seu prompt,
55:59etc. A gente poderia ter isso. A gente
56:01poderia ter, por exemplo, quando você
56:02começa uma sessão que ele já começa, já
56:04faz o setup inicial, OK? Enfim, a gente
56:07tem outras opções aqui, mas mais comum
56:09de ser utilizado mesmo. Inclusive o que
56:10tem no curso da Antropic, que eu já fiz
56:12sobre o cloud code é o pretool e o post
56:14to use, tá? São os principais aqui que
56:16seriam utilizados em ambientes mais
56:18complexos, mais rígidos e mais críticos,
56:21OK? Nesse caso, por exemplo, pretuse,
56:23você consegue usar muito para validar
56:24alguma coisa, validar alguma informação,
56:26validar alguma coisa que ele faz, que
56:27ele quer fazer. O post use você
56:29consegue, por exemplo, ele dá para
56:29tratar alguma coisa, para formatar,
56:31enfim, são os mais necessários em alguns
56:33casos mais críticos quando a gente
56:35utiliza o cloud code. E qual que é a
56:37diferença, por exemplo, do cloud MD?
56:38Qual que a diferença de uma skill pros
56:40hooks? Tá? É que eu coloquei só cloud
56:42MD, mas também serve pras skills. O que
56:45que acontece? Basicamente, o Cloud MD e
56:48as skills, eles vão instruir o modelo.
56:50Eles vão falar: "Ó, você vai fazer isso
56:52daqui dessa forma, com isso daqui, eh,
56:54agir dessa maneira, fazer alguma coisa,
56:56etc." Basicamente são regras de estilo.
56:57É como que você instrui como é como você
57:00fala para ele fazer alguma coisa, mas
57:02não é determinístico. O modelo ele pode
57:03errar, ele pode acabar não seguindo
57:05alguma coisa do cloud.m da skill. Agora
57:08quando a gente fala de hooks, cara,
57:09realmente é determinístico, tá? Não, não
57:11é o modelo que faz, é realmente o
57:13sistema interno ali do Cloud Code, da
57:15forma como foi programada, como foi
57:16configurado que executa isso. Então,
57:18nesse caso, o sistema ele força a
57:20execução, tá? para que seja realmente
57:22100% de acerto. É uma regra de segurança
57:24absoluta. É que nem, por exemplo, o seu
57:26chefe, ele pode te falar que ele sempre
57:28gosta que você faça tal coisa, tá? Mas é
57:30uma instrução, é uma coisa que fala,
57:32beleza, talvez eu faça isso aqui, às
57:34vezes você acaba não fazendo, etc. Agora
57:36o hook é algo que realmente te obriga. É
57:38como se o seu chefe pegasse, você
57:39falasse: "Não, agora você vai fazer
57:41isso, tá? É a mesma coisa que a gente
57:42faz aqui com os hooks. A gente fala que
57:44ele vai fazer, tá? Não é nenhum modelo
57:45que faz, é o próprio sistema que já
57:47configura para que seja executado
57:48daquela maneira. E agora a gente vai ver
57:50um pouco aqui sobre os subagents, tá? Eu
57:52não vou me aprofundar muito nem sub
57:54agents agent teams. Aqui o objetivo é lá
57:56pro final da nossa aula, mas eu quero
57:57dar uma pincelada aqui para você saber o
57:59que que é, tá? Basicamente o subgent é
58:01uma instância isolada do cloud, onde ele
58:03tem memória própria e não polui o seu
58:05chat. Então é muito legal por quê? Você
58:07pode, por exemplo, pedir pro seu cloud,
58:08ele fala o seguinte: "Ó, eu quero que
58:10você use um agente para criar eh o front
58:12end do meu software, use um segundo
58:14agente para criar o back end do meu
58:15software e depois eu quero que tenha um
58:17terceiro agente para validar tudo que
58:18eles fizeram, para ver se tá certo
58:20mesmo, se tem algum bug, algum defeito e
58:22depois eu quero um quarto agente para
58:23integrar tudo isso, para deixar todo o
58:25front end integrado com o back end. Você
58:27consegue fazer isso? E aí ali ele vai
58:29criar vários suagentes que vão executar
58:31cada uma dessas tarefas. Então, primeiro
58:33executa ali o primeiro subagente, ou
58:35seja, ele vai criar ali o front end.
58:37Depois vem o agente de back endar o back
58:39end. Depois disso, vai vir o terceiro
58:41agente que vai validar tudo que eles
58:43fizeram, vai ver se tem algum bug, algum
58:45erro. E depois vai vir o quarto agente,
58:47que aí sim esse agente vai integrar
58:48tudo, vai garantir que o front endja
58:50conversando corretamente com o back end,
58:53ok? Então você passa uma tarefa, ele vai
58:55executar e vai devolver só o resultado
58:57limpo. Então nesse caso, por exemplo, o
58:59seu cloud principal, ele não vai ter o
59:01contexto poluído do que que foi gerado,
59:03não vai ter um contexto poluído do que
59:04que foi analisado, não vai ter um
59:05contexto poluído de como foi integrado.
59:08Ele não vai ter que, por exemplo, também
59:09gerar essas respostas. Ele delega isso
59:11para subagentes isolados, OK? Que não
59:13vão poluir a memória principal ali do
59:16chat que você tá conversando com o seu
59:17cloud. Isso aqui é muito legal. Um
59:19exemplo muito clássico aqui, onde vale
59:20muito a pena você ter um subagente, é
59:22você mandar o seu código para um
59:23suagente analisar. Por quê? Lembra que
59:25eu falei que a IA ela analisa os tokens
59:28e vê qual que é o número mais provável
59:29de vir depois de um determinado conjunto
59:31de tokens? A mesma coisa com a sua Ya.
59:34Ela já tem ali, por exemplo, todo um
59:35raciocínio interno falando porque que
59:37ela criou o código daquele jeito e por
59:38que ele tem que ser daquele jeito.
59:40Quando você pede para ela analisar o
59:42próprio código, acaba que ela vai
59:44analisar de forma enviezada, porque ela
59:46mesma já se explicou antes o por feito
59:47daquela maneira. E acaba que isso polui
59:50o contexto dela, faz com que ela fale:
59:52"Não, esse código aqui tá bom, ele foi
59:53bem construído, tá perfeito, porque ela
59:55foi envzada". O contexto dela envzou a
59:58resposta que ela foi gerar. E acaba que
59:59por isso você não tem um estado tão bom,
1:00:01porque ela tá envzada. Agora quando você
1:00:03manda um subagente, ele não tem esse
1:00:05contexto, ele não tem as instruções
1:00:06principais que você deu, ele não tem
1:00:08todo esse conjunto de informação. Então,
1:00:09acaba que ele é muito melhor para, por
1:00:10exemplo, analisar o código, porque ele
1:00:12não tá endezado, ok? E para várias
1:00:14tarefas, vale muito a pena você mandar
1:00:15para um subagente, principalmente
1:00:17tarefas complexas, tarefas que envolvem
1:00:19muitos dados para que você não polua e
1:00:21todo o seu agente principal, ok? E cara,
1:00:23por que que a gente delega aqui para
1:00:24alguns suagentes? Primeiro, leitura
1:00:26pesada, então a gente evita ali de
1:00:28poluir, de explodir o nosso contexto. A
1:00:30gente manda algumas coisas para outros
1:00:31agentes fazerem, para que eles leiam
1:00:32documentos, para que eles acessem e tudo
1:00:34mais, para que o principal não fique
1:00:35poluído, não fique ali, digamos que
1:00:37travado, OK? Especialização absoluta.
1:00:40Então, cada gente vai ter ali um perfil,
1:00:41tá? vai ter um perfil, vai ter uma
1:00:42descrição, vai ter instruções. Você
1:00:44pode, por exemplo, dar skills
1:00:45específicas para um agente, MCPs
1:00:47específicos para um agente, OK? Então
1:00:49isso aqui é muito legal, você consegue
1:00:50ter uma especialização absoluta daquele
1:00:52agente naquele tema para ter um
1:00:53resultado muito melhor, ok? Paralelismo,
1:00:56então você multiplica a mão, tá? Então
1:00:57você tem mais, digamos que mais pessoas
1:00:59trabalhando naquele mesmo projeto, então
1:01:01você tem mais velocidade, OK? E também
1:01:04isolamento crítico. Se algum deles tiver
1:01:05algum problema, eh, algum deles demorar
1:01:07mais para gerar o resultado, algum deles
1:01:09tiver algum, alguma questão nesse
1:01:10sentido, não tem problema. porque ele tá
1:01:12separado, ele tá isolado dos demais. E
1:01:14por último aqui pra gente finalizar o
1:01:16que que são os agents teams, tá? São
1:01:18times de múltiplos agentes de A em
1:01:20conjunto, então que possuem comunicação
1:01:22entre eles em tempo real, tá? Essa aqui
1:01:23é a principal diferença entre os
1:01:25subagentes. Os suagentes eles só
1:01:26conversam com o agente líder, né, que é
1:01:29aquele agente principal que vai criar
1:01:31esses agentes, já que nos agentes teams
1:01:33eles conseguem conversar entre si, OK?
1:01:34Ou seja, eu consigo ter uma comunicação
1:01:36entre esses agentes, tá? E nesse caso, o
1:01:38agente líder orquestra e delega,
1:01:40enquanto os agentes membros eh absorvem
1:01:43recordes, executam as ações, etc. OK?
1:01:45Então, a gente vai ter aqui um agente
1:01:46realmente liderando, orquestando,
1:01:48delegando e os agentes aqui se
1:01:49comunicando em tempo real, tá? E aqui de
1:01:51fato a gente vai ter ali todos eles
1:01:54atuando ao mesmo tempo, OK? Nos
1:01:56subagents nem sempre vai ser ao mesmo
1:01:57tempo. E a gente também tem a questão de
1:01:59que eles só respondem ao agente
1:02:01principal, tá? Eles não conversam assim
1:02:03realmente entre si, OK? Ele recebe uma
1:02:05tarefa, ele executa e devolve o
1:02:07resultado. Não tem essa comunicação,
1:02:08essa conversa ali como tem noss. OK,
1:02:12turma, vamos lá. Até dei uma pausa aqui,
1:02:14parei um pouquinho para respirar, beber
1:02:15uma água, porque olha, ainda tem
1:02:17bastante coisa pra gente ver e a gente
1:02:18já viu muita coisa sobre o cloud code,
1:02:20tá? Inclusive os principais conceitos
1:02:22aqui do cloud code, que são basicamente
1:02:24as skills, hooks, MCP, subagem, sente
1:02:27Steams, que já é uma parte um pouquinho
1:02:28mais avançada, a gente já viu, já
1:02:30entendeu o que que é, tá? E calma que a
1:02:32gente vai ver tudo isso na prática ali
1:02:34com exceção um pouco dos hooks, né?
1:02:35Porque eles não vão ser tão úteis na
1:02:36parte aqui agora prática do nosso dia a
1:02:38dia. Eles são um pouco mais avançados,
1:02:40mas de todo o resto a gente vai utilizar
1:02:41no nosso dia a dia com muita frequência
1:02:43e também no nosso projeto, ok? Enfim,
1:02:45vamos ver aqui agora um pouquinho nosso
1:02:47capítulo três, onde a gente vai focar
1:02:49aqui na parte de configurar o seu
1:02:50ambiente, ou seja, preparar tudo para
1:02:52que você consiga depois construir o
1:02:54nosso projeto. Então, a gente vai
1:02:56preparar aqui o nosso ambiente, eu vou
1:02:57te apresentar o que é o antig, o que é o
1:02:59cloud Code. A gente vai realmente ver o
1:03:01cloud code, vai ver alguns comandos,
1:03:02então vai ser bem legal, tá bom? Vamos
1:03:04lá. Primeiro de tudo, o que é o my?
1:03:07Basicamente é um ambiente de
1:03:08desenvolvimento integrado, OK? Ou seja,
1:03:11no mesmo ambiente você vai ter um editor
1:03:13de texto e também vai ter ali uma parte
1:03:15de explorador de arquivos, tá? Que é
1:03:17essa parte principal aqui de todo IDE. E
1:03:19além disso, a gente também vai ter
1:03:20outras partes ali para controle, por
1:03:21exemplo, diversionamento. E, cara, hoje
1:03:24em dia, praticamente toda boa IDEC
1:03:26também conta com o agente de A. Então,
1:03:27não era o principal há pouco tempo
1:03:28atrás, mas hoje em dia é muito comum que
1:03:30toda IDE tem um agente de IA. Então, o
1:03:32cursor tem o antigravery, que é a
1:03:34própria do Google tem, né? Então, que a
1:03:36própria ideia do Google, na verdade, é o
1:03:38VS Code. Eu não tenho certeza, mas eu
1:03:40acho que tem alguma coisa ali, né, de a
1:03:42não tenho certeza, mas eu acho que deve
1:03:43ter. Tem o surf, enfim, tem outras, mas
1:03:46aqui a gente vai utilizar a ideia do
1:03:47Google, que é o antig, OK? E aqui
1:03:50basicamente é onde você consegue
1:03:51escrever e gerenciar o seu código, só
1:03:53que não é só o texto, é entender o
1:03:56código. Então, por exemplo, se eu abrir
1:03:57aqui o Notepad, é, tá em inglês, acaba
1:03:59falando Notepad, né? Mas enfim, é o
1:04:00bloco de notas do Windows, que é um
1:04:02editor de texto também. Eu posso, por
1:04:04exemplo, começar aqui a digitar um
1:04:05código, sei lá, eh, faz tempo que eu não
1:04:07digito o código, cara. Python é o é o
1:04:09que eu tenho ali um certo de
1:04:09conhecimento, mas faz tempo que eu não
1:04:11escrevo, não vou lembrar de muita coisa.
1:04:12Mas enfim, vamos supor que eu vou
1:04:13definir aqui uma variável, vou falar:
1:04:14"Ah, eh, nome igual Lucas, por exemplo,
1:04:19defini aqui uma variável. Aqui é isso
1:04:21que eu tenho, tá? Eu não tenho nada
1:04:23muito personalizado, não tenho aquelas
1:04:24letrinhas coloridas bonitas, não tem eh
1:04:27nenhuma formatação diferente do texto.
1:04:29Então, tudo que eu for escrever aqui,
1:04:30que eu quiser colocar, eu vou ter que
1:04:32escrever de forma muito manual. Quando a
1:04:33gente fala de Myon, ele vai ter aquelas
1:04:35letrinhas coloridas, eh, vai dividir em
1:04:37sessões, vai formatar o seu texto.
1:04:39Então, ele vai ficar muito mais fácil de
1:04:40você entender todo o seu código. Então,
1:04:42essa que é a principal função de uma
1:04:43ideia, você conseguir entender o seu
1:04:45código. Inclusive, é por isso que eu
1:04:46quero que a gente use aqui dentro do
1:04:48nosso curso o cloud code dentro de uma
1:04:50IDE ali com uma extensão, porque vai ser
1:04:52mais amigável a interface que ele vai
1:04:54ter e também porque eu consigo entender
1:04:55o código. Não vai, a gente vai entender
1:04:57de fato que o código tá fazendo, mas eu
1:04:59consigo visualizar ele. Então eu consigo
1:05:00ali ver o código que eu tenho, eu
1:05:02consigo, por exemplo, ver meus
1:05:03documentos melhores, porque uma ideia
1:05:04também possui essa parte de explorador
1:05:06de arquivos. Então tudo isso vai me
1:05:08oferecer um controle melhor e mais
1:05:10fácil, OK? E além disso ele oferece
1:05:12várias coisas como síntax. Então ele
1:05:13consegue corrigir a sintaxe do código,
1:05:15eh ele consegue autocompletar o seu
1:05:17código quando você tá escrevendo, possui
1:05:19ali um terminal também integrado, você
1:05:21explorador de arquivos, enfim, é meio
1:05:22como se fosse um a in one ali que a
1:05:24gente vai ter no nosso computador. Então
1:05:25ao invés de você ter que abrir terminal,
1:05:27ter que abrir explorador de arquivos,
1:05:28ter que abrir isso e aquilo, você tem
1:05:30tudo integrado na IDE, OK? Quando eu
1:05:32falo aqui auto compete, syntax e tudo
1:05:34mais, cara, não se preocupa, porque a
1:05:35gente não vai escrever código, a gente
1:05:37realmente vai utilizar para fazer essa
1:05:38parte, ok? E por que que a gente usa uma
1:05:40ideia no editor comum? Que nem eu acabei
1:05:42de mostrar aqui. Opa, aqui eu já tô
1:05:44dando spoiler eu acabei fechando o bloco
1:05:46de notas, mas enfim. No editor comum
1:05:48você escreve e ele não entende a
1:05:50linguagem, tá? Então você tá escrevendo
1:05:51ali, você pode fazer tudo certinho, mas
1:05:53ele não vai te ajudar e realmente a
1:05:54entender melhor a linguagem, não vai
1:05:56formatar, não vai fazer nada. Quando a
1:05:58gente tem uma IDE, a gente consegue
1:05:59entender a linguagem, ele sugere e
1:06:01corrige, tá? Essa parte aqui a gente não
1:06:02vai utilizar de fato assim esse recurso,
1:06:05mas eu quero que você entenda o porque
1:06:06que a gente usa IDEF, tá? Porque aqui
1:06:07num ambiente de desenvolvimento a gente
1:06:09utiliza IDE, OK? E nesse caso com Cloud
1:06:12Code a ID vai virar o nosso cockpit do
1:06:14agente. Então a gente vai conseguir ver
1:06:15o agente em tempo real, vai conseguir
1:06:17ver os arquivos que ele cria, vai
1:06:18conseguir organizar, dar arquivos para
1:06:20eles, fazer um monte de coisa aqui
1:06:22utilizando a IDE, OK? Então é por isso
1:06:23que a gente vai utilizar a IDE, porque
1:06:25ela vai ajudar bastante a gente no nosso
1:06:26dia a dia. E onde que tá aqui o
1:06:28Antiraver? Tá? Basicamente, o antig vai
1:06:30ser a IDE desenvolvida pelo próprio
1:06:32Google e ele é basicamente um fork do VS
1:06:35Code. Então eu vou até colocar aqui. A
1:06:37minha seta é muito bonita, mas eu gosto
1:06:39de colocar ela. É o quê? É um fork. Que
1:06:41que é um fork? Basicamente, lembra que
1:06:44eu comentei que esse Scalidr aqui que eu
1:06:45tenho, que tem essa barrinha aqui do
1:06:46lado, ele é um fork também. Eu não
1:06:48comentei que ele é um fork, né? Mas eu
1:06:50comentei que eu peguei ali o código
1:06:51fonte do Calidra e eu modifiquei esse
1:06:53código. E basicamente é isso que é um
1:06:55fork, é você pegar ali um código fonte
1:06:57de alguma coisa, nesse caso VS Code, que
1:06:59também é open source, ou seja, código
1:07:01aberto, e você modificar. Você pode
1:07:03pegar ali o código daquele software e
1:07:05modificar. E foi o que o Google fez. Ele
1:07:07pegou o código do VS Code e ao invés de
1:07:09criar do zero, ele apenas modificou, tá
1:07:11bom? E nesse caso, como eu coloquei
1:07:12aqui, é base baseado no núcleo do VS
1:07:15Code, que tem uma interface muito
1:07:16familiar, é o mais conhecido
1:07:18mundialmente, acredito eu. Ele é
1:07:20utilizado também mundialmente e, cara,
1:07:21tem muito suporte, tem muita
1:07:22atualização, ele é muito estável e
1:07:24também tem a biblioteca de extensões do
1:07:26VS Code que é muito completa e tem muita
1:07:28coisa útil pra gente. Inclusive, é esse
1:07:31cloud code que a gente vai utilizar no
1:07:32antig, ele é feito para VS Code. Ele é
1:07:35produzido ali uma extensão pro VS Code.
1:07:37E como o antig ele é feito em cima do VS
1:07:40Code também, então a gente consegue
1:07:41pegar a extensão ali sem nenhum
1:07:43problema, OK? Ela é totalmente gratuita,
1:07:45então você não vai ter custo nenhum, OK?
1:07:47E é focada em desenvolvimento com IA.
1:07:49Então ela é realmente voltada para você
1:07:50desenvolver alguma coisa com IA.
1:07:52Inclusive tem ali, é toda a parte de IA
1:07:54próprio do Google mesmo, mas a gente não
1:07:56vai utilizar aqui nesse momento, ok? E
1:07:58ela vai ser o cockpit oficial que a
1:07:59gente vai utilizar. Então, por exemplo,
1:08:00um piloto de Fórmula 1, ele tem o
1:08:02cockpit dele, onde tem o volante, todos
1:08:03os botões, tudo que ele pode fazer.
1:08:05Nesse caso, o nosso cockpit é a o
1:08:07antiraver, tá? Vai ser a nossa IDE. E
1:08:09agora eu vou sair aqui um pouco do Calid
1:08:11Draw, depois a gente vai voltar para
1:08:12ele, mas eu quero te mostrar como que a
1:08:14gente faz a instalação, é primeiro do
1:08:16cloud Code no CLI, ou seja, no terminal
1:08:19e depois como que a gente faz do
1:08:20antiguo, já vim pro Antiver sem querer,
1:08:22mas enfim, aqui eu tô com cloud, o cloud
1:08:25aberto, tá bom? Você pode simplesmente
1:08:26pesquisar por cloud code ou pegar o link
1:08:28que vai tá aqui na descrição. Todos os
1:08:29links e materiais que a gente utilizar
1:08:31vai tá aqui na descrição, OK? Nesse caso
1:08:33aqui, eu tenho o Cloud Code aqui, só
1:08:36pisando no Google. E o que que eu vou
1:08:37fazer? Basicamente, vou utilizar o Cloud
1:08:39Code. Vou vir aqui na documentação, OK?
1:08:42Vou clicar aqui na documentação. E aqui
1:08:44eu vou ter esses três comandos, o
1:08:46comando para Macos, para Windows
1:08:48PowerShell e para Windows CMD. Nesse
1:08:51caso, utilizar o de Windows CMD. Se você
1:08:53tiver, por exemplo, utilizando
1:08:54PowerShell, Mac, Linux e outros, você
1:08:57copia esse daqui de cima, tá bom? E aqui
1:08:58no Windows eu vou apertar Windows R, vou
1:09:01digitar aqui nessa caixinha que aparecer
1:09:03cmd e vou dar um enter, ok? E aí, nesse
1:09:06caso, eu vou só colar esse comando e
1:09:08executar. No meu caso, eu não vou colar
1:09:10esse comando e executar porque eu já
1:09:11tenho o meu cloud code instalado aqui.
1:09:14Pode ser que caso eu instale dê conflito
1:09:15e tudo mais, então para evitar eu não
1:09:17vou instalar. Mas o processo de
1:09:19instalação é muito simples. Assim que
1:09:20você colar aqui esse comando, ele vai
1:09:22executar ele, ele vai instalar o Cloud
1:09:24Code e depois ele só vai pedir para você
1:09:25fazer o log na sua conta, tá bom? E aqui
1:09:27um ponto muito importante, acho que eu
1:09:29ainda não comentei, mas é aqui o
1:09:30seguinte, quando a gente fala do cloud
1:09:32code, a gente tem duas opções de uso,
1:09:34tá? Então vou trazer aqui para cima pra
1:09:36gente desenhar. Quando a gente fala do
1:09:37cloud code, a gente pode utilizar ele
1:09:39tanto via API, OK? Que é o quê? É você
1:09:42pegar ali a API Tropic, pegar sua chave
1:09:44API e configurar lá para você utilizar
1:09:47via API. Ou seja, tudo que você fizer,
1:09:49tudo que ele interagir, etc. Vai ser
1:09:51cobrado com base na API, token por
1:09:53token. Mas você também pode utilizar via
1:09:55assinatura. Então você pode ter aqui
1:09:57outro modo que é aqui a assinatura,
1:09:58aquela mesma assinatura que você tem ali
1:10:01pro seu cloud no chat e tudo mais, você
1:10:03vai ter aqui pro cloud code. E na minha
1:10:05opinião é a melhor maneira porque você
1:10:07vai ter e todos os limites ali do cloud
1:10:09juntos no mesmo lugar, tá? Então você
1:10:10pode utilizar o cloud cork, o cloud
1:10:12chat, o cloud code, ok? Pode ser que em
1:10:15alguns casos, caso você use muito pouco,
1:10:17pela API seria mais barato, mas de
1:10:18qualquer forma eu recomendo que você
1:10:19faça pela assinatura, pela facilidade,
1:10:22pela simplicidade e também porque ela
1:10:23vai te entregar já tudo junto, sabe?
1:10:25Então você vai ter acesso ao chat do
1:10:26cloud, vai ter acesso vai ter acesso ao
1:10:28cloud work, ao cloud code, enfim, ao meu
1:10:30ver vale muito mais a pena você fazer a
1:10:32assinatura do cloud code ao invés de
1:10:34pagar pela PI, tá? Mas aí pode depender
1:10:36de cada caso. No nosso curso aqui a
1:10:38gente vai seguir pela assinatura, tá
1:10:39bom? Que nesse caso você vai desboçar aí
1:10:41uns R$ 110 mais ou menos. É uma
1:10:43facadinha, mas cara, vou ser bem
1:10:45sincero, é uma facadinha que compensa,
1:10:47tá? Um projeto que você vende
1:10:48desenvolvido com Cloud Code já paga esse
1:10:50preço tranquilamente, OK? Nesse caso
1:10:53aqui, eh, que que a gente vai fazer? Eu
1:10:55vou executar aqui cloud, tá bom? Só pra
1:10:58gente acessar aqui o nosso cloud. Quando
1:11:00você instalar o seu cloud, ele já vai
1:11:01vir para essa tela aqui diretamente, ó.
1:11:03Eu vou dar aqui um logout, OK? Quando
1:11:06você acessar o seu cloud, aí você rodar
1:11:08aquele comando, ele vai vir para essa
1:11:09tela aqui, tá? E o que que você vai
1:11:11fazer aqui? Basicamente, você pode
1:11:12selecionar o modo como você quer que as
1:11:14coisas apareçam no seu cloud, tá? Nesse
1:11:16caso, vou colocar aqui dark mode, que eu
1:11:17prefiro. E aqui ele vai pedir como que
1:11:19você quer logar na sua conta. Nesse
1:11:21caso, eu vou colocar aqui com a minha
1:11:23inscrição, tá? Você pode colocar, por
1:11:24exemplo, com o console account, ou seja,
1:11:26usando a API da própria OK? Que é aquilo
1:11:28que eu falei, ou utilizando a API de
1:11:30outra plataforma. Nesse caso, vamos de
1:11:32inscrição, eu vou clicar aqui, tá bom?
1:11:34Ele vai abrir aqui automaticamente o meu
1:11:36cloud e vai me pedir a autorização. Eu
1:11:38vou clicar aqui em autorizar, OK? Ele
1:11:40vai carregar aqui e pronto, ele já
1:11:42conectou. E aqui agora no meu cloud code
1:11:44já aparecido aqui, eu posso dar um
1:11:46enter. E agora ele só me dá aqui um
1:11:48aviso que ele pode cometer erros e tudo
1:11:49mais. Me pede se eu quero confiar nessa
1:11:51pasta e ok. E aqui eu posso mandar para
1:11:53ele o que eu quiser que ele vai me
1:11:55responder. OK? Então, ah, oi, como posso
1:11:57ajudar? Enfim, basicamente aqui o cloud
1:11:59code pelo terminal. Algumas
1:12:01configurações bem específicas do cloud
1:12:03code talvez a gente faça pelo terminal,
1:12:05tá? Mas nesse caso a gente não vai
1:12:06seguir por aqui porque realmente é um
1:12:08pouquinho mais complicado. Eu vou
1:12:09mostrar depois dentro do antirevery e
1:12:11você vê que é bem mais amigável pra
1:12:12gente trabalhar com arquivos e tudo
1:12:14mais, vai ficar bem mais fácil. Então,
1:12:15por enquanto eu não quero explorar muito
1:12:17essa parte de terminal, mas saiba que
1:12:18tudo que a gente tem aqui no terminal, a
1:12:20gente também pode ter lá no cloud code
1:12:21pelo antigravel, enfim, aqui a gente
1:12:23pode ter várias configurações. Posso,
1:12:25por exemplo, apertar barra aqui, posso
1:12:27ver o tema, posso ver as tes que eu
1:12:28tenho, é stickers, status, skills, etc.
1:12:31Tá? Enfim, a gente tem várias coisas
1:12:32aqui dentro, tá? Eu não vou focar muito
1:12:34nisso agora porque n é realmente de fato
1:12:36onde eu quero trabalhar mais com vocês,
1:12:37tá? Então vou fechar aqui o cloud code e
1:12:39onde eu quero realmente trabalhar com
1:12:40vocês aqui é no Antigy, nesse site aqui
1:12:43bonitão que você pode pesquisar aqui por
1:12:44Antigo no Google, tá? Que já vai
1:12:46aparecer aqui para você. Muito simples.
1:12:48Ou também pegar o link na descrição.
1:12:49Esse site aqui bonitão que você vai
1:12:50passando o mouse, ele vai soltando esses
1:12:52efeitos aqui que eu precisei falar
1:12:54porque eu achei muito bonito. Acho esse
1:12:55esse efeito aqui deles muito legal. E
1:12:57aqui basicamente você clica em download,
1:12:58tá bom? No seu caso, se for Mac, vai
1:13:00aparecer aqui para fazer o download pro
1:13:02Mac. No meu caso, como é Windows, ele
1:13:03aparece aqui download for Windows. E eu
1:13:05posso clicar aqui, né? No caso, achei
1:13:07que ele ia baixar automaticamente, mas
1:13:08ele não vai. Então aqui no Windows, eu
1:13:09posso clicar, fazer o download. Ó que
1:13:11ele já tá baixando aqui em cima, ó, o
1:13:13meu arquivo. Vamos só esperar um
1:13:15pouquinho. Falar que demorou, viu? Até
1:13:16tive que cortar aqui o vídeo, mas enfim.
1:13:19Tô aqui agora com antig instalado, tá?
1:13:20Esse aqui é o ponto x, você pode dar
1:13:22dois cliques nele, tá bom? Não vou fazer
1:13:25toda a instalação aqui também porque eu
1:13:25já tenho, mas eh deixa eu só fechar aqui
1:13:28o meu antig para eu conseguir mostrar
1:13:30para vocês. Posso que dar dois cliques
1:13:32aqui e que você vai basicamente aceitar
1:13:34tudo isso. Vai clicando em avançar, tá?
1:13:36Aqui pode deixar dessa maneira. Então
1:13:37adiciona aqui os três. Se você quiser,
1:13:39pode criar também um atalho na área de
1:13:41trabalho. Fica opcional se você quer ou
1:13:42não. Avançar e depois instalar que ele
1:13:44vai fazer toda a instalação, tá? Nesse
1:13:46meu caso aqui eu não vou instalar porque
1:13:47eu já tenho ele instalado, né? Não faz
1:13:49nem sentido instalar novamente. Então só
1:13:51aqui abrir agora o meu Antigv para
1:13:52mostrar para você, tá bom? Então
1:13:55basicamente quando você abre o pela
1:13:57primeira vez, ele vai te dar a opção de
1:13:58fazer o login com o Google, tá? Vai
1:14:00aparecer aqui do lado para você fazer o
1:14:01login com o Google ou aqui em cima no
1:14:02seu perfil, tá? Então aqui em cima,
1:14:04basicamente a gente tem algumas
1:14:05configurações principais. Eu vou te dar
1:14:07um overview geral sobre a nossa IDE. Não
1:14:09vou mostrar todas as funções dela, até
1:14:11porque nem eu utilizo tudo no dia a dia.
1:14:14Enfim, a gente também não precisa saber
1:14:15tudo aqui dentro, mas o principal eu vou
1:14:17te mostrar aqui, tá bom? Basicamente
1:14:19aqui a gente tá nossa parte de perfil,
1:14:20onde eu posso fazer o login aqui com o
1:14:22meu Google, OK? Então no seu caso não
1:14:23vai aparecer nenhuma conta, você pode
1:14:25clicar aqui para fazer o login com o
1:14:26Google, mas não é obrigatório porque a
1:14:27gente não vai utilizar aqui no nosso
1:14:29projeto, OK? Então aqui do lado a gente
1:14:31tem a parte de configurações do editor,
1:14:33então a gente tem tanto as configurações
1:14:35do antirevery, então digamos aqui que a
1:14:36parte realmente de IA do Google, OK? E
1:14:39também a parte de do nosso editor, nosso
1:14:41editor aqui da IDE de fato, que é o que
1:14:43a gente tá abrindo aqui, que a gente
1:14:44pode modificar, colocar os arquivos,
1:14:45etc. E que você pode fazer várias
1:14:47configurações, tá? De texto, de janela,
1:14:50de segurança e tudo mais, mas aqui e eu
1:14:52não vou explorar muito nessa parte que a
1:14:54gente não precisa disso por enquanto,
1:14:56OK? Aqui eu posso clicar em open
1:14:57browser, OK? que é um preview que eles
1:14:58estão aqui, algo em teste ainda, mas
1:15:00basicamente você pode, por exemplo, ir
1:15:02conversando aqui comig, desenvolvendo
1:15:03uma plataforma e aí depois você pode
1:15:05clicar aqui, ele já vai ter aqui um um
1:15:07browser, um navegador que quando você
1:15:09criar aqui alguma coisa e publicar você
1:15:11vai conseguir ver é no seu navegador
1:15:13pelo seu computador, tá? Quando tiver
1:15:14ali em local host e tudo mais. Depois
1:15:16aqui a gente tem o quick a gente pode
1:15:17pesquisar aqui por alguma coisa que a
1:15:19gente queira, tá bom? A gente tem aqui
1:15:20do lado o nosso Tor Agent, que é essa
1:15:22barrinha logo do lado da lupa, onde
1:15:24basicamente ou eu abro ou eu fecho aqui
1:15:26a parte de agente do Google do Gemini
1:15:28aqui, tá bom? Então eu posso fechar ele
1:15:30aqui e eu posso abrir para eu conversar
1:15:31com ele. Eu tenho também aqui a nossa
1:15:33parte de terminal, onde eu posso clicar
1:15:34aqui para ver o terminal, ver o console
1:15:36de debug, ver as portes aqui do meu
1:15:38computador, enfim, ver tudo que eu quero
1:15:39aqui. Inclusive aqui nesse terminal eu
1:15:41posso clicar aqui, ó, para abrir o meu
1:15:43cloud aqui, tá bom? Então vou dar acesso
1:15:46aqui para ele confirmar. E beleza, eu
1:15:47posso, por exemplo, utilizar aqui o meu
1:15:48cloud dentro do meu terminal. OK? Vou
1:15:52fechar aqui agora. Eu também tenho a
1:15:54barra aqui do lado, onde eu posso deixar
1:15:56ela aberta ou fechada. Normalmente a
1:15:58gente deixa aqui aberta que fica melhor
1:16:00para ver os arquivos e tudo mais, ok? E
1:16:02caso você queira, você também pode
1:16:03customizar aqui o Lot, tá? Nesse caso
1:16:05aqui eu não quero modificar nada, então
1:16:07vou deixar dessa maneira. E aqui do
1:16:08lado, o que que a gente tem? A gente tem
1:16:10aqui em cima o Explorer, é aqui que vai
1:16:12aparecer todos os arquivos que você
1:16:13tiver dentro do seu projeto, tá bom?
1:16:15Então pensa no projeto como uma pasta.
1:16:17Basicamente a pasta representa o projeto
1:16:18e dentro dela vai ficar todo o nosso
1:16:20software, todos os códigos, todas as
1:16:21pastas também, porque pode ter ali
1:16:23algumas pastas internas ali para
1:16:24controle de algumas coisas e todos os
1:16:26arquivos que a gente precisa para pro
1:16:28nosso código aqui, pro nosso software
1:16:29rodar, tá bom? A gente tem aqui, por
1:16:31exemplo, controle de fontes também que a
1:16:33gente pode fazer com GitHub. A gente tem
1:16:34a parte aqui de run e debug, então a
1:16:37gente executar o nosso código e debugar,
1:16:38OK? Tem a parte de remote explorer, a
1:16:40gente já vai explorar, e tem a parte de
1:16:42extensão, tá? Passei aqui por cima de
1:16:43algumas coisas porque é boa parte delas
1:16:45ou o próprio cloud code vai fazer pela
1:16:47gente ou a gente não precisa e entrar em
1:16:49muitos detalhes agora, OK? Nesse caso
1:16:51aqui, extensões, a gente vai ter
1:16:53justamente isso daqui que é o nosso
1:16:54cloud code. Se não tiver aparecendo aqui
1:16:56para você, que nem tá aparecendo no meu
1:16:58logo de cara, você pode pesquisar por
1:17:00cloud code aqui, OK? Vamos só esperar
1:17:02ele carregar e vai ter aqui o nosso
1:17:04cloud code, a nossa extensão pra gente
1:17:05selecionar. Vamos só esperar. Pronto,
1:17:07ele apareceu aqui. Eu posso clicar e aí
1:17:10você só confere aqui em cima se
1:17:11realmente é Danropic, tá? O ideal é que
1:17:13você pegue o cloud code downtropic. Pode
1:17:15ser que talvez você veja aí um outro
1:17:16cloud code, mas se não for tropic meio
1:17:19perigoso. É, pode ter alguma coisa para
1:17:21monitorar aí os arquivos que você tem e
1:17:23roubar informações ou algo do tipo.
1:17:25Enfim, é, não vou mandar sorte pro azar,
1:17:27só realmente vai no original mesmo, no
1:17:28oficial da Antropic, OK? E no seu caso
1:17:32vai aparecer aqui o botão de install,
1:17:34que nem é aparece aqui, por exemplo,
1:17:35nessa extensão que eu não tenho, tá?
1:17:36Você clica no install, só confirma aí
1:17:38para ele confiar nessa extensão e
1:17:40pronto, você já vai baixar o seu cloud
1:17:42code, ok? Basicamente aqui na nossa IDE,
1:17:44a gente pode vir aqui em cima, tá? Nesse
1:17:46caso, eu tô com o arquivo aberto, no seu
1:17:47proente não vai ter nenhum, vai ficar
1:17:49dessa maneira aqui assim, ó. Não vai
1:17:50aparecer o cloud. Você pode ou vir aqui
1:17:52na barra lateral esquerdo em cloud code
1:17:54e clicar aqui em nova sessão, tá? new
1:17:56session aqui em cima que ele já vai
1:17:58abrir aqui a janela do cloud code. Então
1:18:00tem aqui uma umas sessões aqui de teste,
1:18:01né, que eu rodei no meu computador.
1:18:03Posso até apagar elas aqui por enquanto.
1:18:05E beleza, eu tenho aqui no meu cloud
1:18:06code onde a gente pode já realmente
1:18:08pedir alguma coisa para ele e ele vai
1:18:09criar. Porém, tá faltando um ponto muito
1:18:11importante que é o quê? Aqui do lado eu
1:18:13não tô com nenhuma pasta aberta, não tô
1:18:15configurado nenhum projeto aqui. Então
1:18:16posso vir aqui em open folder e no meu
1:18:18caso eu tenho uma pasta onde eu deixo
1:18:20tudo que eu faço com anti gravery. Então
1:18:21aqui tem vários projetos que eu vou
1:18:23fazendo, alguns de teste, alguns
1:18:24realmente de projeto, etc. Então aqui eu
1:18:26vou vir, eu vou criar uma nova pasta.
1:18:28Você pode aí também ter um espaço onde
1:18:30você centraliza tudo, OK? Você cria uma
1:18:32pasta e você vai criando novas pastas
1:18:34dentro dessa pasta, que é como eu tô
1:18:35fazendo aqui. E agora vou criar uma
1:18:37pasta chamada curso gratuito. Então vem
1:18:39aqui em rename, curso gratuito. Vou dar
1:18:42um enter aqui, vou clicar para abrir
1:18:43essa pasta e vou selecionar. E agora,
1:18:45pronto, ele vai aqui recarregar minha
1:18:47tela. E basicamente agora eu tô dentro
1:18:48do meu projeto do curso gratuito, que é
1:18:51o nosso curso que a gente tá tendo aqui,
1:18:52tá bom? Então eu posso já eh configurar
1:18:54tudo que eu quiser aqui. Eu posso
1:18:55adicionar pastas aqui dentro, ó. Então,
1:18:57posso ter a pasta, por exemplo, oi,
1:18:58galera. Eu posso criar aqui um arquivo
1:19:01oi dentro dessa pasta. Eu também posso
1:19:03adicionar um arquivo fora da pasta aqui.
1:19:05Então, opa, então esse arquivo aqui, ó,
1:19:07eu posso abrir a pasta e fechar, né? E
1:19:09aqui eu vejo que esse arquivo tá fora da
1:19:11pasta. Enfim, eu posso vir adicionando
1:19:13aqui várias coisas aqui dentro, tá bom?
1:19:15Eu vou só deletar aqui pra gente deixar
1:19:17bem limpo a nossa fase de trabalho. E
1:19:19agora que que eu vou começar criando
1:19:20aqui? Eu vou criar um documento chamado
1:19:22cloud em maiúsculo. MD. A gente já vai
1:19:25ver o que é esse cloud MD, tá? Mas por
1:19:28enquanto eu quero só criar ele aqui para
1:19:29eu liberar essa visualização aqui. Ou
1:19:31seja, vai aparecer aqui do lado também o
1:19:33cloud code para mim abrir. Posso clicar
1:19:35aqui e ele já abre aqui na parte do
1:19:36cloud code, tá? No seu caso, ele vai vir
1:19:39assim, ó. Vou colocar aqui barra log,
1:19:41ele vai vir para pedindo assim para você
1:19:42logar. Nesse caso, você só vem aqui,
1:19:44clica em cloud subscription, OK? É o
1:19:46mesmo processo que a gente fez lá no
1:19:47terminal. Clica em open. Ele vai abrir
1:19:50aqui o meu navegador. E aqui eu vou
1:19:52autorizar. Clicar aqui em autorizar. E
1:19:55beleza, eu já posso voltar aqui no meu
1:19:56cloud code e eu já tô autorizado. Já tô
1:19:58logado aqui dentro no meu cloud code, tá
1:20:01bom? Lembrando só que você precisa ter a
1:20:03assinatura, pelo menos aí do nível pro,
1:20:04que é aquela assinatura de R$ 110 para
1:20:06utilizar o Cloud Code, OK? E aqui dentro
1:20:09a gente tem várias coisas. Que que a
1:20:10gente vai ter aqui? Aqui a gente vai ter
1:20:12a parte de arquivos, então posso
1:20:13adicionar aqui. Então posso adicionar
1:20:15browser na web. Então aqui eu posso dar
1:20:17um site para ele ou pedir para ele
1:20:18pesquisar alguma coisa na web, OK? Aqui
1:20:20eu posso adicionar contexto, então posso
1:20:22mencionar algum arquivo ou posso criar,
1:20:24por exemplo, aqui algum novo arquivo.
1:20:25Mas enfim, quando eu aperto aqui o arro,
1:20:27eu consigo ver todos os arquivos que eu
1:20:28tenho dentro do meu projeto, arquivos,
1:20:30skills, etc. E eu posso utilizar eles,
1:20:33OK? E também tenho o upload from
1:20:35computer, ou seja, aqui eu posso subir
1:20:36uma imagem, posso subir um arquivo,
1:20:38posso mandar várias coisas aqui para
1:20:40ele, tá bom? Aqui embaixo ele vai
1:20:42mostrar qual arquivo que eu tô aberto,
1:20:43tá? se ele quer que eu referencie esse
1:20:45arquivo. Então, por exemplo, aqui, como
1:20:47eu tô com esse arquivo aqui aberto
1:20:48doc.m, se eu mandar uma mensagem para
1:20:50ele, ele vai mandar mensagem
1:20:51referenciando que eu tô com esse arquivo
1:20:53aberto. Se eu clicar aqui para para
1:20:55fechar dessa maneira, ó, deixar meio que
1:20:57invisível, né, com esse olhinho, com o
1:20:58traço, basicamente vai ficar invisível e
1:21:00ele não vai mandar pr pro cloud que eu
1:21:02tô utilizando essa parte aqui, tá bom? E
1:21:04aqui do lado eu tenho os modos de
1:21:06permissão que eu já entro nisso daqui.
1:21:08Agora eu vou estar lá no meu Scalidraw,
1:21:09tá bom? Deixa eu abrir aqui meu
1:21:10Scalidraw. E eu tenho mais algumas
1:21:12coisinhas aqui para mostrar para você,
1:21:13tá? Essa parte aqui a gente já viu que é
1:21:15a barra lateral, a parte de extensões,
1:21:17etc. O que eu quero mostrar aqui agora
1:21:19são os modos de permissão. A gente tem
1:21:21alguns modos de permissão. E qual que é
1:21:22o objetivo dos modos de permissão? O
1:21:24cloud ele age de forma autônoma, ou
1:21:26seja, ele consegue abrir seus arquivos,
1:21:27consegue eh mudar o nome deles, consegue
1:21:29alterar o que tem dentro deles, consegue
1:21:31excluir também, consegue atualizar,
1:21:33enfim, ele consegue interagir com tudo
1:21:34que tem aqui dentro do nosso projeto e
1:21:36também no nosso computador, se a gente
1:21:37pedir e a gente permitir que ele faça
1:21:38isso. Porém, tem algumas ações que são
1:21:41irreversíveis, como deletar, dropar o
1:21:43banco de dados, que é basicamente você
1:21:44apagar todo o banco de dados, ok? Então,
1:21:47para essas ações, a gente tem que tomar
1:21:49cuidado para que ele não faça nada que
1:21:50ele não possa fazer. E nesse caso a
1:21:52gente tem os modos de permissão que vão
1:21:54definir a autonomia do agente e a
1:21:56segurança do agente, ou seja, o quão
1:21:58autônomo ele vai ser, o quanto que ele
1:21:59não vai precisar de eh, por exemplo,
1:22:02aprovações nossa e também a segurança.
1:22:04Lembrando que quanto menos aprovações
1:22:06ele precisa, mais inseguro ele é, ou
1:22:08seja, menos segurança a gente tem do
1:22:10nosso lado, ok? Então, a gente tem que
1:22:12travar a autonomia para a situação
1:22:13certa. Tem situações onde, cara, não tem
1:22:15problema nenhum deixar ele fazer tudo
1:22:17que ele quiser, mas tem ações, por
1:22:19exemplo, em caso de software em
1:22:20produção, eh, em casos de grandes
1:22:22empresas e tudo mais, que eles jamais
1:22:24vão permitir que você use esse modo de
1:22:25permissão, porque, cara, não tem como,
1:22:27sabe? Se qualquer coisa for apagada de
1:22:29forma que não deve, bons dados, coisas
1:22:31do projeto, pode dar muito ruim, tá?
1:22:33Então, a gente tem alguns modos de de
1:22:35permissão diferentes aqui, tá? Quais são
1:22:37eles? A gente tem o ask before edits, ou
1:22:39seja, perguntar antes de agir, de agir.
1:22:42Então o cloud ele pede aprovação a cada
1:22:43edição. Para cada edição que ele for
1:22:46fazer, ele vai pedir a nossa permissão.
1:22:48Então, cara, editar um texto, editar um
1:22:50arquivo, criar um novo arquivo, criar
1:22:51uma pasta, apagar uma pasta, tudo que
1:22:53ele for fazer, ele vai pedir permissão,
1:22:55tá? Então, isso aqui é muito bom para
1:22:56alguns casos, é o mais seguro, na
1:22:58verdade, aqui, porém também é o mais
1:23:00chato, tá? Aí é o mais chato. Por quê?
1:23:01Porque ele realmente vai pedir permissão
1:23:02para tudo. Tudo que ele for fazer, seja
1:23:04a coisa mais boba, mais simples do
1:23:06mundo, ele vai pedir permissão, tá?
1:23:08Então isso daqui realmente a gente só
1:23:09utiliza em caso muito, muito crítico,
1:23:11onde a gente realmente precisa do máximo
1:23:12de segurança, mas um dia a dia pra gente
1:23:14desenvolver ele é muito chato, ok? A
1:23:16gente tem também o editomaticale, que é
1:23:18o quê? Editar automaticamente, tá?
1:23:20Talvez acho que meu inglês ele não sai
1:23:21muito bem, mas enfim, você entendeu que
1:23:23é o editar automaticamente, onde ele
1:23:24consegue editar textos ou arquivos
1:23:27inteiros direto, só que ele não vai
1:23:28poder apagar. Então, por exemplo, ah,
1:23:30apagar um arquivo, apagar um um
1:23:32documento, ele vai pedir permissão
1:23:33antes, mas ele vai poder alterar o texto
1:23:35desses documentos, alterar o nome, criar
1:23:37novos documentos sem pedir a nossa
1:23:38permissão, OK? Isso daqui é um modo que
1:23:40equilibra muito bem a segurança, né? e
1:23:43também a nossa parte aqui do que que a
1:23:44gente permite que ele faça. Ou seja, ele
1:23:46realmente não tem uma autonomia legal e
1:23:48também tem uma segurança muito boa. A
1:23:50gente tem o plan mode, que é basicamente
1:23:52o read only, ou seja, ele só consegue
1:23:54ler. Então ele explora todo o seu
1:23:56projeto, é, explora tudo que você pediu
1:23:58para ele e ele cria um clã. Esse aqui a
1:24:00gente pode utilizar tanto para criar um
1:24:01projeto do zero, inclusive é o que a
1:24:03gente vai utilizar aqui para criar o
1:24:04nosso projeto do zero, quanto a gente
1:24:05também pode utilizar para, por exemplo,
1:24:07corrigir um bug. Se tem um bug muito
1:24:09trabalhoso, que você já tentou corrigir,
1:24:11que tá causando, tá muito difícil de
1:24:12arrumar, você pode pedir para ele
1:24:14analisar todo o projeto, criar um plano
1:24:16e só ele tentar corrigir. Tá dizer que
1:24:18também ajuda muito a você não ficar
1:24:20girando em círculos aí. E por último, a
1:24:22gente tem o modo bypass permission, que
1:24:24é o meu preferidinho, mas não é muito
1:24:26bom isso, tá? Que é basicamente o quê?
1:24:27Ele não pede aprovação para nada, tá?
1:24:29Todos os comandos, edições, tudo que ele
1:24:31for fazer, ele não pede permissão, ok?
1:24:33Isso daqui, cara, tem que tomar muito
1:24:35cuidado. Eh, em casos críticos, como eu
1:24:37falo, por exemplo, grandes empresas e
1:24:39tudo mais, você não deve utilizar isso
1:24:40daqui, mas se você tá desenvolvendo um
1:24:42projeto para si mesmo, que nem vai, a
1:24:43gente vai fazer aqui, então a gente pode
1:24:44utilizar tranquilamente. Mas é muito
1:24:46importante que a gente tome cuidado
1:24:47principalmente com o quê? Com os
1:24:49comandos que a gente dá para ele e
1:24:50também com as skills e os MCPs que a
1:24:52gente dá acesso. Por quê? Se eu tenho
1:24:54uma skill que ela tem ali, por exemplo,
1:24:56um prompt injection, que é basicamente o
1:24:57quê? É um prompt falando para ele apagar
1:24:59o banco de dados ele tenha acesso, tá?
1:25:01alguma instrução maliciosa que contém
1:25:03dentro da skill. E eu tenho esse bypass
1:25:05permisso aqui ativado. Se por algum
1:25:06motivo ele obedece essa instrução, cara,
1:25:09eu vou perder todo o meu banco de dados
1:25:10sem ter nada o que fazer, porque ele
1:25:12simplesmente vai executar, tá? Ou seja,
1:25:14ele não vai pedir permissão, então ele
1:25:15vai executar isso. Então, quando a gente
1:25:16utiliza esse modo aqui, a gente tem que
1:25:18ter muito cuidado com tudo que a gente
1:25:19tá fazendo, com tudo que a gente tá
1:25:20dando de contexto pro nosso agente, para
1:25:22que a gente não polua, para que a gente
1:25:23não faça nada de errado, porque isso
1:25:25aqui é muito, muito importante. E aqui a
1:25:27gente tem algumas configurações no nosso
1:25:29cloud code, tá? Que é o quê? A gente vai
1:25:31ter aqui os modos de permissão desse
1:25:32lado. Então, voltando para eu te
1:25:33mostrar, a gente tem o ES before edits,
1:25:35vai perguntar antes de editar o editar
1:25:37automaticamente, que ele vai editar e
1:25:39arquivo e tudo mais, sem pedir
1:25:40permissão, mas pede permissão para criar
1:25:42e para apagar, ok? A gente tem o plan
1:25:45mode, porque ele vai criar um plano
1:25:46aqui, ele vai somente ler, ele não vai
1:25:48escrever nenhum código. E a gente tem o
1:25:49bypass permission, só que o bypass
1:25:51permission ele não aparece naturalmente,
1:25:53tá? A gente só consegue utilizar ele
1:25:55quando a gente vem aqui em barra, OK? E
1:25:57a gente digita aqui settings. Calma que
1:25:59eu sei que você já viu um monte de
1:26:00coisas aqui. E na verdade é general
1:26:03config. Isso, general config, tá?
1:26:05Escreve aqui barra general config. Você
1:26:06que já viu um monte de comandos aqui,
1:26:07você já ficou maluco e falou: "Lucas,
1:26:09que cacetada de comandos são esses?
1:26:11Calma aí que eu já vou te mostrar, já
1:26:13vou explicar o que são cada uma delas,
1:26:15OK? Mas aqui em configurações gerais, a
1:26:18gente tem algumas configurações gerais,
1:26:19tanto do nosso workspace, OK? Quanto do
1:26:22nosso usuário. O que que é workspace?
1:26:24Workspace é basicamente o nosso projeto
1:26:26e o nosso usuário vai ser basicamente
1:26:28ehu. Então quando eu acesso aqui, por
1:26:30exemplo, meu anti grav com esse cloud
1:26:31code, se eu faço aqui alguma
1:26:33configuração, sempre vai ser aplicar
1:26:35para todos os meus cloud, para todos os
1:26:37meus projetos, ok? Porém, quando eu faço
1:26:39alguma alteração pro workspace, ele só
1:26:42se aplica ao worksplace e caso, por
1:26:44exemplo, eu crio um novo projeto, ele
1:26:46não vai interferir o novo projeto, ok?
1:26:47Então, basicamente essa diferença. A
1:26:49gente tem tanto o user, ou seja, você.
1:26:51Então essa configuração ela é global,
1:26:53ela é geral para todos os projetos.
1:26:55Outro também tem workspace que é a
1:26:57configuração somente pro projeto. E aí
1:26:59nesse caso, não se aplica a outros
1:27:01projetos, OK? Aqui você pode ativar para
1:27:03user essa capacidade, esse primeiro
1:27:05botãozinho aqui, que vai ser o quê? Você
1:27:07permitir que ele eh pule permissões para
1:27:10ações perigosas, OK? Então, que é o
1:27:12nosso bypass permission. Se eu desativar
1:27:13aqui, ó, e eu venho aqui agora, eu não
1:27:15consigo visualizar, ele já sumiu. Se eu
1:27:17venho aqui e eu ativo, agora já aparece
1:27:19aqui o meu bypass permission, tá? Então
1:27:21você tem que vir aqui e habilitar ele
1:27:22para que você possa utilizar aqui
1:27:24embaixo, tá? Enfim, aqui a gente tem
1:27:26várias opções, como login prompt, tem
1:27:29autosave também, esse aqui é bem legal,
1:27:30tá? Você pode optar para ele salvar ou
1:27:33não o arquivo depois de escrever, depois
1:27:35de alterar. Eu deixo aqui ativado, tá?
1:27:37Assim, é um caso muito crítico, que nem
1:27:38eu disse, grandes empresas, sistemas
1:27:40críticos, cara, talvez o ideal seja você
1:27:42desativar para que você possa ver o que
1:27:43ele fez, ver alterações antes de salvar,
1:27:46ok? Aqui a gente tem as configurações
1:27:48das variáveis de ambiente. Então, a
1:27:50gente pode, por exemplo, esconder o
1:27:51onboarding, a gente pode modificar aqui
1:27:53o modo de permissão inicial, aí você
1:27:55pode, por exemplo, colocar aqui para ele
1:27:56sempre vir pro padrão com bypass
1:27:58permission que eu posso colocar aqui e
1:27:59pronto. Sempre que eu abrir o meu meu
1:28:01cloud code, ele vai vir com esse modo
1:28:02aqui, OK? Eu posso selecionar o modelo
1:28:05padrão aqui que eu quero utilizar.
1:28:06Enfim, eu tenho várias opções aqui com o
1:28:09meu cloud code, tá? Essas daqui são as
1:28:10principais, as outras são mais
1:28:12secundárias, mas a gente pode explorar
1:28:13bastante coisas aqui dentro, OK?
1:28:15Inclusive aqui a gente tem o arquivo
1:28:17settings. Jon, onde ele basicamente
1:28:19guarda todas as configurações que a
1:28:20gente faz, então os modelos pinados, o
1:28:22cloud code no a local de preferência,
1:28:25né? Nesse nesse meu caso aqui tá o
1:28:26painel, eu tenho o modelo selecionado
1:28:28também por padrão que o cloud 4.6. E
1:28:31aqui eu tenho o meu PEF, então que
1:28:32basicamente é onde que o meu cloud code
1:28:34tá rodando. Então aqui ele pega o meu
1:28:36usuário aqui do Windows, OK? Ele coloca
1:28:38ali ponto boom barrabin e aqui ele tem
1:28:40também o pf, ok? Que é o caminho ali é
1:28:43de ambiente. Aqui eu também tenho se eu
1:28:46permito pular essas permissões ou não,
1:28:48né? Se eu ativo aqui o modo bypass
1:28:50permission, se eu colocar false aqui,
1:28:51por exemplo, ó, v colocar false, eu vou
1:28:54dar um contrl s e se eu vir aqui agora,
1:28:56ó, não aparece, tá? Ou seja, eu também
1:28:58posso controlar aqui pelo arquivo, mas
1:29:00geralmente a gente faz lá pelo painel
1:29:01mesmo, que é melhor. E agora ele aparece
1:29:03aqui novamente. E também tá aqui o modo
1:29:05inicial que eu prefiro. Nesse caso, tá o
1:29:07bypass permission. É basicamente isso
1:29:09aqui. A gente poderia adicionar mais
1:29:11configurações, mas eu não quero muito ir
1:29:12para esse lado aqui por enquanto porque
1:29:14a gente não vai ter um ganho produtivo
1:29:15muito grande, tá bom? Então a gente já
1:29:17pode fechar aqui essa parte de
1:29:18configurações. Então turma, voltando
1:29:20rapidinho aqui pro nosso Scalidra, só
1:29:22pra gente ver alguns conceitos, tá? Eu
1:29:23prometo que já já a gente vai pra parte
1:29:25prática, mas antes eu preciso trabalhar
1:29:27muito bem os conceitos com vocês, OK?
1:29:29Aqui a gente tem o nosso settingson, que
1:29:30foi o que a gente acabou de vi de ver,
1:29:32tá? Que basicamente é um arquivo que
1:29:33fica aqui e basicamente aqui é a rota do
1:29:35nosso usuário, tá? Esse eh acento,
1:29:39esqueci o nome agora desse assento, mas
1:29:40enfim, é não é tio, né? Assento tio,
1:29:43não, seja conflexo, pô, esqueci
1:29:45totalmente o nome desse negócio agora,
1:29:46mas enfim, esse assento aqui, tá bom?
1:29:48Barra.cloud/settings,
1:29:50OK? é onde vai est a nossa base geral do
1:29:52cloud code. Então tudo que tem aqui de
1:29:54informação, variáveis, permissões e tudo
1:29:56mais fica nesse settings. Jon, tá? E
1:29:59nesse caso aqui a gente nem precisa
1:30:00aprofundar muito porque a gente já viu
1:30:02isso, tá bom? E aqui é um negócio legal
1:30:04que eu já comentei com vocês, mas que a
1:30:06gente precisa reforçar também, que é o
1:30:08esclope global versus o escopo do
1:30:10projeto. O escopo global é basicamente
1:30:12aquele que a gente viu de usuário. Então
1:30:13ele se aplica a todos os projetos, a
1:30:16tudo que você fizer dentro do cloud code
1:30:17vai tá sendo aplicado. Então por
1:30:19exemplo, quando a gente vai instalar uma
1:30:20skill, a gente tem três opções. A gente
1:30:22pode instalar ela pra gente no escopo
1:30:24global, ou seja, vai se aplicar e a
1:30:26todos os projetos, a tudo que a gente
1:30:27for fazer. A gente pode instalar naquele
1:30:30projeto, mas compartilhado com todos os
1:30:31colaboradores do projeto, ou seja, todo
1:30:33mundo que baixar aquele projeto também
1:30:34vai ver aquela skill. Ou a gente pode
1:30:36instalar também só pra gente e só
1:30:38naquele projeto, OK? Mas de modo geral é
1:30:40isso, é esclopo global ou projeto. Se a
1:30:43gente instalar no esclopo global para
1:30:45todo mundo ali, a gente vai instalar
1:30:46literalmente para tudo que a gente fizer
1:30:47no nosso cloud code. Então todo o nosso
1:30:49cloud code vai ter acesso independente
1:30:50do projeto que a gente tenha e esteja
1:30:52utilizando. Que nesse caso aqui o nosso
1:30:54projeto é esse daqui, essa pasta também
1:30:56que é que guarda todos os nossos
1:30:57arquivos. Então, nesse caso, o curso
1:30:59gratuito, que é o nome da minha pasta,
1:31:01tá? Então, o projeto é basicamente
1:31:02aquela pasta principal e no scopo do
1:31:04projeto vai ficar somente para projetos
1:31:06que a gente desenvolver dentro dessa
1:31:08pasta, OK? E, né, o escopo global, ele
1:31:11vive ali naquele nesse acento aqui que
1:31:13eu esqueci seu nome também, eu não
1:31:14lembrei ainda, mas enfim, é, basicamente
1:31:16ele vai ser aplicado a toda a nossa
1:31:18máquina, tá? Então, todos os usuários da
1:31:19nossa máquina, eh, tudo que a gente
1:31:20tiver aqui vai ser aplicado. E a gente
1:31:22tem o corpo do projeto, que ele vive na
1:31:24raiz do repositório específico, que
1:31:25nesse caso vai ser aqui. Ou seja, eu só
1:31:28vou conseguir acessar a configuração que
1:31:29eu fiz, seja um hook, seja um MCP, seja
1:31:32uma skill nesse projeto aqui. Em outros
1:31:34projetos eu não vou ter acesso, a não
1:31:36ser que eu vá lá e configure também para
1:31:37aquele projeto, OK? Ou também global. E
1:31:40nesse caso, vamos supor que eu tenho eh
1:31:43algo na minha máquina, algo no escopo
1:31:45global e tenho algo no repositório, o
1:31:48projeto sempre vai vencer a máquina, tá?
1:31:50Então, por exemplo, a regra local ela
1:31:51vale mais do que a regra global. Então,
1:31:53se eu tenho, por exemplo, ah, então, por
1:31:54exemplo, skills, eh, hooks, etc.,
1:31:56normalmente o local vai vencer a
1:31:58máquina, tá? Então, ah, se, por exemplo,
1:32:00uma permissão aqui, ela tá bloqueada no
1:32:03local, mas tá habilitada no global, no
1:32:06local aquela permissão vai ficar
1:32:07bloqueada, ok? Em caso de skill, eh,
1:32:10normalmente ela vai ser o quê? Se eu
1:32:12tenho a skill instalada global global,
1:32:14mas eu não tenho ela instalada no local,
1:32:16ela já vai puxar do global. Mas noite
1:32:18permissões aqui que segue mais essa
1:32:20regra, que é o quê? Se eu tenho uma
1:32:21permissão configurada no local, essa
1:32:24configuração ela vai vencer o projeto,
1:32:26ok? Quando a gente fala de hooks, de
1:32:27skills, de MCPs, aí muda um pouquinho
1:32:29porque se tá habilitado aqui, ele já vai
1:32:31aparecer normalmente por automático no
1:32:33local, tá? Se eu coloquei globalmente,
1:32:35ele já aparece no local. E turma, agora
1:32:37eu preciso falar sobre mais uma coisa,
1:32:39tá? Que é o quê? O cloud.m.
1:32:43Eu sei que vocês estão se uso paraa
1:32:44parte prática, mas a gente ainda tem
1:32:46bastante conteúdo aqui, um pouquinho
1:32:48teórico sobre o cloud MD, mas eu vou
1:32:50misturando um pouco aqui, falando e
1:32:51mostrando aqui como é o cloud code, tá?
1:32:54Que que é o cloud MD? Basicamente, toda
1:32:56sessão que a gente abre aqui no nosso
1:32:58cloud code, então por exemplo, eu vou
1:32:59abrir aqui, eu vou começar a falar um
1:33:00oi, ele vai me responder aqui e tudo
1:33:03mais, tá bom? Falou: "Oi, como posso te
1:33:05ajudar?" Vou falar: "Meu nome é Lucas,
1:33:07nome é Lucas". Falei isso aí. Beleza.
1:33:10Oi, Lucas, como posso te ajudar? Agora
1:33:11se eu abrir uma nova sessão, eu posso
1:33:13clicar aqui, uma sessão entenda
1:33:14basicamente como um chat. Então, sabe o
1:33:16cloud, o cloud na internet, sabe o chat
1:33:18apt? Uma sessão é basicamente aqueles
1:33:20chats diferentes que a gente tem. Se eu
1:33:21perguntar para ele qual o meu nome,
1:33:24talvez ele não tenha. Deixa eu perguntar
1:33:25para ele aqui para ver, ó. Vamos ver. É,
1:33:28não tem essa informação, tá? Por quê?
1:33:29porque ele não tem acesso. Ou seja, como
1:33:32eu comentei aqui uma coisa com ele nessa
1:33:33sessão, nessa outra sessão ele não tem
1:33:35acesso, OK? Então acontece aqui, sem o
1:33:38cloud MD, toda sessão ela começa do
1:33:40zero, ela começa sem informação nenhuma,
1:33:42ela só vai ter as informações desse
1:33:44cloud MD. Então se eu colocar aqui, por
1:33:45exemplo, meu nome é Lucas, eu apertar um
1:33:47conttrl S aqui para salvar esse arquivo
1:33:49e depois eu vir aqui e criar uma nova
1:33:51sessão, ó. Criei aqui uma nova sessão.
1:33:53Vou perguntar novamente qual que é o meu
1:33:55nome. Deixa eu copiar aqui que fica mais
1:33:56fácil. Qual é meu nome? Vou mandar aqui,
1:33:58ó. Ele vai carregar. Meu nome é Lucas.
1:34:00Por quê? Porque tá aqui no Cloud MD. Ele
1:34:02carregou essa informação do cloud MD, tá
1:34:05bom? Então, basicamente sem toda a
1:34:07informação que a gente tem no cloud MD
1:34:09sempre vai ser carregada e a gente
1:34:10utiliza ele geralmente para colocar
1:34:11informações do projeto, porque assim o
1:34:13nosso cloud, ele sempre sabe do nosso
1:34:15projeto, OK? Porque, por exemplo, se eu
1:34:16não tenho o Cloud MD, ele não vai ter
1:34:17essa informação, ele não vai ter
1:34:18conhecimento do meu projeto, não vai
1:34:19saber sobre o que que é o meu projeto,
1:34:21você sempre ter que explicar para ele e
1:34:23tudo mais. E isso não é o ideal, OK? não
1:34:25é algo eh produtivo pra gente e nem
1:34:27também que vai gerar os melhores
1:34:29resultados. E sem isso eu tenho que
1:34:30repetir toda vez, tenho que estar sempre
1:34:32falando para ele, repetindo, repetindo,
1:34:33etc. E é um trabalho cansativo. É, cada
1:34:36sessão ela vai fazer de um jeito
1:34:37diferente, enfim, não vai tirar um
1:34:39resultado bom pra gente, tá? Então, o
1:34:40ideal é a gente sempre seguir ali, é,
1:34:43ter o Cloud MD para informar sobre o que
1:34:44que é o projeto e tudo mais, OK? Com o
1:34:46cloud MD, a gente define quem agente é
1:34:48no seu projeto, o que que ele vai fazer,
1:34:51como que ele vai agir, OK? Ele é
1:34:52carregado automaticamente no start.
1:34:54Então, por exemplo, lembra que eu abri
1:34:56essa sessão aqui, perguntei qual que é o
1:34:57meu nome, ele já me retornou aqui que
1:34:59meu nome é Lucas? Então, ele sempre
1:35:00carrega quando você cria a nova sessão,
1:35:02tá? Automaticamente você mandou uma
1:35:04mensagem ali, ele já carrega esse
1:35:05documento, ele lê antes de dar bom dia,
1:35:07né? Então, por exemplo, como e mandei
1:35:10aqui qual que é o meu nome? Nesse caso,
1:35:11se fosse, por exemplo, um bom dia, ele
1:35:12teria lido isso daqui primeiro e depois
1:35:14me retornado bom dia. Então, ele sempre
1:35:15lê antes de falar qualquer coisa, ok? E
1:35:18como resultado, eu tenho a memória
1:35:19persistente do meu projeto, ou seja,
1:35:21qualquer sessão que eu abrir, eu vou ter
1:35:22aqui essas informações. Então, que que é
1:35:25legal dessas sessões aqui? Eu posso, por
1:35:26exemplo, utilizar uma sessão para falar
1:35:28do meu front end e outra sessão para
1:35:29falar do meu back end. Eu posso utilizar
1:35:31uma sessão para falar sobre alguma coisa
1:35:33específica e sei lá, corrigir um bug no
1:35:36projeto e outra sessão só para realmente
1:35:37desenvolver o projeto. Eu poderia ter
1:35:39isso, OK? E o legal é que, por exemplo,
1:35:41com o Cloud MD configurado, a sessão que
1:35:43eu abri ali para falar sobre o meu bug,
1:35:45ele realmente conseguiria eh buscar
1:35:47melhor essa informação, tá? Ele
1:35:48conseguiria ter todo o contexto do meu
1:35:49projeto, porém ele não estaria poluído
1:35:52ali o contexto, né? Ele não teria muita
1:35:53informação no contexto e também o meu
1:35:55agente principal depois não teria eh o
1:35:57contexto poluído daquele tratamento de
1:35:59bug, ok? Então seria algo interessante
1:36:00da gente fazer e que que é ideal que a
1:36:02gente tenha no nosso conteúdo do cloud
1:36:03MD. Primeiro de tudo, contexto, qual é o
1:36:06nosso objetivo e qual que é a nossa
1:36:07stack tecnológica? Então, cara, o que
1:36:09que é o objetivo do nosso projeto? Vamos
1:36:10pôr aqui a nossa área de membros. A
1:36:12nossa área de membros é que é uma área
1:36:13de membros sofisticada que os alunos
1:36:14consigam acessar as aulas, consigam
1:36:16fazer anotações, consigam preencher
1:36:18quizes para ver qual que é o nível de
1:36:19conhecimento deles e enfim, é
1:36:21basicamente isso que eu quero na minha
1:36:22aula, na minha minha plataforma, tá?
1:36:24Depois a gente vai explorar isso mais
1:36:25depois, melhor e tudo mais, mas enfim, é
1:36:27basicamente isso que eu queria ter. Qual
1:36:28que é a stack tecnológica? Basicamente,
1:36:30o que que você quer utilizar? Nesse
1:36:32caso, a nossa stack, tá? Esse termo
1:36:34stack, ele basicamente é referente a
1:36:36tudo que a gente utiliza para
1:36:37desenvolver o nosso projeto. Então ele
1:36:39vai envolver a linguagem de programação,
1:36:41ele vai envolver o nosso banco de dados
1:36:42que a gente vai utilizar, é banco de
1:36:44dados, vai envolver APIs externas, OK?
1:36:47Então APS externas, por exemplo, no caso
1:36:50de um software que ele busca dados do
1:36:52Instagram, cara, a API externa do
1:36:54Instagram é algo fundamental da nossa
1:36:56stack. Sem ela, a gente não faz o
1:36:57projeto, né? Então, acaba entrando aqui.
1:36:59Enfim, a gente pode ter várias coisas
1:37:01aqui que a gente pode utilizar eh no
1:37:02nosso projeto que vai ser configurado
1:37:04dentro da Steack. Geralmente as coisas
1:37:05funcionais ali, as coisas principais, na
1:37:07verdade, que fazem nosso aplicativo
1:37:09funcionar. Então, por exemplo, ah, a P
1:37:11do Instagram faz esse aplicativo que
1:37:12busca informações do Instagram
1:37:13funcionar. Então, ela faz parte da
1:37:15Steck. Nosso banco de dados, eu não
1:37:17tenho nem o que dizer, né? Enfim, tudo
1:37:19isso faz parte da Steck. Eu poderia
1:37:20colocar aqui também onde que eu vou
1:37:22subir, tá? Vou subir na Versel, tá? no
1:37:24nosso no nosso curso aqui, a gente vai
1:37:25subir nosso projeto na Versel porque é
1:37:27gratuito e tudo mais. Então eu coloco
1:37:29aqui que vai ser na Versel porque ele já
1:37:30prepara o projeto pensando nisso. Então
1:37:32is basicamente ele contempla todas as
1:37:34coisas principais que a gente utiliza
1:37:36que faz o nosso aplicativo funcionar, tá
1:37:38bom? Depois aqui a gente coloca os
1:37:39padrões de código, então linguagem,
1:37:41frameworks, nomes, não se pega muito
1:37:43nisso se você não é uma pessoa técnica,
1:37:44tá? Mas enfim, basicamente a gente vai
1:37:46utilizar aqui o cloud também para ajudar
1:37:47a gente a criar o nosso cloud MD e ele
1:37:49consegue nos ajudar com isso. Então como
1:37:51que deve ser escrito, frameworks, etc?
1:37:53qual framework que ele deve utilizar
1:37:54para, por exemplo, buscar esses dados no
1:37:56Instagram e tudo mais. OK? A gente tem a
1:37:58regra de comportamento que vai
1:37:59basicamente falar o que ele deve fazer e
1:38:01o que ele deve nunca fazer. Isso aqui é
1:38:02muito importante. Então, por exemplo,
1:38:04nunca pague o banco de dados, OK? Eu,
1:38:05por exemplo, ah, eh, sempre analis
1:38:07projeto com calma antes de aplicar
1:38:09alguma alteração. É, busque ver se não
1:38:10tem dependências, eh, busque sempre
1:38:13analisar o seu código após ele ter sido
1:38:15construído, etc. Eu posso dar alguns
1:38:17comandos de como que ele deve fazer
1:38:19algumas coisas específicas, tá bom? e
1:38:21também fluxos vitais, por exemplo, ah,
1:38:24como testar, como fazer o deploy, como
1:38:25fazer a build e é como garantir que, por
1:38:27exemplo, a nossa PI tá funcionando, como
1:38:29verificar a conexão com de dados e os
1:38:30detalhes, OK? E também o arquitetura,
1:38:33então o porquê das suas decisões
1:38:35passadas, tá? Então a gente pode ir
1:38:37implementando o cloud MD ao longo do
1:38:39projeto. A gente constrói essa estrutura
1:38:41principal aqui no começo do projeto e
1:38:43com o passagem do tempo a gente pode ir
1:38:44colocando aqui decisões arquiteturais
1:38:46que a gente foi tomando ao longo do
1:38:47projeto para que ele se lembre, para que
1:38:49ele tem um contexto dessa dessas
1:38:50decisões que a gente tomou no passado,
1:38:52ok? Então você vai alimentando com o
1:38:53tempo e ele vai ter tendo e ele vai
1:38:55tendo sempre o contexto do que foi
1:38:56construído, tá bom? E algumas coisas que
1:38:58a gente não precisa ter aqui, que a
1:39:00gente não é ideal a gente colocar, tá?
1:39:02Primeiro, regras óbvias, então
1:39:03desperdício de tokens. Então, ah, eh,
1:39:06construa um software seguro, cara, isso
1:39:08aqui é o básico. Eh, por natureza, o
1:39:09Cláudio já tem essa informação. Talvez
1:39:11ele possa cometer erros de segurança,
1:39:13mas não é essa fala aqui que vai
1:39:14corrigir isso, OK? Instruções vagas.
1:39:17Então, ah, é, faça bem feito ou aquele
1:39:20clássico, né? Crie o GTA 6 e não cometa
1:39:22erros. Crie o cloud opus e 5 e não
1:39:26cometa erros. Enfim, a gente não coloca
1:39:28esses comandos vagos assim, tá? Porque
1:39:30eles não vão agregar em nada o nosso
1:39:31prompt, não vão nos ajudar a ter um
1:39:32resultado melhor. Arquivo maior que 200
1:39:35linhas. Então, cara, o ideal aqui do
1:39:37nosso cloud MD é que ele tenha no máximo
1:39:39ali 200 linhas, tá? No máximo, no
1:39:41máximo. Se ele tiver até 100 linhas, tá
1:39:43perfeito, tá? O ideal ali é que ele seja
1:39:45até 100 linhas, porque o objetivo não é
1:39:47colocar muita informação ali, é colocar
1:39:48as informações necessárias sobre o
1:39:50projeto, sobre o que que é, sobre como
1:39:51vai ser construído, sobre qual o
1:39:53objetivo que a gente quer atingir no
1:39:54final, etc., tá? As informações
1:39:56principais. E inclusive ali a gente
1:39:58coloca instruções ali dentro, tá? Então
1:40:00a gente coloca, ó, e deve ser feito
1:40:01dessa maneira, deve utilizar isso daqui,
1:40:03mas a gente não coloca ordens. Então,
1:40:05por exemplo, qual que é a ordem? A ordem
1:40:07eu falar para ele construir o software,
1:40:08as instruções é, por exemplo, ah, usa
1:40:10essa linguagem, eh, faça dessa maneira,
1:40:13organize os códigos dessa maneira, etc.
1:40:15Tá? Então, basicamente, seria isso.
1:40:16Quando, por exemplo, o seu chefe te
1:40:18explica como que você deve eh criar um
1:40:20novo documento, ele tá te dando
1:40:22instruções, tá te dando contexto. Quando
1:40:23ele pede para você criar o documento, aí
1:40:25sim é uma ordem, tá? Então, a gente não
1:40:27vai colocar ordens aqui dentro, a gente
1:40:28vai colocar instruções e contexto. Faça
1:40:30dessa maneira, não faça daquela maneira,
1:40:32eh, use isso, não use isso, OK? Eh,
1:40:34segundo, regras críticas de segurança,
1:40:36tá? Aqui não deve ter, por exemplo, ah,
1:40:37nunca pague o banco de dados, nunca faça
1:40:39tal coisa. Isso daqui não deve estar
1:40:41aqui, deve estar lá no nossos hooks, tá?
1:40:43Então, o cara quando é muito crítico,
1:40:44algo de segurança mesmo, muito avançado,
1:40:46a gente utiliza lá nos hooks, OK? E
1:40:48também segredos e senhas API. Isso daqui
1:40:51a gente nunca coloca no cloud.md, tá?
1:40:53Então, nada que a gente tiver, por
1:40:54exemplo, de segredo, de senha de API, de
1:40:56chave de acesso, a gente coloca lá. Tudo
1:40:58isso vai vir no arquivo específico que
1:41:00eu vou mostrar depois para você, que é o
1:41:01ponto env, tá? Que esse arquivo ele não
1:41:03sobe lá pro gitub, ele é ignorado na
1:41:05hora de subir, enfim, é muito mais
1:41:06seguro e também não é carregado pro
1:41:08agente, tá? O cloud.md sempre é
1:41:10carregado pro agente. Então, nesse caso,
1:41:12você não pode dar esse essa senha pro
1:41:14agente. Pode ser que ele faça alguma
1:41:16coisa, cara, talvez não, tá? Mas pode
1:41:18ser que, por exemplo, às vezes se
1:41:19mistura ali essa senha, essa chave de
1:41:21acesso nos dados de treinamento da da
1:41:23Antropic. A gente não tem como garantir
1:41:24que não. E também caso, por exemplo, se
1:41:26a gente caia em algum prompt injection,
1:41:28algum jail break, tipo, ah, ele achou um
1:41:31site da internet que faz de tudo para
1:41:33vazar o prompt do agente e sem querer
1:41:34ele acabou entrando naquele site,
1:41:35recebeu aquele input e aí acaba vazando
1:41:37informações, tá? Basicamente, se tem ali
1:41:39alguma chave de acesso que ele já viu,
1:41:41que ele tem acesso, ele pode acabar
1:41:43passando caso peça no prompt, tá? Tá?
1:41:44Então o ideal é que você não coloque
1:41:45para que você diminua o risco de você
1:41:47vazar dados, senhas e tudo mais, ok? E
1:41:49quando a gente fala de cloud MD, a gente
1:41:51tem três níveis de cloud MD, tá? A gente
1:41:53tem um cloud MD global que vai valer
1:41:55para todos os projetos da nossa máquina,
1:41:57OK? Então instruções sobre como eu quero
1:41:58que ele sempre crie os códigos, sobre
1:42:00preferências, etc. A gente vai ter o
1:42:02cloud raiz, ou seja, no repositório
1:42:04atual, que nesse caso é esse cloud MD
1:42:06que a gente tem aqui do nosso curso
1:42:07gratuito, tá bom? que ele vai realmente
1:42:09referenciar ali, trazer contexto sobre o
1:42:11nosso projeto. E também a gente pode ter
1:42:13eh um cloud MD dentro de uma subpasta.
1:42:15Então posso ter, por exemplo, aqui o a
1:42:17minha pasta aqui do curso gratuito, eu
1:42:18posso criar uma pasta aqui dentro que
1:42:20vai ser aulas, tá? E aqui eu posso ter
1:42:22um cloud MD explicando como que as aulas
1:42:23devem ser organizadas ou como que deve
1:42:25ser feito eh essa parte do projeto, tá
1:42:27bom? Então posso basicamente ter aqui
1:42:28uma subpasta onde eu vou colocar mais
1:42:30informações eh pro meu agente sendo
1:42:32referido somente aquela pasta. Então ele
1:42:33se aplica somente aquela pasta ali
1:42:35específica e quando ele fazer for
1:42:37acessar aquela pasta aí sim ele recebe
1:42:38aquele contexto, ok? E qual que é a
1:42:40hierarquia que a gente tem? O global,
1:42:42né? Vai ser o mais fraco. Então, por
1:42:44exemplo, a aqui a gente vai colocar o
1:42:45estilo de desenvolvimento, tá? Sempre me
1:42:47responde em português. Se por acaso aqui
1:42:49na raiz do projeto eu colocar para ele
1:42:50sempre me responder em inglês, vai
1:42:52vencer. O mais específico sempre vai
1:42:53vencer, tá? Então, a raiz do projeto
1:42:55vence o global e a subpasta vence todos
1:42:58esses outros, ok? Então se se aqui, por
1:43:00exemplo, eu coloco o meu estilo de dev e
1:43:02aqui eu falo para ele colocar um outro
1:43:03estilo, então aqui ele vai mudar. Então,
1:43:05por exemplo, se aqui eu coloco para ele
1:43:05me responder em português e aqui eu falo
1:43:07para ele me responder em inglês, ele vai
1:43:08me responder em inglês porque esse daqui
1:43:10vence, ok? Então aqui é ideal pra gente
1:43:12colocar o nosso estilo de dev. Então
1:43:14sempre me respondem português, sempre
1:43:15faço dessa maneira, sempre me retorne as
1:43:17informações de forma muito clara, eh
1:43:19minimize a quantidade de ações que eu
1:43:20tenho que tomar, tome elas por mim,
1:43:22enfim, eu posso dar esses comandos aqui
1:43:24sobre o estilo e como eu quero que ele
1:43:25aja, ok? Quando a gente coloca aqui, por
1:43:27exemplo, a raíz do projeto, a gente tá
1:43:29colocando regras daquele projeto,
1:43:31instruções específicas, etc. Então,
1:43:33nesse caso aqui, eu falo, ó, aqui nós
1:43:35usamos React e TS, que são linguagem de
1:43:37programação, tá? Então, aqui ele sempre
1:43:38vai seguir essas linguagens, sempre vai
1:43:40fazer isso daqui, porque é o que a gente
1:43:42tá mandando no projeto, tá bom? E a
1:43:44subpasta ela vai vencer o projeto.
1:43:47Então, por exemplo, o contexto era super
1:43:48local, tá? Então, ah, eu posso ter aqui
1:43:50uma pasta dentro aqui que vai ter uma
1:43:52API específica ou MCP. E aqui eu coloco
1:43:55informações da API, desse MCP, tá bom?
1:43:57Então, por exemplo, posso colocar uma
1:43:59subpasta ali dentro de API, eu posso
1:44:01colocar um cloud MD dentro dessa
1:44:03subpasta e aqui eu coloco que ele não
1:44:04use nada de react aqui dentro, por
1:44:06exemplo, ah, nunca nunca use tal
1:44:10linguagem de programação aqui dentro ou
1:44:12sempre tenha sempre use, sei lá, eh,
1:44:15instruções claras para essa API, sempre
1:44:17use alguma coisa específica, tá? ver
1:44:19aqui agora na minha cabeça, mas enfim,
1:44:21coisas que forem mais específicas, como
1:44:22por exemplo, é, sempre deixe explicado
1:44:24quais são cada argumentos da API, o que
1:44:27que ele espera, sabe? Qual que é o tipo
1:44:28de dado etc. Sempre deixe muito bem
1:44:30explicado e comentado. É uma regra
1:44:31específica que eu poderia ter para
1:44:33subpasta aqui, OK? E aqui dentro a gente
1:44:35também tem a pasta poncloud, OK? O que
1:44:38que é essa pasta poncloud, tá?
1:44:39Primeiramente, ponto cloud é basicamente
1:44:42o ponto que esconde a pasta. Então,
1:44:44quando a gente tem, por exemplo, pv,
1:44:46ponto alguma coisa, isso daqui vai ser
1:44:47escondido, ele não sobe pro GitHub, ok?
1:44:49Ou seja, se eu tenho aqui a pasta
1:44:50poncloud, essas informações não vão
1:44:52subir lá pro meu GitHub quando eu fizer
1:44:54o versionamento, quando eu subi, etc.
1:44:56Então, você vê alguma pasta com ponto,
1:44:57alguma coisa, algum documento com ponto,
1:44:59alguma coisa, o ponto ele esconde esse
1:45:01arquivo, essa pasta, esse documento, ele
1:45:03não sobe lá pro gitub, ok? Então,
1:45:05diretório oculto na raiz do projeto.
1:45:07Então, por exemplo, quando a gente tem
1:45:09aqui o nosso projeto e eu coloco aqui,
1:45:11por exemplo, a nossa pasta ponoud, essa
1:45:13pasta aqui, ela não vai aparecer lá no
1:45:15meu GitHub quando eu subir, tá bom?
1:45:16Então, ele vai ficar oculta, não vai
1:45:17aparecer lá somente local, OK? Aqui onde
1:45:20a gente configura algumas opções que a
1:45:22gente tem. Então, sistema nervoso
1:45:23central aqui do nosso cloud no projeto,
1:45:25onde a gente vai guardar skills,
1:45:26suagentes, estilos, memórias, tudo isso
1:45:28vai ficar na pasta pcloud, OK? Então
1:45:30aqui a gente tem uma personalização
1:45:31suprema do agente dentro dessa pasta que
1:45:34aqui vai superar sempre todas as outras
1:45:36configurações. Supera, por exemplo, a
1:45:37configuração global, eh, supera a
1:45:39configuração de pasta também, caso
1:45:41tenha, por exemplo, é, alguma outra
1:45:43subpasta aqui, OK? E a grande parte da
1:45:45nossa configuração aqui no nosso agente
1:45:46de subagentes, de skills e tudo mais,
1:45:48vai ficar guardado aqui, OK? E nesse
1:45:50caso a gente também tem a pasta pontloud
1:45:53global, OK? Lembro que eu falei que a
1:45:54gente tem aquela opção é global, local,
1:45:57etc. Então, a gente tem a pasta aqui e
1:45:59cloud global. cloud global, onde tem as
1:46:01configurações, que foi aquilo que a
1:46:03gente já viu, de hooks, variáveis de
1:46:04ambiente e tudo mais. A gente tem aqui o
1:46:06arquivo cloud, que são aquelas
1:46:07instruções pessoais carregadas sempre de
1:46:09forma global, eh, atalhos de teclado, a
1:46:11gente tem definições de subagentes
1:46:12pessoais e comandos slash, tá? Que são é
1:46:15basicamente barra e tudo mais. A gente
1:46:17tem aqui as skills, regras que se
1:46:19aplicam a todos e a gente também tem a
1:46:21pasta projetos, onde vai ter o C id, que
1:46:23é basicamente a transcrição e o log das
1:46:25nossas conversas, e o barra memory que
1:46:27vai ser os aprendizados persistentes
1:46:29autocarregados. Então, por exemplo, se
1:46:31eu vir aqui dentro do meu cloud aqui e
1:46:33eu perguntar para ele, eh, vamos
1:46:35perguntar, por exemplo, o nome da minha
1:46:37cachorra. Qual o nome da minha cachorra?
1:46:39Mandei para ele, tá? Ele não vai saber.
1:46:41Daí eu vou falar, ó, é princesa, salve
1:46:44essa informação. Essa informação, vou
1:46:46mandar para ele, tá bom? Ele vai pegar
1:46:49essa informação aqui agora, vai salvar
1:46:50lá no memory, então ele vai verificar o
1:46:52memory. MD, tá bom? Que é exatamente
1:46:54esse documento aqui que a gente falou,
1:46:56OK? Ele tá vendo aqui o memory MD desse
1:46:59eh repositório, tá? Ele tá colocando
1:47:00aqui localmente, não tá colocando
1:47:02global, mas tudo bem. Ele poderia
1:47:04colocar global, mas eu vou clicar aqui
1:47:06agora para abrir. Aqui ele tá colocando
1:47:08no global, né? como eu falei para você,
1:47:10porque aqui, ó, eu vou pegar esse
1:47:12caminho e basicamente aqui eu tenho C,
1:47:13que é o meu SSD principal,
1:47:16userspretário.Cloud,
1:47:18aquela pasta aqui eu tenho os projetos,
1:47:20tá bom? Que nem eu coloquei aqui, eu
1:47:22acredito que tá ou não? Ah, aqui a gente
1:47:24tem, ó, projetos, OK? E aqui eu tenho eh
1:47:27antigrab curso gratuito, que indica
1:47:29onde, qual que é a pasta onde tá esse
1:47:31projeto, né? Nesse caso aqui eu tô
1:47:32colocando no meu e HD. Aqui eu tenho a
1:47:35pasta de memórias desse projeto e aqui
1:47:37eu tenho memory. MD. que basicamente é
1:47:39seu arquivo com a memória, com as
1:47:41informações que ele tem aqui, que nesse
1:47:42caso informações pessoais do Lucas, que
1:47:44é o meu nome, é a cachorra, tá? Então,
1:47:46nome e cachorra princesa, OK? E agora,
1:47:49se eu criar aqui, por exemplo, uma nova
1:47:50aba aqui, uma nova sessão, eu posso
1:47:52perguntar qual o nome da minha cachorra.
1:47:54Vou perguntar para ele. E agora ele sabe
1:47:56que é princesa, porque ele tem isso lá
1:47:58no memory, ok? Mas eu posso vir aqui,
1:48:00por exemplo, é, e falar para ele, ó,
1:48:02remova essa informação. Vou pedir para
1:48:03ele remover. Ele vai remover lá da nossa
1:48:06pasta, do nosso arquivo memory. Ele
1:48:09removeu, tá? Deixa eu ver aqui agora.
1:48:11Deixa eu só fechar para abrir novamente.
1:48:13Ó, agora só tem aqui mais informações
1:48:14pessoais que meu nome é Lucas. Porém,
1:48:16agora se eu abrir uma um novo chat aqui
1:48:18e perguntar qual o nome da minha
1:48:20cachorra, ele vai saber novamente, ele
1:48:21vai dizer novamente que ele não tem essa
1:48:23informação, tá? Não tem essa informação
1:48:25e beleza. É exatamente isso que a gente
1:48:27quer. OK? Então vou fechar aqui esse
1:48:28monte de sessões que a gente acabou
1:48:30abrindo, mas saiam que é basicamente
1:48:32isso. A gente tem aqui o memory MD que
1:48:33vai salvar informações específicas sobre
1:48:35a gente ou por exemplo alguma coisa do
1:48:37projeto que a gente quer que ele salve.
1:48:39Então posso, por exemplo, colocar para
1:48:40ele salvar que a API do Instagram deve
1:48:43sempre utilizar a versão V25.0. É o que
1:48:46eu posso colocar aqui no memory MD, tá?
1:48:48Posso tanto colocar informações minhas
1:48:49quanto também do projeto, tá? Mas do
1:48:51projeto geralmente o ideal é colocar lá
1:48:53no cloud.md MD, que ele realmente foi
1:48:55feito para isso e também é
1:48:57compartilhado, tá bom? E depois a gente
1:48:59tem a pasta poncloud que vai ser a pasta
1:49:01utilizada no repositório, ou seja, no
1:49:04projeto, OK? Nesse caso, o que que a
1:49:05gente tem aqui? A gente tá na parte de
1:49:07configurações, tá? Então, permissões e
1:49:09hooks, OK? Que são comitados, ou seja,
1:49:11eles vão lá pro nosso GitHub. Quando a
1:49:13gente sobe. A gente passa
1:49:14settings.jjonjzon.
1:49:17Essa pasta aqui são sobreposições
1:49:18pessoais nossa. Então, informações se a
1:49:20gente coloca aqui, por exemplo, eh,
1:49:21talvez algum hook que eu queira
1:49:22pessoalmente para mim, alguma permissão,
1:49:24algo do tipo, tá? Nesse caso aqui eh vai
1:49:26ser ignorado na hora de subir pro
1:49:28GitHub. A gente tem o cloud.md, tá? E
1:49:31perceba que aqui tá em maiúsculo, tá? Eu
1:49:32não comentei, mas é importante que ele
1:49:34esteja em maiúsculo. Se tiver, por
1:49:35exemplo, em minúsculo, ele não vai
1:49:36identificar. Então, tem que ser cloud em
1:49:39maiúsculo. MD, tá? Que são instruções do
1:49:41projeto com commit, ou seja, vai lá pro
1:49:43nosso kitub. Tem também o cloud. comd,
1:49:46que são as nossas notas e rascunhas
1:49:48pessoais. Ou seja, isso daqui também não
1:49:50sobe lá pro eh pro repositório. Então
1:49:52aqui eu posso, por exemplo, colocar
1:49:54informações, aprendizados, coisas que a
1:49:56gente percebeu ao longo do projeto, OK?
1:49:58Ou alguma coisa mais específica sobre
1:49:59mim, sobre como eu quero que ele faça
1:50:00alguma coisa, OK? Que eu coloco aqui no
1:50:02cloud.m para que não suba pro
1:50:05repositório, tá? E depois aqui a gente
1:50:07tem os agentes, tem as skills, tem as
1:50:09regras, OK? E tem os MCPs, que nesse
1:50:12caso todos eles sobem lá pro nosso
1:50:14GitHub, OK? Então aqui nas regras,
1:50:17arquivos de de instrução, tá? Que a
1:50:18gente pode ter modulares e divididos.
1:50:20Então estilo de código, eh, como fazer o
1:50:22front end, os nossos MCPs que a gente
1:50:24vai configurar, as skills, etc. Todas
1:50:26essas informações, elas sobem lá pro
1:50:28nosso GitHub. E cara, pode ficar
1:50:30tranquilo, tá? Não precisa lembrar de
1:50:31tudo isso daqui. Eu mesmo dia a dia
1:50:33acabo não lembrando. O principal que eu
1:50:34lembro é o cloud, os agents e as skills,
1:50:37mas, por exemplo, esses settings, os
1:50:39rules, em alguns casos a gente acaba nem
1:50:41utilizando muito, tá? Então é, eu tô
1:50:43falando porque eu tenho que, eu preciso
1:50:44que você saiba disso, tá? Mas não
1:50:46precisa realmente lembrar disso de
1:50:48cabeça. Você pode, por exemplo, tirar um
1:50:49print aqui agora da tela para que você
1:50:52salve e confira depois, tá bom? Até
1:50:54deixei um tempinho ali. Você pode ter
1:50:55agora um print desse, mas o principal é
1:50:57que você saiba que isso existe, ok? Essa
1:50:59é o principal objetivo. E agora eu quero
1:51:01trazer um aprofundamento para você aqui
1:51:03em skill e subagente, OK? Por qu eu te
1:51:06introduzi o que era uma skill, então
1:51:07falei ali por cima o que que ela era,
1:51:09como ela funcionava. A gente vai rever
1:51:10um pouquinho disso, porém aqui agora eu
1:51:12quero mostrar também um pouco mais sobre
1:51:13como que ela é armazenada, sobre o
1:51:15arquivo dela, sobre como que é a pasta
1:51:16da skill e tudo mais, tá bom? Sobre
1:51:18skill e também sobre suagente. Antes a
1:51:20gente viu o que que era, como funcionava
1:51:22mais ou menos. Agora a gente vai ver
1:51:23realmente a estrutura deles aqui
1:51:25internamente no nosso projeto. Então
1:51:26vamos lá, tá? Isso que basicamente a
1:51:28gente já viu o que que é. É um mapa
1:51:29inteligente que você define uma vez,
1:51:31você instala alguma skill, você cria e
1:51:34agora você depois você consegue
1:51:35mencionar ela no seu chat, falar: "Ó,
1:51:36quero que você crie tal coisa utilizando
1:51:38essa skill". ele vai pegar aquele
1:51:39contexto, aquela instrução e vai criar o
1:51:41que você quer, utilizar os scripts, etc.
1:51:43Tá? Mas aqui a gente tem duas opções. A
1:51:45gente pode colocar que ela vive no
1:51:47projeto, ou seja, somente naquele
1:51:48projeto ali que você tá utilizando ou
1:51:50global, tá? Que é o quê? Basicamente pro
1:51:52dev poder utilizar em tudo que você
1:51:54tiver. Aí nesse caso aqui o dev, mas
1:51:56enfim, você, eu, qualquer pessoa que
1:51:58tenha instalado no global vai poder
1:52:00utilizar, ok? Ou seja, seja num projeto,
1:52:02seja no segundo projeto, seja no
1:52:03terceiro, qualquer projeto, a gente vai
1:52:04poder utilizar aquela skill, OK? A gente
1:52:06vai precisar fazer isso por pront, etc.
1:52:08a gente só vai precisar reaproveitar
1:52:10aquela skill ali, eh, mencionando ela,
1:52:12ok? Ou senão só pedindo pra gente,
1:52:14porque se ela estiver bem configurada, a
1:52:16gente vai saber exatamente quando que
1:52:17ele deve utilizar, ok? E qual que é a
1:52:20anatomia de uma skill, tá? Vamos lá.
1:52:22Primeiro de tudo, o que que a gente vai
1:52:23ter? O skill.md, OK? Onde a gente vai
1:52:26ter o Yamel Front Mater, tá? Que vai,
1:52:28basicamente vai carregar os metadados, o
1:52:30nome e o gatilho dessa skill. Ou seja,
1:52:32basicamente, ele vai ter ali os
1:52:34metadados dela, informações adicionais,
1:52:35o nome dela e o gatilho, que é quando
1:52:38que ela deve ser utilizada. Então, ah,
1:52:39quando o usuário pedir para você fazer
1:52:41um software que envolva front, quando o
1:52:43usuário pedir para você criar um PDF,
1:52:45quando o usuário pedir para você criar
1:52:47uma imagem, enfim, basicamente você pode
1:52:48utilizar essa daqui, OK? Instruções,
1:52:51então o que que o cloud deve fazer, como
1:52:54que ele deve agir, etc. O formato de
1:52:56saída esperado e restrições críticas,
1:52:58tá? Eu não vou aprofundar muito nessa
1:52:59parte que é basicamente a estrutura de
1:53:00uma skill, como que ela é construída e a
1:53:02gente vai ver mais pra frente quando a
1:53:03gente for construir de fato uma skill,
1:53:05tá? Mas basicamente é isso que a gente
1:53:07tem aqui. A gente tem os arquivos de
1:53:08referência, então exemplos perfeitos em
1:53:10templates para ele seguir, tá? Então
1:53:12docs e convenções da ferramenta alvo.
1:53:14Então por exemplo, a gente pode ter aqui
1:53:15é um documento sobre como que ele deve
1:53:17utilizar a API do WhatsApp. E aí tem
1:53:20ali, é exemplos de requisições API que
1:53:22ele pode fazer, tá? Então que ele como
1:53:25que ele deve seguir, etc. Pode ter, por
1:53:27exemplo, geração de PDF, pode ter front
1:53:29de design com exemplos de código, enfim,
1:53:32diversas coisas aqui dentro, OK? A gente
1:53:34também tem os scripts, que basicamente
1:53:35são ações em Python ou JS acoplados no
1:53:38macro. Então, lintar ou testar após
1:53:40concluir a geração. E aqui eu posso,
1:53:42cara, é um script em Python, em JS,
1:53:44então eu posso pedir para ele fazer o
1:53:45que ele quiser. Ele pode também mandar
1:53:46informações pro script. Então, a gente
1:53:48pode ter aí parâmetros do nosso script
1:53:49que são preenchidos pela IA, OK? E a
1:53:52gente vai fazer isso daqui também no
1:53:53nosso projeto aqui de skill que a gente
1:53:55vai criar, ok? Enfim, onde que a skill
1:53:58vive? Ela pode viver tanto na aqui no
1:54:00usuário, a gente vai ter o
1:54:01barra.clouds/comands,
1:54:03que basicamente vai ficar disponível em
1:54:04todos os nossos projetos. Então, ah, eu
1:54:07tenho aqui esse projeto do curso
1:54:08gratuito, eu tenho outro projeto da
1:54:10Comp, eu tenho outro projeto da Matrix,
1:54:13todos os projetos vão ter acesso a essa
1:54:15skill, OK? Eu também tenho a skill no
1:54:17nível de projeto, então vai ter lá
1:54:19projeto.cclouds/comods,
1:54:21OK? que é disponível somente naquele
1:54:23repositório, tá? Então, por exemplo, ah,
1:54:25eh, criarp API, migration, etc. Tá bom?
1:54:28E aqui, caso, por exemplo, tenha duas
1:54:29skills com o mesmo nome, tá? Caso de
1:54:31conflito, a do projeto vai substituir a
1:54:34skill global, OK? E que que é legal
1:54:36também nas skills, tá? a gente pode
1:54:38utilizar skills em sequência, então eu
1:54:40posso ter uma skill principal que ela
1:54:42faz o agente evocar outras skills.
1:54:44Então, por exemplo, eh, eu falo para ele
1:54:47qual que é a ordem que ele deve fazer,
1:54:48revisão de código. Então, por exemplo,
1:54:50eu vou utilizar isso aqui, esse exemplo,
1:54:51tá? Não vou inventar um outro exemplo. É
1:54:53criação de software, tá bom? Então,
1:54:54então esse que ele deve utilizar quando
1:54:56ele for criar um software. E aí, nesse
1:54:58caso, vai ter aqui o passo a passo, ó.
1:55:00Primeiro você precisa implementar,
1:55:01depois precisa testar, depois precisa
1:55:02fazer o review. Eu posso mencionar nessa
1:55:05skill aqui as outras skills. Então, ó,
1:55:07quando após você implementar, você vai
1:55:09utilizar skill/ teste. Depois de você
1:55:12fizer o teste, você vai rodar a skill
1:55:14barra review. E aí a skill vai ter
1:55:16contexto ali para ele, vai ter
1:55:17instruções personalizadas sobre como que
1:55:19ele deve fazer, vai ter informações a
1:55:21mais, vai ter exemplos, vai ter scripts
1:55:23e tudo isso vai ajudar ele a desenvolver
1:55:25melhor. Então, a gente pode também
1:55:27utilizar várias scripts em conjuntos
1:55:29emcadeadas aqui, OK? Cada uma chamando a
1:55:32outra no final, tá? poderia também falar
1:55:34ó, siga a skill um, tá? Precisando nem
1:55:36ter uma skill principal que lidera as
1:55:37outras. Eu poderia simplesmente falar
1:55:39para ele seguir a skill um, no final da
1:55:40skill dois falar para ele usar a skill
1:55:41do é no final da skill 1, falar para ele
1:55:43usar a skill 2 e depois no final da
1:55:45skill 2 falar para ele utilizar a skill
1:55:473, ok? E aqui basicamente eu teria todo
1:55:49um pipeline padronizado e repetível para
1:55:51a então eu teria ali sempre uma
1:55:52sequência ali que ele seguiria para
1:55:54fazer esse caso aqui. Um exemplo que a
1:55:55gente poderia ter aqui é de, por
1:55:57exemplo, a skill barra design, que
1:55:58ensina como que ele deve fazer o design.
1:56:00No final dela eu falar, ó, eh, barra e
1:56:03screenshot, que é uma skill que ensina
1:56:05como que ele tira um screenshot da da
1:56:07tela, né, com aquele design e avalia se
1:56:09tá boa ou não. E aí no final dessa
1:56:11skill, caso ele determine que não está
1:56:12bom o design, ele deve chamar novamente
1:56:14a skill barra imp bar/ design e depois
1:56:16ficar nesse loop até chegar no resultado
1:56:18agradável. OK. A gente poderia ter esse
1:56:19loop de skill também, é, utilizar as
1:56:21skills em sequência, enfim, a gente tem
1:56:23várias opções faz skill, a gente tem
1:56:24muita liberdade. E um ponto legal também
1:56:27que a gente pode ter o seguinte, nesse
1:56:28skill pon aqui, nesse skill aqui, MD,
1:56:30por exemplo, eu poderia ter aqui
1:56:32apontando para esses arquivos de
1:56:34referência, que nem eu já tenho, que nem
1:56:35eu tenho um caso aqui que eu posso
1:56:36mostrar para você depois que é o
1:56:37seguinte, eu tenho uma skill de
1:56:38segurança, é uma skill chamada security.
1:56:41No MDDS skill, eu tenho ali vários casos
1:56:43de segurança que ele pode encontrar. E
1:56:45lá eu falo, se você encontrar um caso de
1:56:47banco de dados, então vamos pôr a eh
1:56:50banco de dados, use o arquivo de
1:56:52referência X, então o arquivo de
1:56:54referência X. E aqui nos arquivos de
1:56:57referência eu teria o arquivo X. E aí
1:56:59ele executaria esse arquivo e receberia
1:57:01ali o contexto dele falando que, ó, em
1:57:03caso de banco de dados, as principais
1:57:05vulnerabilidades são A, B, C, D. E você
1:57:08deve tratar dessa maneira aqui, cuidando
1:57:09com isso, com isso, isso e isso, tá? a
1:57:11gente poderia basicamente seguir essa
1:57:13ordem, seguir essa linha, que já seria
1:57:15muito, muito bom, tá bom? Então,
1:57:16basicamente, eu posso dentro de uma
1:57:17skill referenciar outra skill, eu posso
1:57:19referenciar um arquivo de referência. E
1:57:21qual que é a vantagem disso, tá? É que o
1:57:23seu agente ele só invoque o contexto
1:57:25necessário quando ele realmente for
1:57:27necessário, quando ele precisar. Então,
1:57:28por exemplo, aqui no na parte de
1:57:30segurança, nem sempre eu vou ter um caso
1:57:32que é de ban de dados. Às vezes eu vou
1:57:34ter um caso que é de chamada API, de web
1:57:36segurança, por exemplo. Nesse caso, eu
1:57:38vou pedir pro meu agente invocar a parte
1:57:41de web segurança, a parte de API. E aí
1:57:43ele não vai chamar a parte de banco de
1:57:44dados. Então ele só vai receber ali, só
1:57:47vai pedir o que ele realmente precisa de
1:57:48contexto, tá? Isso aqui é muito legal
1:57:50porque eu evito de fazer uma skill
1:57:52gigante, tá? Que vai só poluir o
1:57:53contexto do meu agente e que às vezes
1:57:55ele nem vai usar tão bem. Então posso
1:57:56ter uma skill que só direciona ele para
1:57:58outros arquivos de referência de acordo
1:58:00com o caso que ele precisa. E aí, esses
1:58:02arquivos de referência aqui dentro da
1:58:03skill, eles ainda continuam sendo
1:58:05arquivos de skill, OK? Ainda são
1:58:07habilidades ali que ele vai utilizar,
1:58:08porém específicos para cada coisa, tá?
1:58:10Bem específicos para cada parte que ele
1:58:12precisar. Então, por exemplo, aqui no
1:58:13meu no meu GitHub, eu tenho essa skill
1:58:16aqui, ó, que é security skill. E nela
1:58:18basicamente é uma skill feita de
1:58:20segurança. E aqui eu tenho o quê? A
1:58:21minha pasta security, tá? E aqui eu
1:58:23tenho o meu skill. MD. Nesse skill.md eu
1:58:27tenho aqui o nome, tá? E aqui a gente tá
1:58:29com a formatação amel. Deixa eu ver se
1:58:31eu consigo só, ó. Beleza. Essa aqui que
1:58:33eu queria, eu consigo transformar aqui
1:58:35em RAW pra gente visualizar sem aquela
1:58:37formatação. Então aqui basicamente eu
1:58:38tenho o nome, segurança e a descrição.
1:58:41Então quando que ele deve utilizar, para
1:58:42que que ela serve, etc. E qual conteúdo
1:58:44tem aqui dentro, tá? Então deixa eu
1:58:45voltar aqui. Então tenho aqui o nome, a
1:58:47descrição, a aplicação de segurança, OK?
1:58:50E também tenho aqui um direcionamento.
1:58:52Então, ó, eh, quando for isso, isso e
1:58:54isso, chame Web Secret MD. Quando for de
1:58:57autenticação, não sei o quê, chama aqui
1:58:58a parte de alf secrets. Ah, quando for
1:59:01de database e banco de dados, você
1:59:03seleciona esse arquivo aqui, tá bom?
1:59:04Então, basicamente eu falo aqui para
1:59:06qual caso ele deve olhar. E aqui dentro,
1:59:08por exemplo, eu tenho aqui a parte de
1:59:09web security. E aqui eu tenho vários
1:59:11códigos aqui, vários exemplos de como
1:59:13que ele deve tratar e o que que ele deve
1:59:15fazer para cada caso, tá? E ele só
1:59:17recebe esses códigos, esses esses
1:59:18exemplos quando ele pede. Ou seja, eu
1:59:20tenho aqui vários arquivos onde ele só
1:59:22vai chamar o realmente que ele precisa.
1:59:24Ao invés de ter aqui uma skill enorme
1:59:26com várias informações, eu tenho uma
1:59:27skill aqui básica, somente com essencial
1:59:30que chama outras skills de acordo com a
1:59:32necessidade, tá? E aqui um ponto muito
1:59:34importante, nessa pasta aqui de security
1:59:36tem que ter o arquivo skill tudo
1:59:38maiúsculo, tá? Tem que ser tudo
1:59:40maiúsculo, ponmd, ok? Que aí nesse
1:59:42arquivo aqui eu realmente eu vou
1:59:43conseguir mandar pro meu agente, ele vai
1:59:46baixar lá na hora de iniciar a sessão,
1:59:47vai receber tudo certinho, tá? Então a
1:59:49gente utiliza aqui com o skill.md, ok? E
1:59:52os outros arquivos eu posso colocar o
1:59:53nome que eu quiser, mas o skill.md, que
1:59:56vai referenciar as outras informações,
1:59:57precisa ser skill maiúsculo. MD e os
2:00:00outros arquivos eu posso colocar o nome
2:00:01que eu quiser, até para ficar melhor pro
2:00:03meu agente ler depois, ok? Bom, vamos
2:00:05voltar aqui pro nosso pra nossa lousa,
2:00:07pra gente prosseguir. A gente já tá
2:00:08quase terminando essa parte, a gente já
2:00:09entra na parte prática. Só falar um
2:00:11pouquinho agora sobre um subagente, tá?
2:00:13que ele é basicamente um especialista
2:00:14isolado. Então ele tem uma instância
2:00:16separada do cloud com seu próprio
2:00:17contexto, como eu já falei, onde ele
2:00:19basicamente recebei uma tarefa, executa,
2:00:20ele vira o po ao terminar, tá bom? E
2:00:22depois devolve o resultado, tá? Ele não
2:00:24tem memória, não tem nada disso, ele só
2:00:27recebe a tarefa, executa e já era, OK?
2:00:30Ele não polui seu longo e limpo chat de
2:00:31janela, tá bom? Então, por exemplo, isso
2:00:33aqui é muito legal quando eu quero
2:00:34alguma ação específica que eu não quero
2:00:35ficar poluindo a janela principal do meu
2:00:37agente, da janela de contexto, ok? E
2:00:40como é que funciona também o nosso
2:00:41subagente, cara? É basicamente a mesma
2:00:44coisa ali das skills, tá? É bem
2:00:46semelhante. Onde que a gente vai ter um
2:00:47front e a mel, que é basicamente o quê?
2:00:49Aquela estrutura de dados ali que a
2:00:50gente permite ter separado nome,
2:00:52descrição, etc. A gente vai ter o nome
2:00:55do agente, vai identificar o quem quem
2:00:57ele é, tá? Vai ter a descrição, então o
2:00:59gatilho que o Cloud lê para invocar.
2:01:01Então a descrição ela sempre é levada
2:01:02pro Cloud e aí ela que permite o Cloud
2:01:05saber quando que ele deve chamar esse
2:01:06agente aqui, OK? E a gente vai ter aqui
2:01:09a tools, que é basicamente a lista de
2:01:10armas que ele tem. Então, por exemplo, o
2:01:11que que ele consegue fazer? aqui que ele
2:01:12consegue agir, scripts, etc. OK? Ele tem
2:01:16também o modelo que eu posso selecionar.
2:01:17Então, posso falar que esse suagente
2:01:19aqui vai rodar com Haiku. Ah, esse aqui
2:01:20não vai rodar com sonet, OK? Eu posso
2:01:22definir. E também hooks opcionais pelo
2:01:24subagente. Então, caso meu subagente
2:01:26tente fazer alguma coisa ou ele faça
2:01:28alguma coisa, eu configuro um hook
2:01:29específico para ele. E depois eu tenho
2:01:31body markd. Opa, eu puxei aqui, era para
2:01:34só marcar, onde eu vou ter a persona, as
2:01:36responsabilidades e proibições e o
2:01:38formato de resposta, OK? Que é
2:01:39basicamente o quê? Aí informando aqui o
2:01:41system prompt dele, as instruções que o
2:01:43meu suagente vai receber para fazer
2:01:45alguma tarefa. Então eu posso realmente
2:01:47definir aqui um sistema prompt instrução
2:01:49para ele seguir. Posso definir skills,
2:01:51posso definir scripts, enfim, que o meu
2:01:53a gente vai ter acesso, OK? E por
2:01:55último, quando a gente fala de
2:01:56sobreagente, até de skill, na verdade,
2:01:57eu não falei isso sobre a skill, eu
2:01:59acho, mas enfim, segue o mesmo padrão. A
2:02:01gente pode tanto usar automaticamente,
2:02:03então é baseado puramente na descrição,
2:02:05o nosso agente vai identificar que ele
2:02:07precisa chamar aquele agente. Então
2:02:09fala: "Ah, eu quero que você faça um
2:02:11design e eu tenho um subagente de
2:02:12design." Então ele sabe pela descrição
2:02:14do que ele faz que ele precisa chamar
2:02:15aquele subagente. Então ele decide
2:02:17automaticamente acionar e repassar pro
2:02:20subagente, né? Ele já delega essa
2:02:21tarefa. E também tem o manual que eu
2:02:23posso exigir no prompt que ele chame o
2:02:25tal sobreagente para fazer alguma coisa
2:02:27específica, tá? E aqui é bem legal
2:02:28porque é muito mais previsível e é mais
2:02:30controlado por você. Então quando você
2:02:32quer casos específicos, realmente quer
2:02:33que seja utilizado o suver agente ou por
2:02:35exemplo a skill, é bem legal, é ideal
2:02:38que você fale para ele usar, tá? Que aí
2:02:40você tem garantia 100% que ele vai
2:02:41utilizar sem que você é dependa dele
2:02:44adivinhar, dele acertar e tudo mais.
2:02:45Turma, vamos lá. Então agora eu quero
2:02:46mostrar algo bem legal aqui no cloud
2:02:48para vocês, que é o seguinte, você pode
2:02:50utilizar o próprio cloud para tudo.
2:02:51Então você pode utilizar ele para criar
2:02:52suas skills, para criar os seus hooks,
2:02:55inclusive para criar os seus subagentes.
2:02:56Nesse caso aqui eu vou configurar um
2:02:58suagente, OK? Eu vou utilizar essa
2:03:00plataforma aqui, a Whisper Flow, que
2:03:02basicamente é uma plataforma que eu
2:03:03posso baixar no meu computador e eu
2:03:05posso simplesmente falar e ela vai
2:03:06transcrever tudo que eu for falando, tá
2:03:08bom? Então vou utilizar bastante ela
2:03:09aqui ao longo do curso para que eu não
2:03:11tenha que ficar escrevendo muito tudo
2:03:12mais, ok? Então aqui eu vou simplesmente
2:03:15apertar cont Windows que eu configurei e
2:03:17eu vou começar a poder a falar e vou
2:03:19falar pro meu agente o que eu quero que
2:03:20ele faça. Nesse caso, eu quero que você
2:03:22crie um subagente onde ele basicamente
2:03:24consegue ver exatamente qual o dia e
2:03:27hora atual que nós estamos e também o
2:03:30ano. Eu quero que ele retorne isso para
2:03:31você. Quero que você crie um suagente
2:03:33aqui no nosso projeto. Vou mandar esse
2:03:35comando para ele. É um comando bem
2:03:37chulo, bem bem ruim, mas enfim. Mandei
2:03:40aqui para ele, tá bom? Ele aqui vai
2:03:41criar nosso subagente. A gente vai poder
2:03:43ver daqui a pouco ele criando as pastas
2:03:45aqui do lado pra gente com o nosso
2:03:47subagente e tudo mais. Inclusive a pasta
2:03:49cloud. Ó, ele falou que vai lançar o
2:03:51subagente. OK. Deixa eu ver. Eu acho que
2:03:54ele não criou de fato o subagente, tá?
2:03:56Talvez por conta da forma como eu falei,
2:03:58ele não criou, mas enfim, não tem
2:03:59problema. Fal assim, ó. Mas aqui que
2:04:02aqui é um detalhe importante, tá? Você
2:04:03também pode utilizar esses recursos aqui
2:04:05dele que ele lança um subagente assim
2:04:07pontual, usa ele para fazer alguma coisa
2:04:09e já era. Por exemplo, poderia criar um
2:04:10subagente que vai entrar no arquivo
2:04:12específico e analisar o código. Poderia
2:04:14ser feito um agente pontual que não vai
2:04:15estar sempre aqui rodando, tá bom? Mas
2:04:17nesse caso aqui, vou falar para ele, não
2:04:18é, não crie um suagente de fato que eu
2:04:21possa ter dentro do da do meu
2:04:23repositório aqui do meu projeto e que eu
2:04:25possa reutilizar ele. Eu quero que você
2:04:26crie aqui o meu agente, meu subagente
2:04:29dentro do repositório. Deixa eu mandar
2:04:31aqui para ele. E agora vamos ver se ele
2:04:33cria sem ficar gastando mais tokens meu
2:04:34à toa. Então aqui agora ele entendeu.
2:04:37Beleza. Clicou na pasta
2:04:38poncloud/agentes, tá? Ele rodou aqui o
2:04:41comando para criar essa pasta. Criou a
2:04:44pasta também ali do coisa. Nesse caso
2:04:46aqui, como acho que é algo mais
2:04:48específico, ele me pediu permissão,
2:04:50mesmo estando no bypass. Eu já ia
2:04:51comentar que ele tava executando tudo
2:04:53sem pedir permissão, mas algumas coisas
2:04:55específicas ele pode pedir, tá?
2:04:56Principalmente quando envolve eh
2:04:58modificar esses, por exemplo, agentes e
2:05:01coisas mais específicas de configuração,
2:05:04OK? Do em relação ao cloud em si. Nesse
2:05:07caso aqui, ó, ele falou: "Use o Bash to
2:05:08para executar o comando que retorna a da
2:05:10teória atual completa do sistema,
2:05:12retorna as informações no seguinte
2:05:13formato, OK? E agora eu vou falar o
2:05:15seguinte, eh, ao final, vou falar ao
2:05:18final, você deve retornar a seguinte
2:05:21mensagem pro agente, eh, siga o Lucas no
2:05:25YouTube. Vou colocar isso daqui, tá?
2:05:26Você já vai entender o porquê. Agora eu
2:05:28vou dar aqui um contrtrl S e vou criar
2:05:30uma nova sessão aqui do meu cloud. Vou
2:05:31perguntar eh, qual é o dia e data e hora
2:05:34de hoje. Eu tô escrevendo, não sei nem
2:05:36por, né? Qual que é a data e hora atual
2:05:38de hoje? Vou mandar para ele aqui, tá?
2:05:41Ele vai executar com o subagente ou não?
2:05:44Ó, por algum motivo ele não utilizou
2:05:45aqui, tá bom? Eh, enfim, ele entrou aqui
2:05:48que a data é de 21 de março, não
2:05:49perguntou, enfim, vou falar, useagente
2:05:52para fazer isso. Ele deveria ter
2:05:54utilizado, por algum motivo não
2:05:55utilizou. Pode acontecer muito disso,
2:05:57tá, pessoal? Às vezes ele não utilizar
2:05:58alguma coisa ou algum tipo,
2:05:59principalmente quando é meio específico
2:06:01ou meio bobinho assim, quando é algo
2:06:02mais putz, isso aqui precisa ser
2:06:04utilizado, algo mais sério, ele usa, tá?
2:06:06Nesse caso aqui ele falou, ó, eh, vou
2:06:08usar o super agente de data e hora. Ele
2:06:10mandou esse input, OK? O agente executou
2:06:13ali o comando BH que retornou aqui
2:06:16Saturday 21/03/2026
2:06:189:07 da noite. Exatamente isso. E tá
2:06:21aqui o que ele retornou, OK? Ó, da te
2:06:23hora atual. E aí ele conseguiu retornar
2:06:25todos os dados. E aqui eu posso
2:06:26perguntar também, o agente te enviou
2:06:28alguma informação adicional além dessa?
2:06:30Vou mandar para ele aqui. E aí, ó, que
2:06:32legal também, ele vai falar que ele me
2:06:33mandou eu vocês seguirem o Lucas no
2:06:35YouTube. Falou: "Ó, sim, no final da
2:06:37resposta a gente veio essa mensagem:
2:06:38"Sico o Lucas no YouTube. Parece que
2:06:40você configurou isso no sub gente". E de
2:06:42fato eu configurei aqui. Então, consigo
2:06:44até inclusive eh modificar a saída. Eu
2:06:46poderia falar para ele retornar em Jon,
2:06:48poderia falar para ele retornar de outra
2:06:49maneira, criar um arquivo, etc., com o
2:06:51suagente. Inclusive eu posso falar para
2:06:53ele, mandar vocês me seguirem aqui no
2:06:55YouTube. Se você não me segue, clica
2:06:56aqui embaixo em seguir e também deixa o
2:06:58seu like para me ajudar, tá bom? Então é
2:06:59isso, eu posso pedir pro meu cloud criar
2:07:01subentes aqui dentro, tá? Eu poderia ir
2:07:04muito além criar algo muito mais
2:07:05específico, mas esse exemplo aqui é
2:07:06excelente porque eu consigo mostrar que
2:07:08o agente consegue executar comandos, é,
2:07:10tem nome, tem descrição e também tem
2:07:12aqui a parte onde ele pode retornar mais
2:07:14informações, como nesse caso, se eu
2:07:15tivesse falado para ele retornar, ah,
2:07:17siga o Lucas no YouTube, ele retornaria
2:07:19para mim, como eu falei para ele
2:07:20retornar só pro agente, né? Ele não
2:07:21retornou direto para mim e esse agente
2:07:23aqui não me falou isso, mas eu sei que
2:07:25essa mensagem veio para ele aqui, tá
2:07:27bom? Então é isso, agora a gente vai
2:07:30realmente pra nossa parte prática do
2:07:31projeto. Eu vou te mostrar como que eu
2:07:33faço para construir projetos. Enfim,
2:07:34bora lá que vai ser bem legal. Bom,
2:07:36turma, vamos lá. É, vou fazer isso aqui
2:07:38bem de freestyle, digamos assim, tá? Ou
2:07:40seja, vou fazer literalmente com vocês
2:07:42aqui é cada etapa e tudo mais. Vou
2:07:44explicar um pouquinho do meu, é, do
2:07:46método que eu tenho utilizado hoje em
2:07:47dia para desenvolver software aqui com o
2:07:48cloud code, OK? E enfim, vai ser meio
2:07:51livre, vai acontecer alguns bugs no
2:07:52caminho, vai acontecer alguns erros e a
2:07:53gente vai tratando, vai fazendo tudo
2:07:55meio junto, tá bom? Então vamos lá.
2:07:57Primeira coisa que eu quero colocar aqui
2:07:59é criar uma nova pasta com essa nossa
2:08:00pasta do projeto. Nesse caso vou chamar
2:08:02de members club, OK? Vai ser a nossa
2:08:06área de membros chamada members club. Eu
2:08:08vou selecionar aqui e vou salvar aqui os
2:08:10arquivos que estão nesse projeto.
2:08:11Beleza? Ele já vai quer aqui a minha
2:08:13pasta, meu projeto. Aqui a gente já vai
2:08:15poder começar com o nosso cloud e tudo
2:08:16mais. Porém eu vou voltar aqui pro
2:08:18Scalidra porque qual que é o fluxo que
2:08:20eu gosto de seguir, tá? Eu gosto de
2:08:22primeiro ir pro Cloud Chat, tá? Porque
2:08:25ali no cloud chat eu posso conversar com
2:08:26ele. Gosto muito de utilizar esse
2:08:28recurso aqui do SPF, ir conversando e
2:08:30tudo mais para ir conversando com o
2:08:32chat. Então vou conversando, vou
2:08:33conversando com ele, falando e
2:08:35basicamente vou desenvolvendo a ideia,
2:08:37tá? Então eu converso com ele, a gente
2:08:39desenvolve ali o projeto, desenvolve as
2:08:40ideias, eu faço o cloud. MD com ele, OK?
2:08:43Depois eu levo pro cloud code. Depois do
2:08:45cloud code eu vejo o que ele gerou, o
2:08:47resultado que ele gerou, eu analiso, tá?
2:08:50Eu sei que esse círculo aqui tá meio
2:08:51zoado, mas enfim, eu analiso, analiso e
2:08:55depois eu levo novamente pro cloud chat
2:08:57quando eu quero fazer algum ajuste e eu
2:08:59informo qual que é o ajuste e peço para
2:09:00ele fazer um prompt para isso. Eu gosto
2:09:02de muito de falar porque eu consigo eh
2:09:04resolver mais rápido falando, eu tenho
2:09:05que ficar escrevendo e tudo mais. E eu
2:09:07gosto de fazer esse fluxo sempre levando
2:09:08pro cloud chat porque eu posso
2:09:10literalmente conversar com ele, pensar
2:09:12na solução, pensar na na ideia e ele me
2:09:14retorna depois um prompt bem organizado
2:09:16próprio pro cloud code sem que eu tenha
2:09:18que ficar escrevendo, tá? Então isso
2:09:19aqui eu vou realmente conversando com
2:09:20ele, vou falando com ele e inclusive
2:09:22aqui nesse vídeo pro YouTube, nesse
2:09:24curso, na verdade eu vou falando também,
2:09:26só pra gente ver como é que vai ser, tá?
2:09:27Eu não vou escrever nem nada do tipo,
2:09:29porque é mais rápido a gente falar, tá?
2:09:31Se eu não me engano, o próprio Sportflow
2:09:32tem uma introdução que ele mostra que a
2:09:34gente eh fala umas três ou quatro vezes
2:09:36mais rápidas do que escrever. Ah, talvez
2:09:39seja até mais, tá? Mas enfim, é mais ou
2:09:41menos isso. Então, basicamente é esse
2:09:42fluxo que a gente vai adotar aqui, OK? E
2:09:45vamos agora lá pro nosso cloud. Bom,
2:09:47aqui no nosso cloud, bora começar a
2:09:48trabalhar, tá? Vou começar, vou
2:09:50habilitar aqui o microfone, eu
2:09:51explicando mais ou menos o que eu quero
2:09:53para esse o nosso projeto e a gente vai
2:09:54desenvolvendo, talvez a gente vai eh
2:09:56mudando algumas coisas no caminho e tudo
2:09:57mais. Enfim, vamos ver no que vai dar,
2:09:59tá bom? Eu quero que você construa. Já
2:10:02comecei errado, eu vou vou deixar isso
2:10:04aqui no vídeo mesmo, não vou cortar não.
2:10:06E enfim, eu já falei que eu queria quero
2:10:07que ele construa, né? Mas eu não quero
2:10:08que ele construa. É bom, eu quero ir
2:10:10conversando com você pra gente
2:10:12desenvolver um projeto que basicamente
2:10:14vai ser uma área de membros. E aqui eu
2:10:16quero utilizar você para realmente me
2:10:17ajudar a desolver o meu cloud. MD, a
2:10:20desolver a ideia, a desolver qualqu,
2:10:23enfim, os detalhes para que a gente
2:10:25tenha uma boa estrutura do projeto e que
2:10:26a gente consiga extrair o melhor do
2:10:28cloud code. É muito importante que você
2:10:30não tente construir nada, você apenas
2:10:31vai ser o meu auxiliar nesse processo
2:10:33pra gente construir os promptes, etc.
2:10:36Bom, qual que é a ideia? A ideia é a
2:10:38gente construir uma área de membros
2:10:39chamada members club. A ideia é que ela
2:10:41seja uma área de membros premium, high
2:10:43ticket para clientes de alto nível.
2:10:46E eu quero que nessa área de membros a
2:10:48gente tenha basicamente eh tanto ali a
2:10:50parte dos usuários que eles vão poder
2:10:51acessar, ver os módulos, ver os cursos e
2:10:54etc. Bem naquele estilo Netflix, só que
2:10:57de uma forma um pouco mais premium, né?
2:10:58Uma forma um pouco mais sofisticada.
2:11:00Talvez o design da Apple seja uma boa
2:11:02referência de como que a gente quer esse
2:11:03design, algo bem clean, bem minimalista
2:11:06e sofisticado. E além disso, eu também
2:11:08quero que a gente tenha a parte ali
2:11:11administrador, onde somente os usuários
2:11:13administradores vão poder acessar e ali
2:11:15dentro eu quero que eles possam, por
2:11:16exemplo, e adicionar novas aulas, novos
2:11:18módulos, novos cursos, eh, modificar a
2:11:21plataforma, então o banner que vai
2:11:22aparecer na parte na parte central da
2:11:24plataforma, etc. Eu também quero que a
2:11:26gente tenha ali dentro da parte das
2:11:28aulas, eu quero que tenha um campo de
2:11:29notas que o aluno pode fazer. Então eu
2:11:31quero que o aluno possa fazer suas
2:11:32próprias notas e elas sejam salvas e
2:11:34anexadas às essas aulas, OK? As aulas
2:11:37serão em vídeo do YouTube, então eu
2:11:39quero que tenha ali também espaço para
2:11:40colocar o edar aula. E além disso, eu
2:11:44quero que também tenha ali uma parte de
2:11:45quiz. Então posso também tanto criar
2:11:47aula quanto criar um quiz. Eu posso
2:11:48colocar na ordem que eu quiser. Então
2:11:50posso ter, por exemplo, aula, aula,
2:11:52aula. Eu coloco um um quiz, depois eu
2:11:54coloco aula, aula, aula, enfim, por aí
2:11:56vai. E eu vou colocar aqui, tá? Vou
2:11:58colocar essa primeira parte que eu fui
2:12:00falando aqui. Enfim, eu tô falando
2:12:01realmente o que eu tô pensando aqui, tá
2:12:03bom? Deixa eu só modificar aqui que ele
2:12:04colocou cloud MD. Às vezes acontece
2:12:06isso. Quando é, por exemplo, cloud, ele
2:12:08sempre confunde com cloud de nuvem, tá?
2:12:10Mas é basicamente isso que eu quero pr
2:12:12pra área de membros. Quero que seja algo
2:12:14mais sofisticado, mais premium, etc. E
2:12:17enfim. Agora não penso nenhuma outra
2:12:19ideia que a gente poderia ter de área de
2:12:20membro. Gente, gente poderia, por
2:12:21exemplo, ter ferramentas, ter soluções
2:12:23específicas ali dentro para anexar, mas
2:12:25por enquanto é isso que eu quero que
2:12:27tenha aqui. Então eu vou mandar isso
2:12:28para ele. É, vamos ver o que ele vai
2:12:29gerar aqui pra gente. A gente vai
2:12:31trabalhando e vai refinando. Inclusive
2:12:32eu não coloquei aqui nesse nesse fluxo,
2:12:34mas boa parte do trabalho também é
2:12:36refinar. Então é o cloud code gera, a
2:12:39gente analisa e a gente vai refinando,
2:12:41tá? Então enfim, não vou colocar aqui,
2:12:43mas enfim, tem esse processo, tá? A
2:12:44gente vai analisando, refinando tudo que
2:12:46a gente for gerando, tanto aqui no
2:12:47cloud, tá? quanto também no eh no como é
2:12:51que posso dizer ali no cloud code.
2:12:53Inclusive aqui ele leu essa minha skill
2:12:55que eu tenho para criar res. Eu não sei
2:12:56nem por eu vou até olhar aqui como é que
2:12:59tá, mas enfim, não era para ele utilizar
2:13:01isso daqui. Vamos lá. É de que ainda
2:13:03preciso entender. Deploy. Eh, vamos
2:13:05utilizar aqui entender deploy pagamento.
2:13:08Beleza? Nesse caso é seu typescript como
2:13:11Instagram monitor. Ele me perguntou qual
2:13:13que é a stack, tá? Eu vou deixar aqui
2:13:14para ele sugerir. Vou clicar aqui no
2:13:16três. Eh, para banco de dados, qual a
2:13:18preferência? Vai ser super base com a
2:13:19parte de alfa também do Supase. Eh, os
2:13:22pagem de vídeo apenas do YouTube, como
2:13:24eu mencionei, tá? Vou mandar isso aqui
2:13:25para ele. É a parte do, deixa eu ver se
2:13:28vai fazer mais perguntas, tá? Sugeri a
2:13:30stack. Parte de play vai ser com a
2:13:31Versel, vai ser mais fácil pra gente. É
2:13:34pagamento e acesso. Eu não vou fazer por
2:13:35enquanto. A gente poderia utilizar, por
2:13:36exemplo, as hotel que uma dessas
2:13:39integrada ali com as ed functions do
2:13:41base. Depois eu explico para vocês o que
2:13:42é essas adunctions. Daí o conteúdo aqui
2:13:44vai ser basicamente meu, tá? Então deixa
2:13:46eu ver aqui. É são só meus. Beleza.
2:13:50Vamos ver. Está aqui sugerida porque
2:13:52chat. Ah, beleza, beleza. Eh, como eles
2:13:55vão ganhar acesso? Por enquanto vamos
2:13:57colocar admin cri manualmente. OK. Eh,
2:14:00sim, aula concluída porcentagem do
2:14:02módulo. Vamos deixar desse modo. Deixa
2:14:04eu ver só qualquer outra opção. Sim, só
2:14:06básico, não. Aula concluída e tudo mais.
2:14:09Vários cursos ou produto único. Eh,
2:14:11vários cursos separados dentro da
2:14:12plataforma. Vou marcar isso daqui. OK.
2:14:14Aqui ele deu algumas sugestões, né?
2:14:16Validou os basis e tudo mais, mas enfim,
2:14:18eu não quero eh mais informação, tá? Só
2:14:22quero fazer isso daqui. E aqui ele já
2:14:24criou a arquitetura. Então, beleza. Tá.
2:14:28estrutura de dados, profiles, cursos,
2:14:30módulos, as lições, os quiz, as opções
2:14:33dos quiz, as notas, o progresso e os
2:14:35banners, OK? A estura de página também
2:14:38ele já criou, beleza? RLS, tá legal? E
2:14:42agora vai criar o cloud MD, tá? Então,
2:14:44por enquanto aqui tá tudo de boa, tá
2:14:46tudo dentro do esperado, tá? Não tem
2:14:48nada aqui e de muito diferente. Aqui
2:14:51realmente é um trabalho da gente ir
2:14:52validando, tá? Nesse caso aqui, eu sei
2:14:53que eh tudo está certo, porque eu já
2:14:55tenho uma certa noção, mas aqui
2:14:57basicamente o que que ele fez aqui? Ele
2:14:58gerou a estrutura do banco de dados.
2:15:00Então, cada tabela e cada campo que vai
2:15:02ter nessa tabela, OK? Vai ter aqui a
2:15:05estrutura das páginas. Então, por
2:15:06exemplo, login, dashboard, cursos,
2:15:09listons, que são as lições. Aí que vai
2:15:11ter o dashboard de admin, é os a partir
2:15:14de gerenciar cursos, de editar um curso
2:15:15específico, enfim, adicionar membros,
2:15:18adicionar banners, que é basicamente a
2:15:19estrutura da página, né? a gente precisa
2:15:21entender exatamente, exatamente cada
2:15:23coisa aqui. E a parte de RLS, tá? Que
2:15:25aqui também tá certo, que é o quê? RLS é
2:15:27basicamente row level security, então
2:15:29essa segurança a nível de linha no
2:15:31superbase. Então a gente garante que um
2:15:33usuário só pode ver as linhas que ele
2:15:35tem acesso. Então por exemplo, o
2:15:36progresso, o usuário ele só consegue ver
2:15:38e editar o próprio, ele não consegue ver
2:15:40e editar o de outras pessoas. As notas,
2:15:42a mesma coisa. Eh, os cursos quando
2:15:44estão publicados, qualquer membro
2:15:45autenticado consegue ver. Quando não
2:15:47estão, apenas um membro admin. E é
2:15:49basicamente isso que a gente vai ter
2:15:50ali, OK? Então aqui ele tem todas as
2:15:52informações, notas, progresso. Eh,
2:15:54beleza. Vamos só dar uma olhada por cima
2:15:57que fazer não expur no cliente puxar RLS
2:16:00n no typ script é banco de dados. É
2:16:02basicamente isso. Então aqui design de
2:16:05cores ele já colocou tá bem legal. É
2:16:08regra de desenvolvimento. Beleza. Tá, eu
2:16:10só vou adicionar aqui alguma coisa. Na
2:16:12verdade eu vou colocar eu mesmo
2:16:13manualmente aqui no no cloud.m. Eu já
2:16:16vou vir aqui pro cloud code, tá? Eu vou
2:16:18criar aqui agora o nosso documento
2:16:20cloud.md. É que eu tô realmente fazendo
2:16:21bem de freestyle, tá pessoal? Eh, com
2:16:23vocês. Então não tô não tem nada assim,
2:16:25nossa, vai ser dessa maneira, dessa
2:16:26maneira, dessa maneira, tá? Eh, aqui ele
2:16:29colocou as variáveis de ambiente, eu não
2:16:31vou colocar aqui, tá? Não é o ideal que
2:16:33a gente coloque, eu vou copiar, copiar
2:16:36isso daqui e eu vou criar aqui um novo
2:16:38arquivo chamado ponto ENV, tá? Ponto env
2:16:42é o quê? é onde ficam nossas variáveis
2:16:43de ambiente. Aqui o cloud code não
2:16:45acessa e também o quando a gente fizer
2:16:48lá pro subir lá pro GitHub não vai
2:16:49subir, tá? Então eu não quero colocar
2:16:52aqui no prompt dele, não é o a abordagem
2:16:54mais ideal pra gente, tá? Então depois a
2:16:56gente configura isso daqui. Vamos vir
2:16:58aqui no cloud MD área de membros,
2:17:00beleza? Regen movimentos system banco de
2:17:02dados prar su base, beleza? E aqui eu
2:17:06vou colocar, você deve utilizar o MCP do
2:17:08Supas que já está configurado, você já
2:17:10possui acesso para criar as tabelas e
2:17:12tudo mais. Realmente falei aqui com ele,
2:17:14né? Não precisa ser nada muito
2:17:15específico, OK? E é basicamente isso,
2:17:18tá? Nesse caso aqui, ele tá um pouco
2:17:20maior. Eu falei que, ah, o ideal, por
2:17:22exemplo, é colocar ali 100 linhas e tudo
2:17:25mais, até 100 linhas. Aqui tem o 123, tá
2:17:27legal? E como é o projeto um pouquinho
2:17:28mais complexo, né? Então, eu quero parte
2:17:30de admin, quero parte de aluno, quero
2:17:32que tenha notas, etc. Então, tá tudo bem
2:17:34também. eh, ser um pouquinho mais
2:17:36complexo aqui, tá? Eh, eu apertei contrl
2:17:38S agora tanto aqui no Cloud MD quanto no
2:17:40ENV para salvar o conttrl S. Ele
2:17:42basicamente salva tudo que a gente
2:17:43alterou, tudo que a gente colocou, OK?
2:17:45Isso aqui é muito importante. E agora
2:17:47deixa eu só conferir aqui. Eu acredito
2:17:48que é isso. Que que eu vou fazer aqui
2:17:50agora, tá? É, eu vou voltar aqui, vou
2:17:52fechar essa parte aqui, vou vir aqui no
2:17:54Super Base. Você pode precisar Super
2:17:55Base no Google. O Supas ele é
2:17:57basicamente um B. Que que é um B? é um
2:17:59back end as a service. Nesse caso, sua
2:18:01vez ele oferece tanto a parte de banco
2:18:03de dados pra gente simplesmente
2:18:04armazenar dados, como ele também oferece
2:18:07a parte de autenticação, ou seja, para
2:18:09nossos usuários fazerem login. Então ele
2:18:11cuida de toda essa parte de segurança,
2:18:12de login, etc. A gente não tem que se
2:18:14preocupar com nada disso. E ele também
2:18:16cuida aqui de toda a parte de back end.
2:18:19Então é de functions, que basicamente
2:18:21são e ações que podem ser invocadas por
2:18:23outros sistemas. Então, por exemplo, eu
2:18:25posso criar aqui uma edad function que o
2:18:26próprio eh a própria Hotmart ela pode
2:18:29chamar, enviar o payload dela e a minha
2:18:31function recebe ali aquele payload e faz
2:18:33o tratamento dele e já insere no meu
2:18:35banco de dados. Então, o que eu poderia
2:18:36fazer aqui com a edit function do Super
2:18:38Base. Isso que é bem legal do Super
2:18:40Base, porque ele não é só um banco de
2:18:41dados, ele é literalmente um backend
2:18:43completo que você pode ter pra sua
2:18:45aplicação, OK? Então, se você não
2:18:47conhece, é assim, basicamente isso.
2:18:48Supase. É, que eu não vou focar muito em
2:18:50todos os base, até porque muita coisa
2:18:52que eu nem vou fazer manualmente, vai
2:18:54ser boa parte ou cloud code, eu só vou
2:18:56mostrar a parte mais de credencial do
2:18:57Super Base, tá? Então não quero me
2:18:59aprofundar muito nesse detalhe, até
2:19:00porque também o curso ele já vai ser
2:19:02muito longo por si próprio, tá? Então
2:19:03não quero aprofundar muito nisso.
2:19:05Basicamente aqui eu criei um e-mail na
2:19:06Proton para eu criar uma nova conta aqui
2:19:08no Superabase, tá? Então é só um e-mail
2:19:10eh aleatório mesmo. Opa, deixa eu
2:19:12colocar aqui para ele sugerir uma senha
2:19:15forte. Beleza, vazou aí, mas não tem
2:19:17problema. Eu não vou usar isso daqui
2:19:18para nada, realmente importante. Agora
2:19:20ele vai pedir aqui para eu confirmar o
2:19:21meu e-mail. Deixa eu só bloquear aqui.
2:19:23Deixa eu ver na minha caixa de entrada.
2:19:26Chegou aqui o e-mail do Supase. Vou
2:19:28clicar aqui para confirmar. OK. Ele vai
2:19:29abrir aqui o meu super base. E agora é
2:19:31só colocar aqui o meu acesso. Deixa eu
2:19:33ver. Deixa eu ver. Já veio direto. Não
2:19:35precisou. Mas enfim, menos mal. Aqui eu
2:19:37vou colocar o nome da organização.
2:19:39Basicamente aqui é o nome da
2:19:39organização. Essa aqui não é muito
2:19:41importante. Vou colocar simplesmente
2:19:42Lucas. Vou criar a organização aqui, OK?
2:19:46E só esperar aqui carregar pra gente
2:19:47criar o nosso banco de dados aqui no
2:19:49Superbase. Beleza? Aqui na região eu vou
2:19:51descer lá embaixo, vou colocar em Super
2:19:53America, São Paulo, vou colocar para ele
2:19:55habilitar automaticamente as RLS, sempre
2:19:57que eu criar uma nova tabela. E aqui no
2:19:59password eu vou definir um automático e
2:20:01vou copiar. E eu vou salvar aqui no
2:20:04Wave. Provavelmente a gente nem vai
2:20:05utilizar, mas caso precise vou colocar
2:20:08aqui database underline P word. Tá
2:20:11igual. Coloquei aqui a senha do banco de
2:20:13dados. Perfeito. Beleza. Vou colocar
2:20:16aqui para nunca salvar. E agora ele já
2:20:18tá configurando aqui todo o nosso
2:20:19servidor, tá? Todo nosso servidor não,
2:20:21perdão, todo o nosso banco de dados tá
2:20:23subindo lá no database deles e tudo
2:20:25mais. Enfim, agora eu vim aqui na parte
2:20:27de projet settings, OK? E aqui eu vou
2:20:30vir nessa parte aqui. Ah, tá limitado
2:20:32por enquanto a parte de AP KS. Beleza.
2:20:34Tá, então eu vou deixar aqui
2:20:36desabilitado por enquanto. Vou deixar
2:20:37ele criar. Já já a gente volta para essa
2:20:39parte. O que eu quero fazer aqui agora é
2:20:41voltar no cloud code e mostrar um pouco
2:20:42da parte de skills, OK? Então vou abrir
2:20:44aqui o cloud e vou digitar aqui barra
2:20:47plugins, tá? Enquanto ele prepara ali o
2:20:49nosso banco de dados, eu vou mostrar um
2:20:51pouco dos comandos aqui, principalmente
2:20:52de skills e tudo mais, tá? Então eu vou
2:20:54vir aqui em manage de plugins, tá? E
2:20:56provavelmente no seu caso, quando você
2:20:57vir aqui não vai aparecer nada, tá? Nem
2:20:59aqui em marketplace. Então você vai
2:21:00precisar copiar esse comando aqui,
2:21:02antropics/cloud trço plugins traço
2:21:04oficial e colar aqui e clicar em edit.
2:21:06Também vai tá aqui no documento na
2:21:07descrição, tá? Todos os comandos, todos
2:21:09os sites que a gente utiliza aqui vão
2:21:10estar bem detalhados aqui na descrição
2:21:12para que fique bem fácil para você.
2:21:14Feito isso, você colocou aqui, é só você
2:21:15clicar em edit para adicionar, OK? Eu
2:21:17vou, inclusive, eu mesmo vou copiar,
2:21:19acabei fechando sem querer. Eu mesmo vou
2:21:21copiar, remover para mostrar para você
2:21:23como é que fica. Remover aqui, só
2:21:24esperar um pouquinho. Beleza, eu vou
2:21:26colar aqui, vou clicar em ed e agora ele
2:21:29já vai adicionar aqui o nosso
2:21:31marketplace, tá? Que aqui esse daqui é o
2:21:32oficial da Antropic. E aqui junto com
2:21:34isso vem várias skills pra gente. Nesse
2:21:37caso eu vou utilizar duas dois plugs
2:21:39aqui muito importantes, né? O front
2:21:41design que nesse caso é uma skill para
2:21:43design, OK? Nesse caso aqui vou instalar
2:21:45global, ou seja, para mim todo o projeto
2:21:47e tudo mais, tá? Dá um restart aqui,
2:21:50beleza? Só para ele carregar de plugin
2:21:51novamente. Já tenho aqui a skill
2:21:53habilitada. E aqui eu vou pesquisar por
2:21:55supase. Eu v aqui em super base. Vou
2:21:57clicar em instalar e instalar para todos
2:22:00também. Install for you. OK, perfeito.
2:22:03Su base já tá instalado. Nesse caso,
2:22:04Super Base, ele é um ele é um MCP, ou
2:22:06seja, depois eu tenho que configurar
2:22:08também o MCP do Supim que aqui tiver
2:22:10terminado, OK? Então, beleza. Que que a
2:22:13gente tem aqui agora? Quando a gente vem
2:22:14aqui, digitar barra, a gente tem várias
2:22:16opções, OK? A gente tem aqui a Tat File,
2:22:18onde eu posso mencionar aqui eh um
2:22:20arquivo, posso trazer aqui um arquivo do
2:22:22meu computador. A gente tem o mention
2:22:24file from project, ou seja, eu consigo
2:22:26puxar algum arquivo aqui do meu projeto.
2:22:28Então eu tenho ponto env, tenho o cloud
2:22:30MD, OK? Posso falar, ó, eu quero que
2:22:32você use esse arquivo aqui e faça tal
2:22:34coisa nesse arquivo. Posso falar isso
2:22:35para ele. E aqui a gente tem também o
2:22:36nosso clear conversation, tá? Que nesse
2:22:38caso, se você clicar aqui, ele só vai
2:22:39criar uma nova conversa, tá? Ele não vai
2:22:41limpar de fato a conversa, ele só vai
2:22:43criar uma nova conversa, ok? Aqui a
2:22:45gente tem o switch mod. A gente pode
2:22:46escolher diferentes modelos. Então a
2:22:48gente tem o defult, que é o Sonic 4, o
2:22:51Opus e o Haiku. Nesse caso, eu sempre
2:22:53recomendo que você utilize o Sonet 4.6.
2:22:56O Opus você utiliza somente para
2:22:57projetos muito complexos. E, cara,
2:22:59quando você realmente tá muito de boa,
2:23:01tipo assim, ah, eu vou mandar aqui um
2:23:02prompt agora à noite, ele vai executar e
2:23:04amanhã de manhã eu volto para fazer
2:23:05alguma coisa. Porque o Opus ele come
2:23:07muito do seu limite de uso. Então já
2:23:09mostro como que você vê o seu limite de
2:23:10uso, mas o Opus ele vai comer boa parte
2:23:12do seu limite de uso. Então não
2:23:13recomendo que você utilize o Opus porque
2:23:15cara se você tá utilizando o plano pro
2:23:17que nem eu, que é o mais barato que tem,
2:23:19você vai se lascar utilizando isso
2:23:20daqui, ok? E tem o Haiku que você pode
2:23:23utilizar para responder perguntas
2:23:24rápidas. Então tirar alguma dúvida sobre
2:23:26código, sobre alguma coisa que foi
2:23:27feita, mas eu não recomendo que você
2:23:28utilize ele para fazer código de fato,
2:23:30porque ele não vai entregar um resultado
2:23:31muito bom. O melhor de fato para o nosso
2:23:33caso é o Sonic 4.6, que mistura aqui o
2:23:36melhor, a melhor qualidade possível com
2:23:38o melhor custo benefício possível, tá?
2:23:40Então a gente tem o meio termo ali, tem
2:23:42o melhor custo benefício, OK? E aqui a
2:23:44gente tem o efort, que é basicamente o
2:23:45quê? É o nível de esforço do modelo, tá?
2:23:47Nesse caso, a gente define mais como um
2:23:49nível de eh esforço de raciocínio, que é
2:23:52basicamente o quê? Quando você coloca
2:23:54aqui no low, né, no mais baixo possível,
2:23:56ele vai raciocinar menos antes de gerar
2:23:58resposta, OK? e vai gerar resposta mais
2:24:00rápido. Consequentemente você tem um
2:24:02custo mais barato porque ele pensou
2:24:03menos. Sempre que ele pensa, ele gasta
2:24:05tokens também. Ele gasta seus créditos
2:24:07aqui dentro. Então ele acaba gastando
2:24:09mais quando ele tá pensando. Se você
2:24:10define low, ele pensa menos e responde
2:24:12mais rápido, ok? É ideal para responder
2:24:14perguntas e tudo mais, porém quando você
2:24:16quer desenvolver código de fato, cara,
2:24:17ele fica meio complicado porque ele não
2:24:19pensa muito no que ele tem que fazer,
2:24:20tá? Então é sempre legal que você tenha
2:24:21pelo menos aqui no medium que aqui ele
2:24:23vai gerar uma resposta numa velocidade
2:24:25legal, porém ele vai pensar minimamente
2:24:27antes de te responder, antes de gerar o
2:24:29código e tudo mais. Então você consegue
2:24:31resultados melhores. Por consequência
2:24:33vai demorar um pouco mais que o low e
2:24:35também vai ter um custo um pouco maior
2:24:36de créditos ou de API, tá? Porque ele tá
2:24:38pensando mais, tá usando raciocínio e
2:24:40sempre que tem ali a parte de
2:24:40raciocínio, ele acaba consumindo mais
2:24:43ali do seu dos seus créditos e da sua
2:24:45PI. OK? E no Rai é a mesma coisa, é que
2:24:48ele vai pensar para caramba, vai demorar
2:24:49mais para responder e vai custar muito
2:24:51mais. OK, Lucas, que que eu devo
2:24:53utilizar? Eu confesso que no meu dia a
2:24:55dia eu utilizo somente o medium. Você
2:24:56pode deixar para utilizar o effort
2:24:58quando você realmente quer, por exemplo,
2:25:00é desolver algo muito complexo, desolver
2:25:02um plano, algo do tipo, OK? Mas no
2:25:03medium já fica bem legal. E também tem a
2:25:06opção de thinking, que é basicamente a
2:25:07opção de pensamento, ou seja, ele vai eh
2:25:10pensar ou não antes da resposta. Nesse
2:25:12caso aqui se encaixa mais como é um
2:25:14pensamento estendido, tá? Ou seja, por
2:25:16padrão, o modelo ele já vai raciocinar,
2:25:18só que se você habilita o Thinking, ele
2:25:19pensa por mais tempo ainda, OK? No efort
2:25:22é quase a mesma configuração, tá? Só que
2:25:24de formas diferentes e, enfim, gera
2:25:26resultados diferentes também, tá? Mas
2:25:28são configurações bem semelhantes, porém
2:25:30elas impactam o modelo de forma
2:25:31diferente, ok? Se você, por exemplo,
2:25:33colocar aqui no high e colocar o f
2:25:35ativado, ele vai pensar muito, vai
2:25:37gastar muito mais também, mas por
2:25:38consequência provavelmente o resultado
2:25:40vai ser melhor também, ok? Aqui a gente
2:25:42consegue ver a conti usage, ok? Ou seja,
2:25:44a gente consegue ver eh o nosso uso do
2:25:47cloud code. Então, por exemplo, eu
2:25:48consigo ver a minha sessão aqui. Cada
2:25:49sessão dura 5 horas e ela vai resetar em
2:25:524 horas. E aqui também tem o meu weekly,
2:25:54que é o meu limite semanal de 7 dias,
2:25:56né? Obviamente porque é semanal. Enfim,
2:25:58ele reseta daqui 5 dias, tá? Consigo ver
2:26:00o meu plano e tudo mais. A, o método de
2:26:02ALF de autenticação que poderia, opa,
2:26:05ele saiu, poderia ser, por exemplo, via
2:26:07API, nesse caso tá cloudi. OK. E aqui
2:26:10embaixo a gente também tem a opção de
2:26:11tok fash mode, ou seja, no opus 4.6 a
2:26:14gente consegue habilitar para ele
2:26:15responder um pouco mais rápido, tá bom?
2:26:17E aqui a gente tem outras configurações
2:26:19de output styles, OK? Deixa eu só fechar
2:26:21aqui, de hooks, de agents, memory e
2:26:25permissions, tá? Todas essas aqui seriam
2:26:27feitas via terminal, então elas eu não
2:26:28vou me aprofundar muito porque a gente
2:26:30teria que ir lá pro terminal e tudo
2:26:31mais. É uma parte um pouco mais complexa
2:26:33e eu não quero ter que entrar nessa
2:26:34parte aqui agora com vocês, OK? Eu quero
2:26:36ficar um pouco, é, na parte um pouco
2:26:37mais tranquila da gente consumir. E
2:26:38honestamente isso aqui é muito bom,
2:26:40ajuda bastante, mas vocês não vão perder
2:26:42muito no dia a dia, tá? Isso aqui é uma
2:26:43parte realmente mais avançada e nesse
2:26:45momento a gente não tem tanta
2:26:46necessidade de ir para essa parte aqui,
2:26:48OK? A gente tem também os MCP servers,
2:26:50que são servidores MCP que a gente tem
2:26:52aqui configurados, OK? Inclusive aqui
2:26:54não tá aparecendo o do Super Base. Eu
2:26:56vou fechar o meu antigo EV e abrir de
2:26:59novo. Pode ser que aconteça isso, tá?
2:27:01Quando você instala tipo algum MCP,
2:27:03algum plugin, de imediato ele não
2:27:04apareça. Então você fecha, abre de novo
2:27:06que ele já começa a aparecer, tá? Deixa
2:27:08eu ver aqui. Barra MCP. Deixa eu ver, ó.
2:27:11Agora já tá aparecendo aqui. Tá pedindo
2:27:12ALF. E também most
2:27:15aqui. Ele já tá como status como health,
2:27:16né? Ou seja, tá funcionando. Então eu
2:27:19venho aqui, vou clicar em autenticar.
2:27:21OK. E agora ele vai, vou permitir aqui,
2:27:24é, ele quer que eu acesse uma outra
2:27:26rede. E aqui eu vou clicar em open para
2:27:28ele abrir aqui no meu navegador, tá? a
2:27:30parte de autenticação do Supase. Nesse
2:27:33caso, você seleciona aqui a organização,
2:27:34porque você pode estar em mais de uma
2:27:36organização. Nesse caso, só tô em uma.
2:27:38Então, só tem essa uma para eu escolher.
2:27:41E agora eu clico aqui em autorizar, ele
2:27:43já vai gerar toda a autenticação e já
2:27:44vai configurar o MCP do Supase. Então, o
2:27:46meu agente, ele já vai conseguir
2:27:48interagir com o Supas MCP. Eu aqui posso
2:27:51clicar em check. E aqui é para aparecer
2:27:53que vai est tudo certo. Vamos só esperar
2:27:55um pouquinho, ó. connected. Então, já tô
2:27:57conectado aqui com o Supase.
2:27:59Perfeitamente. OK. Próximo passo aqui
2:28:02agora é a gente vir no nosso superbase
2:28:04aqui dentro do banco de dados, vi na
2:28:06barra lateral direita em project
2:28:07settings e aqui a gente vai vir em API
2:28:10Keys, OK? E aqui que a gente vai ter, a
2:28:12gente tem duas chaves API. A gente tem a
2:28:14chave API publicável, tá? Que a gente
2:28:16vai copiar aqui e vai vir aqui em enon
2:28:18key, OK? A secret key que a gente vai
2:28:21copiar e vai vir em service row key.
2:28:23Qual que é a diferença dela? A
2:28:25publishing, ela sempre vai respeitar a,
2:28:28ela sempre vai respeitar a RLS. Ou seja,
2:28:31se eu falo que um usuário não pode ver
2:28:33os dados de outro usuário, então ele não
2:28:36vai ver, tá? Ele não vai conseguir
2:28:37procurar esses dados utilizando essa
2:28:39chave API. Porém, se eu falo que se eu
2:28:42coloco a Circuit Key lá no meu banco de
2:28:44dados, coloco para utilizar essa chave
2:28:45aqui e o usuário consegue acessar ela,
2:28:47basicamente eu vou vou dizer o quê? que
2:28:49o usuário pode acessar qualquer coisa,
2:28:50porque a Circuit Key ela burla, ela dá
2:28:53um bypass em todas essas regras. A RLS
2:28:55não se aplica a Circet Key. Então a CCT
2:28:58key a gente usa somente para ações que
2:28:59acontecem direto no servidor, no nosso
2:29:02internamente no nosso servidor, que não
2:29:03vão acontecer lá no frontend, tá? Porque
2:29:05quando a gente faz uma requisição no
2:29:07frontend, o usuário consegue ver. E se
2:29:09ele consegue ver, ele também consegue
2:29:10ver esse essa chave API aqui. Se ele vê
2:29:13a chave API publicável, não tem
2:29:14problema, porque ele só vê os dados
2:29:16dele. Ele não consegue fazer nada além
2:29:18disso. Mas se ele vê essa secret aqui,
2:29:21aí sim a gente tem um problema, porque
2:29:22essa secret key permite que o usuário
2:29:24faça, eh, tenha mais interações e tudo
2:29:26mais, ele consiga fazer o que ele quiser
2:29:28sem limitações, OK? Essa daqui nunca
2:29:30deve ser colocada no front end, OK?
2:29:32Então, nunca hardcode ela nem nada do
2:29:35tipo. Hardcode é você colocar direto no
2:29:36código. Nunca faça isso. Sempre coloca
2:29:39aqui qualquer chave API, qualquer coisa
2:29:41assim secreta que não deve ir pro
2:29:43usuário, sempre coloca aqui no ponto
2:29:44env, OK? Enfim, pegou isso daqui. Olha
2:29:46aqui. Agora você vem em dataapi e vem
2:29:48aqui e pega essa API URL, tá? Copia ela
2:29:52aqui. Agora você volta aqui de novo no
2:29:54seu pon e coloca aqui no superbase URL,
2:29:57tá bom? Aqui você dá um conttrl S para
2:29:59salvar. E agora a gente tem tudo pronto,
2:30:01tá? Inclusive, deixa eu só conferir aqui
2:30:03se a gente colocou aquela skill de front
2:30:06end. Deixa eu ver aqui. Colocou. Então
2:30:09agora eu vou pegar aqui, vou mandar o
2:30:11nosso comando, tá? Que que eu vou fazer
2:30:12aqui por enquanto? Muito importante. Eu
2:30:14vou ativar aqui o, deixa eu ver, plan
2:30:17mode e eu vou ativar também o thinking
2:30:19para que ele pense mais e gere um plano
2:30:21melhor, tá? a gente primeiro vai começar
2:30:23gerando um plano da nossa solução.
2:30:25Então, a gente já tem aqui tudo bem
2:30:26mapeado, então eh stack, estrutura de
2:30:29pastas, tudo mais, porém eu quero gerar
2:30:32um plano ainda melhor de execução de
2:30:33fato, como que ele vai fazer e etc. Tá?
2:30:35Então vou falar aqui para ele. Eu quero
2:30:37que você comece criando um plano de
2:30:39execução pro nosso projeto. Eu tenho bem
2:30:41detalhado no cloud.md TMD, todas as
2:30:43informações importantes que a gente
2:30:44precisa, stacks, versões, estrutura de
2:30:47pastas, eh tudo que a gente vai ter no
2:30:49nosso projeto. Porém, eu quero que você
2:30:51crie algo bem forte agora, um plano bem
2:30:53detalhado sobre como que a gente vai
2:30:54executar esse projeto. Vou aqui dar um
2:30:57control Windows, né, de novo, só para
2:30:59parar. E beleza, deixa eu ver aqui. Só
2:31:01mudar aqui o cloud.m TMD para ficar
2:31:04certinho. E agora eu vou mandar para ele
2:31:06e ele vai começar a gerar o nosso plano.
2:31:09Eu vou observar aqui para ver se ele
2:31:10pergunta alguma coisa, se ele pede
2:31:11permissão para algo, tá? Que eu já
2:31:12mostro para vocês, mas eu acredito que
2:31:14não. Acredito que realmente o trabalho
2:31:16aqui agora vai ser esperar ele fazer
2:31:18toda essa análise aqui e depois eu volto
2:31:20com vocês quando ele retornar todo o
2:31:21plano. Turma, vamos lá. Ger aqui uns 5
2:31:24minutos mais ou menos para criar todo
2:31:26esse plano. Talvez um pouco mais. É,
2:31:28enfim, aproveitei para dar uma pause no
2:31:30banheiro, mas enfim, basicamente isso.
2:31:32Levou mais ou menos uns 5 minutos aqui e
2:31:34ele gerou todo esse plano pra gente, tá?
2:31:36Então, vou mostrar um pouco por cima o
2:31:37que que ele gerou. É, me pareceu bem
2:31:39robusto, tá? Não li cada etapa dele e
2:31:42também nem vou ler aqui cada etapa com
2:31:43vocês, mas ele realmente entendeu bem o
2:31:46projeto, entendeu? Aqui toda a estrura
2:31:47de pastas e do banco de dados, entendeu?
2:31:49Que vai criar BMCP. OK. Trouxe aqui as
2:31:53RLSs, a view e os gotas, que é isso que
2:31:56eu realmente não faço ideia do que vai
2:31:59ser porque é nunca ouvi falar de
2:32:01gotchas, OK? Mas enfim, isso aqui é a
2:32:03parte de Alf e middleware, OK? Que é
2:32:05toda a parte de segurança, de
2:32:07autenticação e tudo mais também esconder
2:32:09algumas rotas para que o usuário não
2:32:10tenha acesso. Enfim, trouxe bastante
2:32:12coisa aqui e pareceu bem o robusto
2:32:14mesmo, bem cara muito muito bom, tá?
2:32:17Então aqui eu vou basicamente a gente
2:32:19pode aceitar o nosso o plano dele, tá?
2:32:21Então, sim, e autoaceitar, OK? Seja, ele
2:32:23coloca no modo de eh autoaccept, então
2:32:26ele vai aceitar as modificações
2:32:27automaticamente. Eh, sim, e aprovações
2:32:29manuais, ou seja, ah, ele vou aceitar o
2:32:32plano, mas cada modificação eu quero que
2:32:34ele me pergunte se pode fazer ou não. E
2:32:36não, não vou aceitar o plano, eu quero
2:32:37que ele continue planejando. Nesse caso,
2:32:39eu não vou querer, OK? Eu só pedir para
2:32:41ele, eh, sim, vou aceitar o plano, tá?
2:32:43Coloquei aqui o autocept, só que eu vou
2:32:45usar é a skill de frontend design que a
2:32:47gente habilitou para que ele faça um
2:32:49front change melhor, tá? E aqui,
2:32:50basicamente ele utilizou também um
2:32:52suagente. Então posso até abrir aqui, ó.
2:32:54Ele mandou todo um promp para um
2:32:55subagente para que ele criasse esse
2:32:57plano e depois ele só meio que escreveu
2:32:59a versão final, tá? Então bem legal
2:33:01também. Vou dar um enter aqui, tá? E
2:33:03aqui que eu vou fazer? Eu vou mudar aqui
2:33:04o plan mode para bypass permission, tá?
2:33:07Ou seja, ele vai começar a desenvolver
2:33:09de fato aqui, tá? Ele pensou sobre o que
2:33:11eu dei, é, aprovou o plano e tudo mais,
2:33:13pensou. Então é isso. Agora vai começar
2:33:15a pensar aqui. Deu o permission para ele
2:33:17simplesmente sair criando tudo, tá? Como
2:33:19é um projeto do zero e tudo mais, não
2:33:21tem assim muitos riscos, né? Tem alguns
2:33:23riscos, por exemplo, e talvez ele fazer
2:33:25alguma coisada aqui no meu computador,
2:33:26mas é muito, muito baixo. O Cloud Code é
2:33:28bem seguro em relação a isso. Não é, por
2:33:30exemplo, como o Play Cloud da vida, mas
2:33:32é isso, tá? Eu deixei aqui ativo. Agora
2:33:34ele vai executar as fases, então fase
2:33:37um, que é inicializar o next.jjjs JS14,
2:33:40instaladas e pendências e Chad Cui, a
2:33:44parte de banco de dados, parte de alpha
2:33:46midware, design system, dashboard do
2:33:48membro, banner, grid de cursos,
2:33:50progressos, enfim, tudo isso daqui. E
2:33:53agora eu vou novamente dar uma pausa,
2:33:55deixar aqui rodando e daqui a pouco eu
2:33:57volto com vocês. Vamos lá, vamos voltar
2:33:59aqui. Ele acabou de gerar é todo o
2:34:01conteúdo aqui. Acabou assim, né? Deixei
2:34:03um tempinho aqui. Acho que foi mais ou
2:34:05menos uns 30 minutinhos para fazer tudo
2:34:06isso, tá? E ele retornou aqui pra gente
2:34:08o que que foi feito, tá bom? Então,
2:34:10basicamente ele retorna aqui mode,
2:34:12interfont, s bar com ambiente light,
2:34:14card, enfim, animações. Vamos ver como
2:34:16que ficou isso, né? Ele gerou aqui todo
2:34:19o projeto, né? Então, loging, dashboard,
2:34:21página de curso, página de lições, bem
2:34:24interessante. E também ti aqui a parte
2:34:26de banco de dados, então 10 tabelas com
2:34:28RLS em todas, funções SQL, tá? e também
2:34:31a view aqui que esconde scorrect dos
2:34:33membros, que é basicamente as opções.
2:34:36Hum, bem legal isso aqui. Entendi o que
2:34:38que ele fez. Ele gerou aqui as lições de
2:34:40uma forma que esconda dos membros se ela
2:34:42se a opção que ele selecionou é a
2:34:44correta ou não, tá? Então, bem legal. E
2:34:46aqui pra gente rodar é muito simples.
2:34:49Basicamente posso vir aqui, abrir o
2:34:50terminal e colocar um npm run dev, OK?
2:34:54Ele já vai preparar tudo aqui, OK? Em
2:34:57local roxo 3.000. Eu já vou acessar ali.
2:34:59Mas antes disso, eu quero mostrar uma
2:35:00coisa bem legal pra gente, que é o quê?
2:35:03Aqui no nosso chat, se vocês repararem
2:35:05aqui embaixo, antes eu não tinha esse
2:35:06circulozinho, agora eu já tenho. Aqui eu
2:35:08tenho basicamente o quê? Aqui mostra
2:35:10quanto que eu tô utilizando do meu
2:35:11contexto. No caso do cloud Sonet 4.6,
2:35:15ele tem dois eh 200.000 tokens de
2:35:18contexto, tá bom? Se for o Sonic 4.6 ou
2:35:20o Opos 4.6 no plano Max, que é aquele
2:35:23plano mais caro, aí ele já tem liberado
2:35:261 milhão de contexto. Nesse caso, como
2:35:27eu tô com o plano Pro, ele só tem e
2:35:29200.000 tokens de contexto, tá bom? Mas
2:35:32já dá pro gasto aqui. E aqui que que é
2:35:34legal, quero mostrar para você dois
2:35:35comandinhos, tá? O primeiro é o barraca
2:35:38compact, tá bom? que eu posso tanto
2:35:40clicar aqui direto quanto vir aqui
2:35:41digitar barraca compact que eu posso
2:35:44mandar aqui ele vai compactar todo o meu
2:35:47contexto. Então ele vai remover a parte
2:35:48que é desnecessária, vai remover as
2:35:50informações que não são úteis úteis e
2:35:52vai manter somente as informações que
2:35:54realmente são úteis. Ele tá compactando
2:35:56aqui. Enquanto isso eu vou acessar aqui
2:35:58o nosso local host, tá bom? Pra gente
2:36:00visualizar o que que ele gerou. Vamos
2:36:02ver aqui se ficou bom ou não. Na
2:36:04verdade, inclusive eu preciso vir aqui
2:36:06no Superbase, né? Como ele comentou. Se
2:36:08eu vir aqui em table editor, vamos ver
2:36:10já para est aqui com todas as tabelas,
2:36:12OK? Essa lesson aqui não tá com RLS, tá
2:36:16bom? Porque é uma view, tá bom? Mas tudo
2:36:18bem, views, beleza? Depois a gente cuida
2:36:21disso daqui, tá? Mas o principal aqui,
2:36:23que são os demais, estão com a RLS
2:36:25habilitadas e se a gente vir aqui, todos
2:36:28eles estão com as póliices, né? Então,
2:36:29se eu vi entrando aqui nas tabelas, eu
2:36:31posso vir aqui que eles estão com as RLS
2:36:34habilitadas, OK? Então, tudo beleza,
2:36:36tudo tranquilo, tá? Deixa eu ver aqui
2:36:38agora a parte. Ele falou, vamos voltar
2:36:40aqui para ver o que que ele falou
2:36:42exatamente, que eu tenho que vir. É,
2:36:44deixa eu ver, primeiro acesso precisa
2:36:45criar um usuário admin no superbase
2:36:47authentication e depois atualizar o role
2:36:49para admin tabela profiles. OK. Deixa eu
2:36:52ver se quando eu abrir aqui já vai
2:36:54automático, não. Beleza. Então, a gente
2:36:57vai ter que criar de fato aqui na parte
2:36:59de autenticação. Vamos vir aqui em
2:37:01authentication, OK? adicionar o usuário,
2:37:04criar aqui um novo usuário e nesse caso
2:37:06vou colocar o mail, meu e-mail. Então,
2:37:08Lucas Evangel.com
2:37:11e vou colocar aqui uma senha porque
2:37:14precisa create user. Beleza, vamos só
2:37:17esperar um pouquinho. Pony providers,
2:37:19display name. Ã, OK. Aqui eu não vi
2:37:22nenhuma parte de definir que é a de mim,
2:37:25tá? Como ele comentou. Então eu acredito
2:37:28que aqui não tenha isso. Que eu me
2:37:29lembro realmente não tem nessa parte
2:37:31aqui. Então venho aqui na tabela que a
2:37:33gente tem de, deixa eu ver profiles.
2:37:36Vamos verificar aqui, ó. Ele já cria
2:37:38aqui automático. Legal. E o roll aqui eu
2:37:40vou colocar como admin, tá? Depois a
2:37:42gente cria um outro ali como sem ser
2:37:46admin. Então admin. Opa, tá ativo. Crit
2:37:49updates. Legal. Tudo bem bacana. Aqui
2:37:52nome eu vou colocar aqui Lucas. Depois a
2:37:55gente vê se tem como alterar lá. E o que
2:37:56que ele fez? Então, vou colocar aqui meu
2:37:58e-mail, a minha senha. Vamos ver como
2:38:00que ele gerou isso daqui, como que tá
2:38:02organizado, tá? Save, ó. Legal. Tá bom.
2:38:07Assim, até então uma área de membros
2:38:09normal, sem nada muito rebuscado e tudo
2:38:12mais, até porque eu também não mandei
2:38:13exemplo para eles, para ele, tá? Mas
2:38:16tudo aqui. Aqui quando eu vi em meus
2:38:18cursos, veio como not found. Eu acho que
2:38:21talvez ele não encontrou nada aqui, tá?
2:38:23Então, deixa eu vir, deixa eu verificar
2:38:25aqui, ó. Beleza. Tá, por enquanto tá
2:38:28normal, ele não retornou informando
2:38:30como, por exemplo, a gente poderia
2:38:31acessar o barra de mim, tá? Então, eu
2:38:34vou tentar forçar aqui um barra de mim,
2:38:35né? Deveria ter um lugar que eu somente
2:38:37administradores pudessem ver, mas tudo
2:38:39bem. Em visão geral, a gente não tem
2:38:41nada, acho que porque ainda não tem
2:38:42curso, então vou clicar aqui em criar um
2:38:44novo curso. Vou chamar de formação
2:38:46estrategista de A, ok? D. Vou colocar
2:38:50aqui desse jeito. Olha, ele gera, já
2:38:52gera o slag automaticamente.
2:38:55A descrição, então formação em Ia para
2:38:59criação de soluções de A, soluções de
2:39:02IA. Muito bacana. E aqui a URL da
2:39:05Thumbnail, ele não deu a opção da gente
2:39:07subir automaticamente aqui uma,
2:39:10basicamente uma imagem aqui e ele subir
2:39:12lá no storage, é algo que a gente pode
2:39:13alterar. Eu vou tentar criar sem isso
2:39:15para ver, tá? Depois a gente altera
2:39:17aqui. Inclusive, é esse é o trabalho, a
2:39:19gente ir testando, vendo o que que tem e
2:39:21a gente pede lá para ele refinar essa
2:39:23opção, tá bom? Então ele criou aqui. Se
2:39:25eu vir aqui agora em courses, vamos ver
2:39:28se já criou aqui. Deixa eu ver. Criou.
2:39:30Publicado, né? Como eu coloquei, a
2:39:32posição é zero. Beleza. Se eu vir aqui
2:39:34agora em membros, vamos ver o que vai
2:39:36acontecer. Só tem um membro. Legal.
2:39:38Estatus ativo. Eu vou adicionar aqui o
2:39:40novo membro. Vou colocar o Marcos
2:39:42Pereira e vou colocar o e-mail dele como
2:39:44Marcos Pereira 2007@gmail. Eu vou
2:39:47colocar tudo isso só para ter certeza
2:39:48que não vai ter ninguém com esse e-mail
2:39:50para receber isso daqui. Colocar uma
2:39:52senha aqui pra gente e vou criar um
2:39:54membro aqui. Vamos ver se vai dar tudo
2:39:56certo, né? Deixa eu ver. Ele adicionou,
2:39:58mas colocou aqui, mas não atualizou.
2:40:00Beleza. Então o que que a gente vai
2:40:02fazer aqui? Tá, turma, eu vou abrir aqui
2:40:04o agente do
2:40:06antig só para poder ir falando aqui
2:40:08algumas coisas. Então aqui, basicamente
2:40:09eu vou falar o quê? Eh, eu vou falar que
2:40:12a gente precisa ajeitar eh a forma como
2:40:15a gente adiciona o usuário, porque
2:40:16quando é adicionado precisa fazer uma
2:40:18nova quer no Superbase para pegar e
2:40:20atualizar a lista. Quando a gente
2:40:21adiciona o usuário e não tá atualizando
2:40:23a lista com, enfim, novos usuários. Você
2:40:27precisa dar um F5 para aí sim ele
2:40:28mostrar que tem novos usuários ali e
2:40:30mostrar todos os usuários. Tô realmente
2:40:32falando aqui, tá? Só pra gente ir
2:40:33anotando, depois o ideal é que a gente
2:40:35joga lá no cloud para ele dar um
2:40:36tratamento melhor nesse dado e a gente
2:40:38ter, enfim, um a gente conseguir tratar
2:40:41melhor os dados e poder mandar melhor
2:40:43pro nosso cloud aqui, né? Não mandar
2:40:44esse esse texto falado que fica ruim
2:40:46para ele, tá bom? Aqui nos banners a
2:40:48mesma coisa, tá? Então a gente pode
2:40:51colocar um link pra pessoa clicar, pode
2:40:52definir estativa ou não, pode definir a
2:40:54posição dele e o título, tá? Então vou
2:40:56colocar aqui teste. E depois eu vou,
2:41:00deixa eu pesquisar aqui e imagem. Só pra
2:41:02gente colocar aqui alguma imagenzinha eh
2:41:04meio mais ou menos, né? Então pode ser
2:41:07essa daqui. Eu acho que essa daqui vai
2:41:09ficar melhor, né? Que é tá formato
2:41:11horizontal. Enfim, vou salvar aqui só
2:41:13pra gente visualizar. Salvar não, né?
2:41:15Copiar o link não é nem deixa eu ver. Ã,
2:41:18cadê aqui? Copy link address. Beleza.
2:41:21Colocar aqui, mas a gente vai pedir para
2:41:23ele trocar. Aí, vou dar um salvar aqui.
2:41:25Beleza? Vamos vir em visão geral agora,
2:41:27ver se já tem alguma coisa aqui. Já tem
2:41:29o curso aqui, tem uns módulos aqui. Eu
2:41:31posso editar. Vamos ver que que ele me
2:41:34permite editar aqui. Quando eu clico, eu
2:41:35consigo ver o módulo. E aqui em editar,
2:41:38ele entra realmente aqui dentro para
2:41:39editar. Então aqui eu vou adicionar um
2:41:41módulo IA do zero avançado, só pra gente
2:41:44testar. Tá aqui avançado. Vamos
2:41:46adicionar aqui dentro. E aqui eu também
2:41:48posso clicar para adicionar uma nova
2:41:50aula. Pode ser um quiz ou pode ser um
2:41:52vídeo. Eu coloquei teste, teste dois. É
2:41:55duração legal. Colocar 20 minutos. Acho
2:41:57que é legal para depois mostrar carga
2:41:59horária e tudo mais. E aqui eu vou abrir
2:42:01o meu YouTube. Bom, tô com o meu YouTube
2:42:02aqui aberto. Vou pegar aqui, deixa eu
2:42:04ver algum vídeo. Pode ser um vídeo
2:42:06qualquer, só pra gente poder colocar
2:42:08aqui. Vamos voltar colocar criar aula.
2:42:11Opa,
2:42:13for type edit. Beleza.
2:42:16Aqui provavelmente não vai ser algo que
2:42:18a gente possa resolver. Deixa eu ver. Tá
2:42:21aqui. Realmente a gente tem que pedir
2:42:22para ele alterar pra gente conseguir ver
2:42:24o que que é. Então vou tirar um print
2:42:26disso. Vou colocar aqui também. Beleza?
2:42:29Tá. Então realmente deixa eu só tentar
2:42:31adicionar um quiz. Deixa eu ver. Teste.
2:42:34Teste dois. É questão o que é. Ya. É
2:42:38isso ou aquilo. Deixa eu ver se eu
2:42:41consigo consigo adicionar uma nova
2:42:42questão. Mais opção. Beleza. Teste.
2:42:46Teste dois.
2:42:47Teste dois pra gente ver como é que fica
2:42:49exibido aqui. Ah, ah, beleza. Eu vou
2:42:53criar aula, tá? Não tá dando para criar
2:42:54aula nenhuma. Enfim, beleza. Então, não
2:42:57vai dar para criar nem aula, nem quiz,
2:42:59nem nada aqui dentro. Mas ok. Então, tá
2:43:02agora em visão geral. A gente já
2:43:04consegue ver aqui que tem um módulo aqui
2:43:05dentro. Bacana. Eu vou voltar aqui agora
2:43:08na parte de, como que é o nome aqui que
2:43:10ele colocou? De dashboard. Não, aqui
2:43:13dashboard. V. Beleza, agora deu erro a
2:43:16carregar o dashboard. Bacana. Deixa eu
2:43:18ver. Beleza, corte da not found e
2:43:21dashboard não carrega, tá? Encontrou
2:43:23aqui uma série de erros e beleza. É isso
2:43:26daqui, tá turma? Não tem para onde
2:43:28correr. Então o que que eu vou trazer
2:43:30para ele? Vou começar aqui a falar os
2:43:31erros que a gente encontrou e a gente
2:43:33vai desenvolvendo. Tá com algum erro na
2:43:34plataforma? A gente tem alguns erros
2:43:36para corrigir, na verdade. O primeiro é
2:43:38que quando a gente tiver acessar o
2:43:39dashboard com algum curso criado, ele dá
2:43:42algum erro e não consegue carregar o
2:43:43dashboard. Quando não tinha curso
2:43:45nenhum, eu conseguia carregar o
2:43:46dashboard de membro. Agora eu não
2:43:48consigo mais carregar. A página de meus
2:43:50cursos na barra lateral logo no início
2:43:52do aplicativo, na parte de membros
2:43:54também não tá funcionando. Quando você
2:43:56clica nela, ele abre e dá erro 404. E na
2:44:00parte de quando a gente adiciona um novo
2:44:02usuário também precisa que seja feita
2:44:03uma nova chamada pro Superbase para
2:44:06atualizar a lista de usuários, porque
2:44:07ele não não atualiza automaticamente. Eu
2:44:09tenho que dar um F5. E por último, a
2:44:11gente tem um erro que é quando eu vou
2:44:13criar uma aula ou um quiz, ele dá o
2:44:17seguinte erro: invalid inputs, syntax,
2:44:19for type, uu id, temp, traço e uma série
2:44:23de números. A gente precisa corrigir
2:44:25esses quatro erros por enquanto. Enfim,
2:44:27vou mandar aqui para ele. Vou pedir pr
2:44:29quero que organize esses erros em um
2:44:30prompt para que eu mande pro cloud code.
2:44:32Só pedir aqui para ele organizar esse
2:44:34prompt, né? E a gente manda para ele. E
2:44:36agora espera ele gerar o resultado, tá?
2:44:38Então não tem muito para onde correr. É
2:44:40assim mesmo que acontece o processo. Eh,
2:44:42não é meio chatinho essa parte de ter
2:44:44que ficar ajustando tudo, mas enfim, só
2:44:46da gente saber que a gente saiu do zero
2:44:47para isso daqui em pouquíssimo tempo é
2:44:50muito legal, tá? Então vale a pena. Eu
2:44:52vou copiar aqui. Vou vir agora no cloud
2:44:54code. E antes disso eu quero mostrar um
2:44:56outro comando aqui para vocês muito
2:44:57legal que é o seguinte, que é o comando
2:44:59barractext.
2:45:01Aqui barractext. E o que que esse
2:45:03comando faz? Ele basicamente me mostra
2:45:05tudo que eu tenho aqui no meu cloud
2:45:06code. Então ele mostra aqui quantos
2:45:07tokens eu tô utilizando, eh quantos que
2:45:09eu tenho disponível, ele mostra aqui a
2:45:11categoria e quanto que eu tô utilizando,
2:45:12utilizando de tokens com cada categoria.
2:45:15Então, por exemplo, arquivo de memória,
2:45:17eh, system tools, MCP Tools, eh, System
2:45:20prompt, toda a parte de message free
2:45:22space que eu tenho aqui também, é
2:45:24autocompact buffer. Então, assim, tem
2:45:25bastante coisa aqui bem interessante,
2:45:27tá? Então, por exemplo, eu consigo ver
2:45:28quais skills eu tenho acesso aqui
2:45:30também, quais que ele tá realmente
2:45:31reconhecendo como ativadas, os arquivos
2:45:33de memória, enfim, bastante informação
2:45:35muito legal que eu posso ver com barra
2:45:36context, tá? Inclusive você pode
2:45:38utilizar o barra context para ver se ele
2:45:40realmente tem acesso a alguma skill ou
2:45:42algo do tipo, OK? Inclusive também algum
2:45:44MCP, como por exemplo do Supas que tem
2:45:46aqui várias coisas que ele pode fazer
2:45:48com o MCP do Supas, tá? Então aqui agora
2:45:50eu vou colar esse comando e também vou
2:45:53colocar aqui aquela imagem que eu tirei
2:45:54de print do erro que tá dando. Vou
2:45:56mandar para ele gerar e vamos ver no que
2:45:57vai dar. Mandei aqui para ele e agora
2:45:59realmente não tem muito o que fazer, tá
2:46:00turma? Esperar aqui ele gerar e assim
2:46:02tiver pronto eu volto com vocês. Vamos
2:46:04lá. É basicamente ele falou aqui o quê?
2:46:06É o bug 1 ele corrigiu, né? Então
2:46:10basicamente era alguma coisa de src para
2:46:12qualquer ali de fora dos base ou do
2:46:14YouTube, então acabava derrubando a
2:46:16página. Então provavelmente era aquele
2:46:17banner que a gente colocou. Bug 2, a
2:46:19rota corses não existia. Então, quando a
2:46:21gente vinha aqui, deixa eu só encontrar
2:46:24aqui, a gente não conseguia vir para cá
2:46:26porque essa rota simplesmente não
2:46:28existia, né? Deixa eu ver aqui. Ele tá
2:46:31compilando, por isso vai demorar um
2:46:32pouquinho, mas enfim, assim que ele
2:46:34compilar, ó, agora a gente já consegue
2:46:35vir para cá, consegue ver o curso.
2:46:38Beleza? E aqui ainda dá erro para
2:46:40carregar, não sei por exatamente. Enfim,
2:46:44é engraçado que ele me pediu para que a
2:46:46URL tem que vir no super base, mas ele
2:46:47não criou o componente para criar e a
2:46:49imagem pelo super base. Mas ok. Então o
2:46:52que que eu vou fazer aqui por enquanto,
2:46:53tá? Eu vou testar a parte do bug 3 e 4
2:46:58lá pra gente ver se funciona ou não, tá?
2:47:01E aqui vou falar o seguinte para ele. Eu
2:47:02quero que você também corrija para que
2:47:04sempre que tiver que adicionar uma
2:47:05imagem, eu possa simplesmente fazer o
2:47:07upload da imagem e que automaticamente
2:47:08ele suba no storage do Supase. Preciso
2:47:11que você crie também o storage do Super
2:47:12Base para banners e também imagens de
2:47:15perfil de aluno. Mandar aqui para ele.
2:47:17Esse daqui como é simples, é uma coisa
2:47:18só. Eu vou mandar direto, tá? Não vou
2:47:20pedir pro cloud ajustar e tudo mais.
2:47:22Então não tem motivo, não tem porquê.
2:47:24Agora eu vou vir aqui na parte de admin,
2:47:26tá? Vamos ver se corrigiu aquelas
2:47:30questões. Eu vou começar pelas aulas
2:47:32porque ela é prioridade a parte de
2:47:34membros. Eh, enfim, é só um
2:47:36detalhezinho. É que é legal a gente
2:47:37ajustar, mas vamos ver aqui nas aulas
2:47:39como é que tá. Eh, enfim, adicionar uma
2:47:41nova aula, tipo de aula teste, é teste
2:47:45dois. Colocar aqui 20 minutos e o RL do
2:47:49YouTube, vou copiar e vou colar isso
2:47:51daqui. E opa, ó, já deu certo. A gente
2:47:53já conseguiu ver aqui. Eu consigo mudar
2:47:55a visualização da aula. Tá? Consigo
2:47:57adicionar, remover. E eu já vi aqui um
2:47:59pequeno problema que a gente precisa
2:48:00corrigir, tá? Essa aqui é uma parte de
2:48:02UX. E pô, eu não sei se eu comentei isso
2:48:04ao longo desse curso, mas vou até voltar
2:48:06a câmera aqui para mim, que é o
2:48:07seguinte, hoje em dia, graças ao cloud
2:48:09code, você não precisa necessariamente
2:48:11saber como fazer, mas entender os
2:48:13fundamentos e também entender o que você
2:48:16quer. Essas duas coisas são muito
2:48:17importantes. Então aqui tem um detalhe
2:48:19muito simples e que eu acho que assim, a
2:48:20grande maioria talvez não reparou, mas
2:48:22eu reparei no momento que eu fui colocar
2:48:24aqui eh para adicionar e tirar
2:48:26visualização e também quando eu
2:48:29adicionei essa aula que é o seguinte,
2:48:30ele não me fala que eu fiz nada, tipo,
2:48:32não tem nada aqui realmente notificando
2:48:34que eu fiz alguma coisa. Então se eu
2:48:35adiciono o módulo, por exemplo, teste
2:48:38dois, ele não me notifica. Se eu venho
2:48:41aqui e adiciono um quiz, ele também não
2:48:42me notifica. Esse é um detalhe de X,
2:48:44cara, que é muito simples. A gente pode
2:48:46até achar que é besta, mas é muito
2:48:47importante. Tudo que acontece aqui
2:48:49dentro tem que ser notificado pro
2:48:50usuário, sabe? A gente tem que falar
2:48:51aqui, ó, isso daqui aconteceu, eh, você
2:48:54precisa, eh, deu erro, aconteceu, deu
2:48:56certo, alguma coisa. Tudo que acontecer
2:48:58aqui dentro tem que ser notificado pro
2:48:59usuário para ele saber que aconteceu de
2:49:01fato, sabe? Então é muito importante que
2:49:03tenha isso pra gente. Então, teste,
2:49:05teste dois, é, colocar só duas e aqui
2:49:08nessa outra a gente testa. Teste quatro,
2:49:11teste cinco. Mais uma opção, teste seis.
2:49:15E vamos dar a correta. Vamos criar aqui
2:49:17essa aula de quiz. Deu certo? Legal que
2:49:19ele exibe aqui pra gente. Beleza? Tá.
2:49:22Eh, então, teoricamente aqui tá tudo
2:49:24certo, dois módulos, tudo mais. O que
2:49:26que eu vou fazer aqui agora? É voltar lá
2:49:28pra parte do cloud code pra gente ver se
2:49:30ele gerou. Deixa eu ver, ó. Update
2:49:33todos. Ele vai criar o buabase que já
2:49:35criou. Vai criar os componentes imagem
2:49:37upload reutilizável. vai integrar upload
2:49:40nos forms, beleza? Tá bom? Então isso
2:49:43aqui a gente segue esperando na parte de
2:49:44banners aqui. Que que eu vou fazer? Ele
2:49:46já criou os buckets, né? Então aqui no
2:49:49suabase a gente vem na barra lateral, a
2:49:50gente tem a parte de storage e aqui a
2:49:52gente vai ter basicamente banners,
2:49:54tmails, tudo mais que a gente pode
2:49:55utilizar. Aqui eu vou subir uma imagem,
2:49:58é, vou subir até essa imagem que eu
2:49:59tinha baixado só pra gente copiar e ver
2:50:01se a gente consegue acessar aquela
2:50:02página principal, tá? Não é bem o ideal,
2:50:04mas só pra gente ver se a gente já
2:50:06consegue direto. Deixa eu pegar aqui a
2:50:08URL. Vou vir aqui agora no meu banner e
2:50:11eu vou alterar ele. Então é, meu filha
2:50:15da mãe já trocou aqui para não precisar
2:50:18coisar. Eu só não vou, deixa eu ver. Ele
2:50:21já terminou essa parte, então eu vou
2:50:22subir porque eu acho que não vai ter
2:50:24erro nenhum. Downloads. Tomara que não
2:50:26vaze nada aqui. Beleza, já colocamos
2:50:28aqui a imagem. Não tá no tamanho certo,
2:50:30mas tudo bem. É só um detalhe que a
2:50:31gente altera depois da imagem, sim. E
2:50:33aqui no link, eu vou colocar um link
2:50:35também pro YouTube, só para ver como é
2:50:36que fica. Então vou salvar e agora vouar
2:50:39lá no dashboard pra gente analisar, ver
2:50:41tudo que tem lá, como é que tá
2:50:42funcionando e tudo mais. Então dashboard
2:50:45aqui já aparece o banner, bacana. Eu
2:50:47posso clicar e ele já vem pro YouTube. E
2:50:49aqui eu também tenho o curso que eu
2:50:50posso clicar para acessar. Então beleza,
2:50:54tá legal o formato, tá? Seria legal se
2:50:57talvez a gente tivesse banners nos
2:50:58módulos para ficar mais visual. Eu só
2:51:01senti que o design ele tá legal. Eu
2:51:03gosto desse estilo mais minimalista e
2:51:05tudo mais, porém eu achei que ele tá
2:51:07muito cru, sabe? Tipo, tá muito seco e
2:51:10acaba que pro usuário eh a experiência
2:51:13não fica tão boa, sabe? Tipo, tá muito
2:51:15muito seco. Mas tá legal, tá? Não tá
2:51:18ruim não. Aqui tem aqui o curso, né? Os
2:51:21vídeos que a gente pode ver. Legal no
2:51:23player do YouTube. E aqui eu posso
2:51:25marcar como concluída. Vamos ver. Aula
2:51:27concluída. Aqui do lado, ó, um dia
2:51:29seguido. Então, legal isso daqui
2:51:30aparecendo, né? Um pouquinho de, digamos
2:51:33que, eh, gamificação. Aqui eu posso
2:51:35colocar minhas notas e olha que legal,
2:51:37não tenho o que salvar. Então, se eu vir
2:51:38aqui e colocar teste ou Lucas, é muito
2:51:42da hora. Ele já salva automático.
2:51:46Coloquei aqui para salvar. Eu vou sair
2:51:48aqui e voltar só pra gente ver como é
2:51:49que fica. Formações estatísticas de já,
2:51:52ó. Tá voltando. Opa. Aí, aí quebrou.
2:51:55Deixa eu ver. Ih, rapaz. Hum. Não era
2:51:58bem para dar esse resultado aqui, não.
2:51:59Tá, deixa eu ver o que que aconteceu,
2:52:01tá? Eu acho que provavelmente foi isso.
2:52:03A gente tá fazendo aqui junto com ele.
2:52:04Ele tá verificando a build. Então, deixa
2:52:07eu ver. Tá, eu vou fechar aqui por
2:52:09enquanto. Eu vou esperar ele terminar
2:52:10aqui de fato para não ficar aqui rodando
2:52:13em cima dele as coisas, né? Talvez isso
2:52:15possa atrapalhar um pouco. E assim que
2:52:16ele terminar, a gente vai encerrar aqui
2:52:18o terminal. Na verdade, eu já vou até
2:52:20encerrar aqui o terminal, né? já apagar
2:52:21ele e aí eu volto para ativar de novo e
2:52:24aí compilar tudo para garantir que não
2:52:26vai dar nenhum erro, tá? Então enquanto
2:52:27isso eu vou esperar ele aqui gerar e eu
2:52:28já volto com vocês, tur, vamos lá. Bom,
2:52:31é aqui Super Base storage configurado,
2:52:33né? A gente realmente já viu, já até
2:52:35jogou lá as imagens, tá integrado.
2:52:38Beleza, agora eu vou rodar aqui no meu
2:52:39terminal novamente npm run dev, tá? Ele
2:52:42vai criar aqui. Beleza? Vamos ver se
2:52:45agora vai, tá? antes de aquele erro lá
2:52:46que foi sinistro, inclusive vazou aqui
2:52:49tudo, mas ainda bem que não mostrou
2:52:50nada. Vamos vir aqui, mas esperar ele
2:52:53carregar ali que eu já troco de tela.
2:52:55Enfim, basicamente ele criou. E agora
2:52:57realmente essa parte a gente já entrou
2:52:58meio que ali na fase quatro que eu tinha
2:52:59comentado com vocês, que é realmente vim
2:53:01testando aqui as coisas, vim analisando.
2:53:04Bom, realmente eu acho que aquela parte
2:53:05lá que tinha dado o erro, é porque eu
2:53:06fui mexendo junto com ele enquanto ele
2:53:08fazia a build e tudo mais. Então normal,
2:53:11acontece mesmo, tá? Deixa eu vir aqui.
2:53:14Eu queria ver sobre as notas, se elas
2:53:15realmente foram salvas. Se eu vir aqui
2:53:18entrar, deixa eu ver. É um teste de
2:53:20Lucas. É muito da hora. As notas vão
2:53:21sendo salvas aqui. Então isso aqui é bem
2:53:23legal. Eh, vamos vir aqui. Deixa eu ver.
2:53:26Eu quero vir na parte de aulas. E legal
2:53:29que a gente já viu que funcionou, que é
2:53:30o seguinte, quando eu vim aqui, o teste
2:53:32ele tava desabilitado, né? Então, é, a
2:53:35parte de quiz tava desabilitado, no
2:53:36caso, tava não tava visível o quiz,
2:53:38então não mostrou. E agora vamos ver se
2:53:40eu da F5 aqui se ele já vai mostrar. Ó,
2:53:42já mostrou aqui. Ele mostra is aqui mais
2:53:44apagadinha. Ess daqui um pouco mais
2:53:45clara, né? Porque eu ainda não consumi
2:53:47ela. E vamos ver então. Quiz aqui. Eu
2:53:50acho que eu deixei a primeira, então vou
2:53:52selecionar ela. Verificando uma
2:53:54respondida, uma correta, ele já retorna
2:53:56o resultado, né? Legal. Próxima
2:53:57pergunta. Aqui foi a quatro. Confirmar.
2:54:00Deixa eu ver. Olha, já mostra que tá
2:54:02errada. Ver resultado. 50% um de duas
2:54:05questões corretas. Pô, cara, bacaninha
2:54:08demais. Tá, tá muito legal. Enfim, deixa
2:54:10eu ver. Eu acho que aqui, sendo bem
2:54:12honesto, a gente pode adicionar um uma
2:54:16capa aqui nesse módulo pra gente nesse
2:54:18nessa formação, no caso. Deixa eu vir
2:54:20aqui em editar. Deixa eu só procurar
2:54:23aqui por algum arquivo de imagem que eu
2:54:25tenha. Pode até ser uma foto minha
2:54:26mesmo. Deixa eu ver. Eu tenho essa daqui
2:54:28que tá legal. Então, vou mandar aqui.
2:54:30Deixa eu ver. Beleza. Deixa eu salvar o
2:54:32Deixa eu colocar uma outra que eu acho
2:54:33que vai ficar melhor. Sabe o que é uma
2:54:35foto minha? Deixa eu pelo menos me
2:54:36valorizar aqui na É, eu achei que essa
2:54:39ia ficar melhor. Ficou foi pior. E essa
2:54:42realmente tá no formato errado. Enfim,
2:54:44vou colocar aqui. Pode ser essa mesmo,
2:54:46salvar alterações, só pra gente ver se é
2:54:48exibido lá. Então vamos vir em
2:54:50dashboard. Ah, aqui ficou legal. Ficou é
2:54:53a exibição ficou bem legal aqui nessa
2:54:54parte. E cara, aqui também tá bacana.
2:54:58Assim, aqui é basicamente isso, tá?
2:55:00Então, a gente tem um software aqui
2:55:01funcional, a gente consegue acessar,
2:55:03consegue ver as aulas e tudo mais,
2:55:04consegue fazer os quizes. É, lógico que
2:55:07a gente precisaria testar muito mais
2:55:08antes de colocar isso em produção, de
2:55:09fato, é, fazer muito mais teste, colocar
2:55:11muitas muito mais pessoas para testar
2:55:13isso daqui. Mas por enquanto, cara,
2:55:15achei muito, muito legal. O que eu quero
2:55:17fazer aqui agora é, deixa eu ver,
2:55:19consigo alterar aqui a foto? Então,
2:55:21deixa eu vir aqui em pictures. Deixa eu
2:55:24pegar uma foto minha aqui, alterar para
2:55:26ver como é que fica, ó. Vamos só
2:55:28esperar. Já apareceu aqui a minha foto,
2:55:30pô. Bacana demais. Eh, funcionando
2:55:32legal. E deixa eu ver aqui. Eu quero
2:55:34testar a parte de fazer o logout e eu
2:55:36vou logar com aquele outro e-mail que eu
2:55:38criei aqui, que nesse caso era
2:55:41marcospereira 2007@gmail.com.
2:55:44Tá? Eu acho que a senha era a mesma.
2:55:46Deixa eu ver, ó. Beleza, eu entrei aqui
2:55:48e olha que coisa legal, tá? Primeiro de
2:55:50tudo aqui ele já fez a parte e
2:55:52multiusários corretamente. Então, por
2:55:54exemplo, eu não tô vendo aqui a aula dos
2:55:56outros, né? Então, não aparece como
2:55:57concluída. E também não aparece nem o
2:55:59quiz também, tá? A imagem também aqui no
2:56:01pego dos outros. Legal. E agora que eu
2:56:04quero fazer aqui que é a parte, olha que
2:56:06legal, cara. E aí vocês não vão entender
2:56:08o que eu pensei aqui porque eu achei
2:56:09legal, tá? Mas é o seguinte, ele já
2:56:11deixou configurado corretamente por eu
2:56:14fiz o logout da minha conta aqui, tá?
2:56:15Nessa aba do meu do site. Porém, quando
2:56:18eu vim aqui para essa outra aba, ele
2:56:19também já fez o logout, tá? Algum, em
2:56:21alguns casos, eu já vi, por exemplo, com
2:56:22lovelo, por exemplo, você fazer o logout
2:56:24aqui e aqui ele simplesmente continuar
2:56:26na mesma aba, tá? ele continuar aqui
2:56:27como se eu não tivesse feito o logout
2:56:29aqui. Ele já saiu automaticamente. E
2:56:31agora quero dar um enter aqui porque
2:56:33login eu tenho. Hum, olha que legal,
2:56:36cara. A mesma coisa aqui, ó. O dash, se
2:56:38eu colocar aqui admin e tentar acessar,
2:56:41ele vai voltar pro dashboard
2:56:42automaticamente. Por quê? Porque eu não
2:56:43tenho acesso para ir pra parte de admin.
2:56:46Eu confesso que essa parte eu achei que
2:56:47talvez eu teria que ter um ponto de
2:56:48atenção aqui e corrigindo com vocês, mas
2:56:51eu não tive, tá? Então assim, cara, tá
2:56:54simples, tá? O design não tá nada
2:56:55complexo, nada muito avançado, então tá
2:56:57realmente simples, mas tá muito
2:56:58funcional, tá muito legal. É, vocês
2:57:01podem ver que demora um pouquinho aqui.
2:57:02Por quê? Basicamente aqui ele tá rodando
2:57:04com next. E quando a gente roda aqui
2:57:06alguma coisa, ó, vocês podem ver que
2:57:07aqui tá sempre compilando. Então aqui no
2:57:09meu terminal que tá rodando, deixa eu
2:57:10até conferir aqui se tá mostrando
2:57:11certinho, tá? Aqui no terminal ele tem
2:57:14várias coisas aqui que fala copilando,
2:57:15tá? Então quando eu vou trocar de página
2:57:17aqui alguma coisa por eu est utilizando
2:57:19aqui no meu computador, não tá num
2:57:20servidor e tudo mais, toda hora ele fica
2:57:22compilando aqui esses módulos. Então
2:57:24acontece que por conta disso demora um
2:57:25pouquinho na hora de trocar de página,
2:57:27mas quando a gente fizer o deploy de
2:57:28fato vai funcionar normalmente, ok?
2:57:31Então assim, cara, tá muito muito legal,
2:57:33tá bem funcional. A única adição que eu
2:57:35vou fazer aqui é realmente de ter mais
2:57:37informações visuais. Então o que que eu
2:57:39vou pedir para ele? Eu quero que você
2:57:41também trabalhe com mais informações
2:57:43visuais. Eh, todo o software tá muito
2:57:45bom, porém a Uex tá meio zoada. O
2:57:48usuário ele não tem muito eh muito
2:57:50informações. Quando adiciona um módulo,
2:57:52adiciona uma aula, ele não tem assim
2:57:54algo realmente que apareça, notifica que
2:57:56ele adicionou, que dê a certeza para ele
2:57:58que deu tudo certo. E também pro
2:58:00usuário, quando, por exemplo, o membro
2:58:02quando ele ele cria uma coloca uma
2:58:03imagem de perfil, não tem nada que fala
2:58:05que deu certo e quando ele termina uma
2:58:07aula, um quiz também, não tem nada assim
2:58:09muito expressivo na tela, sabe? Seria
2:58:11legal que se, por exemplo, caso ele
2:58:12terminasse uma aula, terminasse um quiz,
2:58:14alguma coisa assim, além de uma
2:58:16mensagenzinha ali no canto informando
2:58:17que ele terminou, que deu tudo certo,
2:58:19também seria legal ter talvez algum
2:58:21efeito de confets, sabe? Então ele
2:58:23clicou em concluir a aula, aparecem uns
2:58:25confetes ali para ele para ser mais
2:58:26interativo e ter uma X melhor. Esse de
2:58:28confets, eu vi um dia em alguma
2:58:29plataforma, não lembro onde que eu vi,
2:58:32quem que eu vi fazendo, mas achei muito
2:58:34legal e eu não faço ideia se ele vai
2:58:35conseguir recriar muito bem, mas eu pedi
2:58:37para ele fazer e vamos ver no que vai
2:58:39dar, tá bom? Mas por enquanto é isso,
2:58:41tá? Aí já tem boa parte aqui pronta.
2:58:44Agora o próximo passo, opa, era para vir
2:58:46para cá, é que eu me vi pro outro lado.
2:58:48Beleza. Próximo passo aqui é basicamente
2:58:50a gente perguntar para ele depois se tá
2:58:52tudo certo pro deploy, se precisa de
2:58:53alguma informação, se precisa de algum
2:58:55ajuste, talvez nas variáveis de
2:58:56ambiente, alguma coisa assim. Mas por
2:58:58enquanto eu acredito que não. Tá muito
2:59:00bom, tá, tá muito legal. E daí é só
2:59:02realmente a gente configurar o GitHub.
2:59:04configurou o GitHub, aí a gente vai lá
2:59:05na Versel e faz o deploy só apontando
2:59:07pro repositório do GitHub de uma forma
2:59:09muito muito fácil. Tão vamos lá, ó. Ele
2:59:12gerou aqui é o sistema de touch, tá com
2:59:14Shad CN, beleza? Ativo no root, então
2:59:17aparece no canto inferior direito em
2:59:19toda a plataforma e onde aparece esses
2:59:21toats, né, que são basicamente as
2:59:22notificações. É aqui na parte de admin,
2:59:24quando cria módulo, quando exclui,
2:59:26quando cria uma aula, membro conclui
2:59:28aula, conclui troca a f de perfil ou
2:59:31qualquer erro aparece, tá? Então, eh,
2:59:33usa aqui todo toxo vermelho. Beleza. Ele
2:59:36também falou que adicionou o confet
2:59:38quando aha concluída e também quando
2:59:39finaliza o quiz. OK. Hum, legal. Confere
2:59:43disparar na tela de resultado. Se o
2:59:44score for menor que 70%, dispara uma
2:59:47segunda vez 400 msegundos depois. Então,
2:59:50foi maior, na verdade, fingir aqui. Se
2:59:52for maior que 70%, estaram a segunda vez
2:59:55e depois. Então, vamos ver aqui como é
2:59:56que vai ser isso. Eu cliquei na, deixa
2:59:58eu ver, tá? Deixa eu ver o que que
3:00:01aconteceu aqui. Acho que novamente tem
3:00:02que matar esse processo e rodar npm run
3:00:05dev. Provavelmente é isso. Eu tô muito
3:00:08afobado aí. Tá dando erro. Esperar
3:00:10starting em 3 segundos. Só esperar aqui
3:00:14ficar pronto. Deixa eu ver. Acho que
3:00:16foi. Compilou midwer. Tá compilando os
3:00:18cursos. Por isso demora um pouquinho.
3:00:20Beleza. Então vou fazer aqui terminar
3:00:23essa aula para ver o que aparece. Tá
3:00:24compilando. Só rodar aqui. Beleza. Marca
3:00:27concluída. Ah, legal. Aula concluída. O
3:00:29progresso foi salvo e também apareceu
3:00:31aqui. Poderia ser melhor, poderia, mas
3:00:34tá OK. OK. Também poderia ter um botão
3:00:35de avanço pra próxima aula, mas vamos
3:00:38fazer aqui, por exemplo, eh, acertar
3:00:41100% para ver o resultado. Confet duas
3:00:45vezes. Legal. Tá? Tem uma pequena
3:00:48questão aqui que é até um pouquinho
3:00:49complicada que é esses confetos eles
3:00:51estão centralizados, tá? Então, eles são
3:00:53centralizados pela tela inteira. Mas se
3:00:55a gente for comparar com esse quadrado
3:00:57aqui onde aparece o quiz, ele tá meio
3:00:59descentralizado, tá? Mas por enquanto a
3:01:01gente não vai ver isso não. Tem um
3:01:03detalhes que a gente poderia fazer,
3:01:04então aliás, confete, adicionar um botão
3:01:06de ir pra próxima aula, mas tá tranquilo
3:01:09por enquanto, tá? A gente realmente vai
3:01:10seguir aqui pelo deproy porque se eu
3:01:12fosse ficar aqui realmente melhorando,
3:01:14melhorando, melhorando, cara, a gente
3:01:15teria muita coisa para melhorar. Mas só
3:01:18de pensar que, por exemplo, com menos de
3:01:20R$ 100 por mês, a gente conseguiu criar
3:01:21uma plataforma como essa para hospedar
3:01:23nossas aulas e tudo mais. E cara, a
3:01:25gente pode fazer toda a parte também de
3:01:26pagamento, etc. Inclusive, eu acho que
3:01:28eu vou fazer essa parte de pagamento
3:01:29numa aula parte aqui no YouTube
3:01:31totalmente gratuita também. Eh, cara, a
3:01:34gente pagou menos de R$ 100 para ter
3:01:35tudo isso daqui, sabe? Então, assim, tem
3:01:37melhorias, tem, mas pensa que isso daqui
3:01:39é uma área de membros própria que você
3:01:40tem o o você que possui ela. Is aqui tem
3:01:43valor pro seu negócio e além disso você
3:01:44também poderia e adicionar mais coisas
3:01:46aqui, poderia adicionar ferramentas,
3:01:48poderia adicionar diversas coisas aqui
3:01:50dentro, tá? Então, e é algo que, cara, a
3:01:52gente aqui trabalha com educação também,
3:01:54a gente tem vioprutos e a grande maioria
3:01:57das áreas de membros são muito, muito
3:01:58ruins, tá? Elas são muito muito
3:02:00limitadas, elas te oferecem poucas
3:02:02opções ali de personalização. É
3:02:05realmente você colocar aqui o banner, o
3:02:07curso, a aula, etc. E não tem muito
3:02:08mais, mas aqui a gente poderia colocar
3:02:10nossas próprias ferramentas eh
3:02:12hospedadas dentro dessa dessa
3:02:13plataforma, tudo aqui dentro de uma
3:02:15forma muito muito fácil, tá? Então
3:02:17assim, tá legal isso daqui. Então assim,
3:02:20é, cara, se você parar para pensar aqui,
3:02:22pô, a gente fez aqui em cara menos de
3:02:24uma hora, né? Acho que ficar rodando
3:02:26aqui comando mesmo ali, o Cláudio
3:02:28executando, ficou uns 40, 50 minutos de
3:02:31fato rodando, mas assim, enquanto isso
3:02:32eu tava comendo bolo, escreando no
3:02:34Instagram, tava vendo outras coisas.
3:02:36Então, realmente é um ganho de produtiv
3:02:38produtividade muito grande, um resultado
3:02:40muito legal e sai muito mais barato do
3:02:42que contratar plataforma de área de
3:02:43membros. E assim, isso eu posso dar 100%
3:02:45de certeza, porque a gente já pesquisou
3:02:47aqui e plataforma de área de membros é
3:02:49cara, tá? Então, e porque é cara porque
3:02:51faz sentido? Porque são muitos acessos,
3:02:53são muitos usuários, só que quando você
3:02:54cria sua própria você consegue hospedar,
3:02:56então você paga assim, cara, muito mais
3:02:58barato do que você contratar de fato uma
3:03:00área de membros, ok? Então é isso, tá
3:03:02bem legal. E agora a gente vai seguir
3:03:04pro deploy. Mas antes de fazer o deploy
3:03:06de fato, eu quero trazer um pouco mais
3:03:07de conteúdo teórico pra gente entender
3:03:09como que é feito esse deploy, eh, o que
3:03:10que significa, o que que por que é
3:03:12importante pra gente. Bom, então
3:03:14diretamente por que que é importante pra
3:03:15gente, tá? Sem deploy, o projeto só
3:03:17funciona na nossa máquina. Então aqui,
3:03:19por exemplo, eu tô utilizando no
3:03:20navegador, mas ele tá em local host
3:03:233.000, que é o quê? Tá rodando no meu
3:03:25servidor, no meu servidor não, perdão,
3:03:26no meu computador, na porta 3.000.
3:03:28Então, se eu copiar esse link aqui e te
3:03:30mandar, você não vai conseguir acessar
3:03:32porque ele tá só no meu computador. Você
3:03:33acessaria provavelmente aí eh o local
3:03:35hostil do seu computador e caso tivesse
3:03:38alguma coisa rodando, você até acessaria
3:03:39isso, tá? Mas você não conseguiria
3:03:41acessar essa plataforma aqui. Então o
3:03:44projeto ele só funciona na sua máquina
3:03:45se você não sobe para um servidor, para
3:03:46uma VPS, se você não faz o deploy de
3:03:48fato, tá bom? Então ninguém mais
3:03:49consegue acessar e se você fechar o seu
3:03:51computador também o app ele para. Se na
3:03:53verdade eu vir aqui no meu antigraver e
3:03:56fechar aqui o terminal, ó, vou matar
3:03:57esse terminal aqui e voltar aqui, ó.
3:03:59Deixa eu ver só esperar um pouquinho,
3:04:01deixa executar. Ele também não vai
3:04:03conseguir. Vai falar: "Ó, o site não
3:04:05pode ser alcançado." Por quê? Matou o
3:04:07terminal, morreu. Então essa plataforma
3:04:09ela depende também do seu computador
3:04:10ficar sempre ligado e também do seu
3:04:13terminal ali tá rodando o processo. Se
3:04:15não acontecer isso, ele realmente vai
3:04:16fechar, tá? Então, se não tem um
3:04:18endereço, não tem produto. Se você não
3:04:19tá realmente na web, na internet, você
3:04:21não tem um produto, você só tem um
3:04:23amontoado de código funcionando
3:04:24localmente, tá bom? E como que é o
3:04:26deploy, tá? Basicamente você vai colocar
3:04:28o seu aplicativo num servidor na
3:04:29internet. E qual que é a vantagem desse
3:04:31servidor? Ele fica ligado 24 horas por
3:04:33dia. Então ele é realmente como se fosse
3:04:35um computador que fica rodando ali o seu
3:04:36aplicativo 24 horas por dia sem que você
3:04:39tenha problemas. Aí você me pergunta:
3:04:40"Lucas, eu não poderia deixar eh o meu
3:04:43próprio computador assim?" Cara, você
3:04:44poderia, mas provavelmente a conta de
3:04:47luz sairia mais cara do que contratar um
3:04:49servidor e também o seu computador não
3:04:50foi feito para isso. Então, questão de
3:04:52algum tempo aí você teria problemas com,
3:04:55por exemplo, seu computador e cara tendo
3:04:57problemas em peças e tudo mais, porque
3:04:58ele tá passando muito tempo ligado, tá?
3:04:59Então eu já tive problemas disso aqui e
3:05:01usando computador normal, tá? Sem, por
3:05:02exemplo, deixar ele ligado 24 horas por
3:05:04dia ou algo assim, só realmente usando.
3:05:06E como eu usava bastante, eu tive
3:05:07problema na fonte dele, tá bom? Então
3:05:09não é o ideal realmente. E é fora também
3:05:11que, cara, é muito trabalhoso para você
3:05:13configurar o seu computador para que ele
3:05:14seja acessível dessa forma e que ele
3:05:16consiga receber vários acessos
3:05:18simultâneos. Então realmente isso é mais
3:05:19barato e mais fácil você ir para um
3:05:21servidor. E nesse caso, o nosso
3:05:22aplicativo vai ganhar um endereço
3:05:24acessível http público, ou seja, aquele
3:05:27https que você acessa e tudo mais, que
3:05:29você consegue acessar na internet de
3:05:31qualquer lugar, o nosso servidor vai
3:05:32ter, ok? nosso aplicativo, no caso. E
3:05:35nesse caso, você pode fechar o seu PC,
3:05:36pode fazer o que você quiser, que o app
3:05:37ele continua rodando para todo mundo,
3:05:39porque ele tá lá na nuvem, ele já não tá
3:05:41mais no seu computador de fato, tá bom?
3:05:43Então isso aqui é muito muito importante
3:05:45e funciona muito bem. E qual que vai ser
3:05:46a nossa stack, tá? Nossa stack máxima
3:05:48aqui que a gente usa pro front, a gente
3:05:50vai utilizar a Versel, que serve a
3:05:52interface visual pro usuário. Então o
3:05:54usuário ele vai acessar, vai fazer
3:05:56basicamente o seguinte. Aqui do desse
3:05:58lado aqui a gente tem o usuário. Esse
3:06:00usuário aqui tá muito grande. Deixa eu
3:06:02diminuir um pouco ele. Só aumentar aqui
3:06:04a letra para ficar melhor pra gente
3:06:06colocar aqui no M. O usuário vem, ele
3:06:10acessa a nossa http. Então htp p e área
3:06:16de membros, t área de membros, etc. Tá?
3:06:19Eu sei que tá errado aqui, mas enfim, é
3:06:20só para servir de exemplo, não é bem
3:06:22desse jeito, mas dá para entender. Ele
3:06:24vai fazer aqui uma requisição. E aqui
3:06:26quando ele fazer essa requisição
3:06:27acessando esse site, a gente vai fazer
3:06:28uma requisição pro servidor da versel.
3:06:30Então aqui a gente tem o servidor da
3:06:32versel que vai realmente receber essa
3:06:35requisição e depois vai retornar pro
3:06:38usuário o front end. Então ele retorna
3:06:40aqui pro nosso usuário o nosso frontend,
3:06:42que aí o usuário vai conseguir acessar,
3:06:44vai conseguir ver as coisas e tudo mais.
3:06:46Então tu posso até ajustar aqui porque
3:06:48vai ser basicamente esse fluxo, tá? E aí
3:06:51depois a gente tem aqui o nosso banco de
3:06:53dados Supas, que é para onde o acel faz
3:06:56a requisição. O Aersel não, na verdade o
3:06:58navegador do usuário. Então quando o
3:06:59usuário, por exemplo, pede algum dados
3:07:00do banco, então ah, eu quero criar um
3:07:03novo curso, vamos supor que é um admin,
3:07:05é criar curso. E aqui ele falou, ah,
3:07:06quero criar um curso. Ele vai mandar
3:07:09essa API, essa requisão API lá pro Super
3:07:11Base. Então aqui a gente vai ter um
3:07:12outro servidor que nesse caso já é o do
3:07:14Super Base aqui, OK? E aqui no servidor
3:07:17do Super Base ele vai criar o curso, tá
3:07:19bom? Então é basicamente assim que vai
3:07:21funcionar esse processo. Basicamente
3:07:23aqui na Versel ela não roda nada de API,
3:07:26então a gente na Versel a gente
3:07:27realmente só exibe a interface pro
3:07:29usuário. Toda a parte back end ela acaba
3:07:32rodando mesmo no nosso super base aqui
3:07:34ou também nas funções do super base que
3:07:36nesse caso a gente acabou não
3:07:37utilizando, mas que a gente poderia, OK?
3:07:39Nesse caso o ALF, né, que é a nossa
3:07:41parte de autenticação fica no super bas
3:07:43também, tá? um log seguro, rápido, com
3:07:45controle de acesso. Então, naquela
3:07:47parte, por exemplo, do middleware, a
3:07:49gente conseguir acessar a página de
3:07:51admin somente sem admin e tudo mais, vem
3:07:53aqui do Super Baseing, OK? E a parte
3:07:56também de back end, como eu falei, que a
3:07:57gente pode ter ações rodando direto no
3:07:59servidor do Super Base, tá? Que são as
3:08:01ed functions. Então, por exemplo, vamos
3:08:03supor que a gente quer que assim que
3:08:04sair uma compra lá na Hotmart, a gente
3:08:06receba essa compra e consiga criar esse
3:08:09usuário no nosso banco de dados e tudo
3:08:10mais. a gente não conseguiria fazer isso
3:08:12utilizando somente a Versel, porque ela
3:08:14não libera isso pra gente aqui nesse
3:08:16caso, porque ela é feito realmente para
3:08:17servir a interface pro usuário. Então,
3:08:19nesse caso, a gente usaria as ed filtr
3:08:21uso super base, que basicamente são
3:08:22funções que ficam rodando ali 24 horas
3:08:24por dia também. E quando receber uma
3:08:26requisição lá do Hotmart, por exemplo, a
3:08:28gente conseguiria executar todo o
3:08:29processo que é necessário, tá bom? A
3:08:31gente poderia fazer desse modo. E todo
3:08:33esse conjunto aqui, no nosso caso, ele
3:08:35vai custar R$ 0. E, cara, você não
3:08:37precisa mexer em infraestrutura nenhuma,
3:08:39tá? você não tem nenhum trabalho eh com
3:08:41mexer com infraestrutura, com servidor,
3:08:43docker, etc. Você não precisa porque
3:08:44realmente é uma stack muito boa, tá?
3:08:47Então, super base, cara, é altamente
3:08:48escalável, você consegue escalar muito
3:08:50bem o super bas sem pagar nada. Eu te
3:08:51digo isso com, cara, 100% de certeza,
3:08:53tá? A não ser que você escale assim
3:08:55níveis estratosféricos, mas para uma
3:08:57startup, cara, iniciante ali até depois
3:09:00do MVP validou, tá começando a escalar,
3:09:02você consegue utilizar o o SPAS
3:09:04tranquilamente. E na Versel pode ser que
3:09:06depois de um tempo você precise também é
3:09:08começar a pagar, mas ainda assim, cara,
3:09:10bem no começo ali ele vai te servir
3:09:11muito, muito bem no plano gratuito, tá
3:09:13bom? Então, que que a gente tem aqui,
3:09:16tá? Qual que é o poder do sua base nesse
3:09:17caso? Muita gente fala que ele é um
3:09:19banco de dados, mas ele não é um simples
3:09:21banco de dados. Ele realmente é, como eu
3:09:23comentei com vocês, é um B, um back end
3:09:26a service, ou seja, ele entrega tudo que
3:09:28a gente precisa de back endso, pra nossa
3:09:31aplicação. Então, ALF, que é
3:09:32autenticação, que é o login que a gente
3:09:34tem, cara, tem log com Google, tem log
3:09:36com Facebook, tem login com tudo ali
3:09:38dentro, tá bom? Aí a partir de
3:09:39functions, então ficar escutando eventos
3:09:41ali para conseguir executar. Lembra que
3:09:43a gente falou de o que são evooks?
3:09:45Então, basicamente, a gente tem aquela
3:09:46parte ali nas ed functions, elas
3:09:48conseguem ficar esperando notificações
3:09:49de compra, notificações de cara do que
3:09:51você quiser para fazer alguma ação ali
3:09:53no banco de dados ou para sua aplicação,
3:09:55OK? E é feito completo e em Typecript. E
3:09:58você precisa saber alguma coisa de
3:09:59Typeescript ou de Funfunctions? Para ser
3:10:02bem honesto, não. Você pode simplesmente
3:10:03pedir pro cloud e ele vai conseguir
3:10:05criar contanto que você saiba o que você
3:10:06quer, e você saiba orientar como que
3:10:09você quer que aconteça, tá bom? E cara,
3:10:10o que mais que a gente poderia ter aqui
3:10:12na arquitetura do nosso projeto, tá? E
3:10:14eu acredito que talvez essa parte aqui
3:10:15tenha de função de corrigir quizado,
3:10:19tá? Certificado não, porque a gente não
3:10:21fez a parte de certificado. Eu até que
3:10:22eu tinha pensado, mas eu não cheguei a
3:10:24executar. Deixa eu ver aqui se tem
3:10:25alguma coisa. Ã, deixa eu ver. Não, a
3:10:28gente não tem nenhuma ed function aqui.
3:10:30Eu acho que todos ele fez realmente ali
3:10:32somente com a o prabase fazendo as
3:10:35chamadas API. E também aqui o o servidor
3:10:38mesmo, né? aplicação, ele não utilizou
3:10:39nenhuma ed function aqui. Então, mas a
3:10:41gente poderia ter algo aqui para
3:10:42corrigir o quiz e salvar no banco de
3:10:44dados. Então, pra gente não ter que
3:10:45expular no front end, a gente poderia
3:10:46ter uma função para gerar um
3:10:47certificado. Então, também, ah, o cara
3:10:49concluiu o curso, já dispara
3:10:51automaticamente lá dentro do servidor
3:10:53ali no back end mesmo do Super base, OK?
3:10:56E também a função de e-mail de
3:10:57boas-vindas no trigger de usuários.
3:10:59Então, ah, a gente recebeu, por exemplo,
3:11:01ali um novo usuário que comprou na
3:11:03Hotmart. A gente recebe essa compra,
3:11:05cria o usuário de dados e dispara o
3:11:06e-mail para ele, OK? Provavelmente eu
3:11:08vou fazer isso com vocês numa aula
3:11:10gratuita, a parte que eu lanço aqui no
3:11:12YouTube. E com tudo isso vai ser o super
3:11:13vezes que vai rodar os servidores ali. O
3:11:15seu trabalho é realmente só botar o
3:11:16código para funcionar e cara tá pronto.
3:11:18Você não tem muito trabalho, tá?
3:11:19Lembrando que sempre que a gente não
3:11:20toma algumas decisões, outras pessoas
3:11:21estão tomando pela gente. Sempre que eu
3:11:23não tomo uma decisão, o Cláudio tá
3:11:24tomando por mim. Mas, cara, para você
3:11:26começar um projeto, para você validar se
3:11:28ele funciona ou não, você não precisa
3:11:29ficar tomando 1000 decisões, sabe? Você
3:11:31precisa saber se a sua ideia funciona ou
3:11:32não, ou pelo menos o básico ali para
3:11:34você poder rodar alguma aplicação, algo
3:11:35do tipo. E realmente nesse caso é isso
3:11:37que importa, OK? E cara, como é que os
3:11:40backend sobrevivem? Tá bom? Aprofundando
3:11:42um pouquinho aqui nessa parte de infra
3:11:43para que você tenha uma ideia melhor
3:11:44sobre o que que é aqui o Versel, o que
3:11:46que é o Rway, por exemplo, é o Super
3:11:49Base e tudo mais, tá? Só pra gente poder
3:11:51aprofundar um pouquinho mais e você ter
3:11:52um pouco mais de conhecimento sobre isso
3:11:54e você saber quando que você quando vai
3:11:56usar cada coisa. Bom, quando a gente tem
3:11:58um servidor servis que a gente fala,
3:12:00basicamente é o quê? É um servidor onde
3:12:02a função dorme e quando chega um request
3:12:04ela acorda. Então ela faz tudo que tem
3:12:07que fazer e dorme novamente. É o caso da
3:12:09Versel e dos Pab Functions. Nesse caso,
3:12:11o que acontece? A Versel tem ali o
3:12:12servidor dela, tem ali o seu link para
3:12:15você acessar a sua plataforma. Quando
3:12:16você clica naquele link, a função tá
3:12:18dormindo, ela recebe sua requisição, ela
3:12:21retorna para você o front endormir, tá
3:12:23bom? Então ela acorda, te entrega e
3:12:25dorme, tá? é muito bom para responder
3:12:27cliques super rápidos na web. Então,
3:12:29carregar o nosso front end, eh, carregar
3:12:31alguma coisa que a gente precisa ali
3:12:32dentro, ela vai carregar muito rápido.
3:12:34Isso aqui é perfeito, tá? Porém, o
3:12:35limite que a gente tem aqui é que ela é
3:12:37péssima pro background pesado. Quando a
3:12:39gente tem ali, por exemplo, algo muito
3:12:40pesado no background ou tem muita coisa
3:12:42que a gente precisa realmente de um back
3:12:44end muito robusto, às vezes acaba não
3:12:46valendo muito a pena a gente ir pra
3:12:47Versel. E aí, nesse caso, vale mais a
3:12:49pena a gente ir para um servidor
3:12:51persistente, como é no caso do Render e
3:12:53da Highway, tá? Que é um servidor
3:12:54basicamente o quê? e fica ligado o tempo
3:12:56inteiro, tá? Independente de ser
3:12:58consumido ou não. Foi consumido, tá
3:13:00ligado? Não foi consumido, tá ligado
3:13:02também, OK? Ele é bom para filas
3:13:04constantes ou tarefas agendadas. Então,
3:13:06por exemplo, no caso do Superbase, ele
3:13:08consegue lidar muito bem com isso,
3:13:09porque lá dentro a gente tem o Chrome e
3:13:10as funções também elas ficam ali
3:13:12esperando requisições. Então, a gente
3:13:13tem muita coisa no super base, tem muita
3:13:15coisa que nem sabe que tem ali dentro,
3:13:16tá? Mas funciona muito muito bem, ele é
3:13:19muito completo. Então, até para esse
3:13:20caso aqui, por exemplo, de tarefas
3:13:22agendadas, ele consegue resolver muito
3:13:24bem, tá? para filas já não seria muito
3:13:26ideal, mas para tarefas agendadas ele
3:13:28consegue resolver muito bem. E como tudo
3:13:30tem prós e contras, no caso do servidor
3:13:32persistente, o custo é que a gente paga
3:13:33pelo tempo que ele ficou ligado, tá?
3:13:35Então mesmo que ele esteja ali dormindo,
3:13:36digamos assim, que ele não esteja
3:13:38recebendo aquisições, ele tá ligado, tá
3:13:40rodando ali e a gente acaba pagando
3:13:42também o preço disso, tá? Mas para
3:13:44alguns casos não tem muito para onde
3:13:45correr, você realmente precisa disso
3:13:47daqui, OK? E cara, quais são as
3:13:49limitações da Versel, tá? Pra gente, ela
3:13:51é excelente para front end, tá? é rápido
3:13:53como um raio, vai responder muito rápido
3:13:54o acesso a gente conseguir acessar
3:13:56rapidamente a nossa interface ali.
3:13:58Porém, né, no caso das função servers,
3:14:01tem o tempo máximo absoluto e morrem
3:14:03violentamente em segundos. Então, por
3:14:04exemplo, a gente não vai conseguir ter
3:14:05ali os crome jobs, ou seja, a nossa
3:14:08conexão ali com elas não fica ligada por
3:14:09muito tempo. É, acessou a página,
3:14:11retornou, passou um tempo, ela já morre,
3:14:12OK? A gente também não vai conseguir ter
3:14:14aqui aqueles crobs, ou seja, a gente
3:14:16ficar ali, por exemplo, ah, por exemplo,
3:14:17de 30, 30 minutos, é rodar, ver se tem
3:14:19alguma coisa e processar os dados. Não
3:14:21tem como fazer com com a VCEL, OK? E
3:14:24também ela não mantém conexões socket
3:14:26abertas. Então, por exemplo, a gente
3:14:28tentar ter algo ali que a gente consegue
3:14:30o o usuário notificar o banco e o banco,
3:14:32por exemplo, notificar o usuário e
3:14:33aparecer ali na interface, não tem como
3:14:35fazer algo nesse sentido, tá? A gente
3:14:36não consegue, por exemplo, mandar uma
3:14:37notificação pro usuário, então se a
3:14:40gente tentar, ela vai cair. Então, não
3:14:41adiantar fazer isso com a Versel, OK?
3:14:43que é uma limitação que a gente tem da
3:14:44Versel, mas que proo se você tem algo
3:14:47que cara precisa notificar o usuário que
3:14:49algo ficou pronto algo assim, aí
3:14:50realmente a versão não vai ser o ideal
3:14:52para você, ok? E nesse caso pra gente o
3:14:54su base e o next resolvem onde a versão
3:14:56tomba. Então cara, o next vai resolver
3:14:58muito bem que é a linguagem de
3:14:59programação que a gente utilizou e o su
3:15:00base como back end, enfim, não precise
3:15:03nem falar, já fiz até muita propaganda
3:15:04aqui dele, porque realmente ele funciona
3:15:06muito bem, tá bom? E aqui a gente tem um
3:15:08ponto muito muito importante que é o
3:15:10quê? são as variáveis de ambiente. E
3:15:13Lucas, que que são as variáveis de
3:15:14ambiente? Serão basicamente isso daqui,
3:15:17esse ponto AV que a gente tem rodando
3:15:19aqui, tá bom? Então, inclusive, ele
3:15:20criou aqui o ponto env, deixa eu ver,
3:15:23que é basicamente a mesma coisa com o
3:15:25database password. Deixa eu ver,
3:15:27diferente que acho que ele puxou lá do
3:15:30cara que loucura. E cara, loucura total,
3:15:33tá? Porque eu não tinha reparado que
3:15:34criar esse ponto local. Eu vi observar
3:15:36aqui agora. Eu tô tentando entender como
3:15:38que ele organizou isso daqui, tá? S
3:15:41assim, tá tudo normal aqui, mas esse
3:15:43database password ele organizou de um
3:15:45jeito que eu não faço ideia do por tá
3:15:47assim, tá? Acho que ele pegou aqui meu
3:15:49ponto AV e replicou e tentou decifrar o
3:15:51que seria esse database password. Mas
3:15:53enfim, tá tranquilo, tá? Basicamente
3:15:55seria esse ponto AV aqui. Deixa eu só
3:15:57tirar um print aqui pra gente. Então as
3:16:00variáveis de ambiente que a gente tem,
3:16:01que a gente vai colocar lá no na Versel
3:16:02são essas daqui. São as variáveis que
3:16:04informam qual que é o RL do nosso base,
3:16:06qual que é a não key, a service roll
3:16:08key, OK? que essas chaves são
3:16:10importantes que a gente tenha lá no
3:16:11nosso na versel configuradas para que a
3:16:13gente possa executar. E por que que elas
3:16:15têm que estar aqui no ponto env nas
3:16:16variáveis de ambiente? É basicamente uma
3:16:18configuração que, cara, é muito
3:16:19importante que você tenha aqui, por
3:16:21exemplo, nas variáveis de ambiente
3:16:22porque elas alteram no aplicativo todo.
3:16:24Então vamos supor que eu tenho uma
3:16:25chamada API lá pro Supase. Eu não vou
3:16:27colocar a senha direto, eu vou colocar
3:16:29ali que eu vou puxar o dado da variável
3:16:31de ambiente, tá? Isso é muito bom.
3:16:33Primeiro por questão de segurança e
3:16:34segundo também que vamos supor que a
3:16:35gente eh deu algum problema, tem que
3:16:37trocar todas as chaves. Eu não tenho que
3:16:39entrar em cada parte do meu código para
3:16:40trocar, eu mudo somente as variáveis de
3:16:42ambiente. Então é mais seguro, mais
3:16:44escalável, é melhor que seja feita dessa
3:16:45maneira, OK? Então a gente tem, por
3:16:48exemplo, a RL do Supas, a API Key, o
3:16:50segredo M, tudo isso, chaves APIX, etc.
3:16:53São salvos no ponto N, tá? E por
3:16:55segurança, nunca faça o commit, nunca no
3:16:57GitHub público, tá? Se você vai querer
3:16:59um repositório no GitHub, sempre privado
3:17:01para isso, OK? e nunca faça o commit
3:17:03disso daqui. Isso daqui fica somente ali
3:17:05no seu no seu projeto e nas variáveis de
3:17:08ambiente da própria verel nesse caso.
3:17:10OK? Então aqui basicamente o que
3:17:11acontece? Local elas ficam contidas no
3:17:13arquivo pon que é ignorado pelo kit e em
3:17:15produção elas são coladas entre o painel
3:17:17do sufabase e na versel a gente vai
3:17:19colocar lá na mão, ok? Na unha mesmo,
3:17:22porque não tem jeito, não tem para onde
3:17:23correr, ok? E como é que é o fluxo de
3:17:25deploy? tá? De forma bem tranquila, bem
3:17:26rápido. Lógico que aqui a gente poderia
3:17:27ter algo muito mais complexo, muito mais
3:17:29avançado, mas não é o ideal aqui agora,
3:17:31né? A intenção, OK? Mas basicamente a
3:17:33gente vai fazer o quê? A gente vai fazer
3:17:35um push pro GitHub. Então o que que é um
3:17:36push? É empurrar. Mesmo que o nome seja
3:17:38push, a gente associa aqui no Brasil a
3:17:40puxar. Lembra que o push é você
3:17:42empurrar, você jogar lá pro GitHub, OK?
3:17:45Aqui na versel sente o gatilho visual do
3:17:47Hook, OK? Então ele vai receber esse
3:17:50gatilho. Depois a Versel recebe isso,
3:17:52tá? Então ela tá integrada pro nosso
3:17:53GitHub. Então, sempre que a gente fizer
3:17:55aqui eh algum pitub, ela já vai receber
3:17:57isso e vai começar a buildar e publicar
3:17:59o front change sozinha, sem que a gente
3:18:01tenha que entrar lá e pedir para fazer o
3:18:03deploy ou algo do tipo, ok? E o
3:18:05bandidado functions funcionam por fora e
3:18:07não perdem conexão, tá? Como a gente tá
3:18:09no super base, a RL é a mesma, tudo é a
3:18:10mesma, então fica tudo é funcionando ali
3:18:14sem ter que desligar, sem perder conexão
3:18:15nem nada do tipo, ok? E também mesmo
3:18:18quando, por exemplo, aqui a gente manda
3:18:19pro pro GitHub, a versel puxa do GitHub
3:18:22e publica, a URL é a mesma. Então os
3:18:25clientes acessam o build novo, tá? Só
3:18:27que sem cacherê em 2 minutos. Ou seja,
3:18:29em 2 minutos está pronto, eles não
3:18:30acessam a build antiga, eles já recebem
3:18:33a build atualizada sem nenhum problema,
3:18:35ok? Então antes da gente ir para lá,
3:18:37qual que é o principal os principais
3:18:39erros que a gente pode ter aqui? Tá bom?
3:18:41Primeiro, a versel caiu, então se a
3:18:43gente abrir os logs de build, o erro
3:18:44fica vermelho, sangrento, tá? Ou seja,
3:18:46fica tudo vermelho. É certeiro que
3:18:48provavelmente foi alguma coisa ali, ou
3:18:49na Versel que caiu ou foi lá no GitHub
3:18:52ou alguma coisa no nosso código, tá bom?
3:18:54Se o super base caiu, a gente pode ir
3:18:56direto os logs da Z Functions, OK? Para
3:18:58debugar. Então a gente tem aqui no
3:18:59Superbase, eu vou até mostrar aqui para
3:19:02vocês, a gente tem aqui, ó, essa parte
3:19:04de logs, a gente pode ver tudo que
3:19:05acontece aqui, tá? Então, a Pay Gway, eu
3:19:08posso ver todas as requisições que eu
3:19:09recebi, eh, o método, para onde que foi
3:19:11essa requisição, tá? Então, aqui, ó,
3:19:13streaks, lesson questions, etc. Eu tenho
3:19:15todas essas informações aqui, tá? Então,
3:19:17tudo muito bem configurado. Eu posso ver
3:19:19tudo que foi feito, OK? Então, a gente
3:19:21consegue ter essa visualização. Se
3:19:23aconteceu algum erro, você consegue vir
3:19:24aqui e ver porque que aconteceu o erro,
3:19:26ok? E o campeão de erros aqui da vida,
3:19:28que sempre acontece muito, é não colocar
3:19:30o ponto AV na plataforma igual a gente
3:19:33tinha usando aqui no nosso projeto, tá?
3:19:35Então, ponto env aqui no projeto e lá
3:19:38também. E nesse caso, o cloud é o
3:19:39Salvador. Cara, deu algum erro? Pode me
3:19:41perguntar nos comentários, pode me
3:19:42chamar no Instagram, mas o Cloud ele
3:19:44sempre vai acabar te salvando. Então,
3:19:45copia, tira um print, pega tudo que você
3:19:47tiver de informação possível ali, copia
3:19:49tudo e manda pro cloud, fala: "Ó, tô
3:19:51desenvolvendo esse projeto aqui, deu
3:19:53esse e esse erro." O que que pode ser?
3:19:54Ou por exemplo, você já joga direto no
3:19:55cloud code, tá? Você pode fazer isso
3:19:57também para ajudar sua vida aí e te
3:19:59ajudar a resolver mais rápido esses
3:20:01problemas, ok? Então, vamos lá. Primeiro
3:20:03de tudo que a gente tem que fazer aqui,
3:20:04tá? Vamos vir aqui no nosso navegador
3:20:06novamente. Vou abrir aqui o GitHub, OK?
3:20:10Deixa eu só vir aqui no GitHub normal.
3:20:12Deixa eu ver se eu consigo acessar o
3:20:13site do GitHub. Beleza, não vou
3:20:15conseguir, mas enfim. Eu vou vir aqui.
3:20:18Eh, ó, o pessoal startando repositório.
3:20:21É, 12 estrelas. Beleza. Que a gente vai
3:20:23fazer aqui? Tá, deixa eu só sair. Eu não
3:20:25queria sair da minha conta. Eu vou só
3:20:26criar aqui uma guia anônima, porque eu
3:20:28não lembro se tá conectado com o Google,
3:20:29se só pra gente não ter esse problema.
3:20:31Então, vou vir aqui em gitub.com, só pra
3:20:32gente acessar o GitHub e eu apresentar
3:20:34para você e você poder criar sua conta,
3:20:36tá? Basicamente esse aqui é o o GitHub,
3:20:38tá? Tudo que a gente faz aqui envolve o
3:20:40GitHub. A maioria dos softwares utilizam
3:20:42o GitHub, a maioria das empresas é
3:20:44simplesmente é o que a gente tem de
3:20:45melhor para versionar, para colaboração,
3:20:47etc. Então a gente acaba sempre
3:20:49utilizando o GitHub, OK? Nesse caso
3:20:52aqui, você pode se cadastrar aqui em
3:20:53cima no canto superior direito em criar
3:20:55uma conta, tá? Você pode criar com
3:20:57Google ou por exemplo vir aqui e colocar
3:20:58seu e-mail e senha e quer da sua
3:20:59preferência, o que você preferir. E
3:21:01feito isso, é só você criar sua conta,
3:21:03ele vai te pedir algumas informações,
3:21:04você preenche e depois vai cair nessa
3:21:06tela aqui, tá? E aqui você pode fazer o
3:21:07quê? Você vem no canto superior direito,
3:21:09vem aqui e vem em repositórios, tá bom?
3:21:11E aqui a gente vai criar o nosso
3:21:13repositório. Nesse caso aqui, eu ainda
3:21:15não vou criar meu repositório. Por quê?
3:21:17Eu vou vir aqui no cloud code, OK? E eu
3:21:19vou pedir para ele analisar o nosso
3:21:21código. Vou pedir para ele me falar se
3:21:22falta algo, tá? Então vou falar: "OK, ó,
3:21:25vamos falar aqui com ele, ó". OK, tudo
3:21:27certo, tá legal? A gente já vai fazer o
3:21:29deploy da primeira versão. Eu quero que
3:21:31você me diga se precisa fazer alguma
3:21:32coisa aqui no código, eh, na aplicação,
3:21:34se tem alguma coisa faltando para fazer
3:21:36o deploy ou se tá tudo certo. Se tiver
3:21:38tudo certo, eu já quero que você faça é
3:21:41o push pro Git, pra gente já mandar lá
3:21:43pro GitHub e poder depois jogar na
3:21:44versel. Vou falar aqui isso para ele, tá
3:21:46bom? Vamos mandar. E agora vamos esperar
3:21:48ele gerar o resultado aqui, que nesse
3:21:49caso é para ser um pouquinho mais
3:21:50rápido, é para demorar 5, 10, 15, 20
3:21:53minutos, tá bom? Então ele falou fazer
3:21:54aia completa antes de qualquer push. tá
3:21:56checando aqui eh todos os status, OK? Em
3:21:59relação aqui à parte de, como eu posso
3:22:02dizer, a parte de configuração de
3:22:05versionamento, de brand, etc., do
3:22:07GitHub, tá? Como ele colocou aqui, OK?
3:22:09Então, vê, chegou aqui os Git ignore, os
3:22:11Gitoles. Beleza, vamos ver aqui o que
3:22:13ele vai gerando, tá? Nem vou cortar essa
3:22:15parte aqui da aula, eu vou realmente
3:22:16aqui falando porque se eu se eu não
3:22:18falar, eu vou acabar cortando o silêncio
3:22:19e aí eu vou perder essa parte aqui. Mas
3:22:21vamos vendendo aqui o que ele vai
3:22:22desenvolver. Se que ele desenvolver
3:22:23aqui, a gente realmente cria lá o
3:22:24repositório e depois que criou o
3:22:26repositório, na hora de subir paraa
3:22:27Versel é muito muito fácil, demora aqui
3:22:30alguns minutinhos, tá? Então ele
3:22:32encontrou um problema crítico de
3:22:32segurança e algumas coisas a verificar
3:22:34antes do push. O CR o ponto será
3:22:36comitado, não é para ser comitado. O
3:22:39ponto envio ponto envas
3:22:43se fizer
3:22:45tá beleza passando se rotas configurar
3:22:48três mes. Beleza, vouar configurar essas
3:22:50vares aqui lá e beleza. Cara, por algum
3:22:54motivo, eu não sei por eu acho que na
3:22:55hora que ele startou o ponto AV aqui,
3:22:58ele veio como sendo exibido, tá? Então
3:23:00agora vocês podiam ver que tinha até
3:23:01umzinho aqui. Eu tava desconfiado, tava
3:23:03meio com pé atrás, por isso que eu já
3:23:04quis passar aqui para conferir, tá? Ele
3:23:07tava com umzinho verde aqui, eu fiquei
3:23:08cara, chega aqui uma puca atrás atrás da
3:23:10orelha, tá? Então até por isso que eu já
3:23:12quis fazer isso. E é ideal que você
3:23:13sempre faça isso, verifique se falta
3:23:14alguma coisa ou algo assim. E nesse caso
3:23:17o que acontece, tá? Eh, basicamente aqui
3:23:20o ponto provente foi alguma coisa na
3:23:21hora que ele foi startar. Como eu criei
3:23:23antes. Já coloquei as informações na
3:23:25hora que ele foi insertar toda a parte
3:23:26do git aqui e tudo mais, por isso que
3:23:27ele ficou como comitável, ou seja,
3:23:29queria subir eh pra web. Mas tudo certo,
3:23:32por isso é sempre bom a gente verificar.
3:23:33E cara, falha grave de segurança, tá?
3:23:35Não vou negar não. Eh, teria passado
3:23:38direto, provavelmente se eu não tivesse
3:23:39perguntado para ele. Então, por isso que
3:23:40ele tem sempre m de perguntar. E eu
3:23:41realmente não sei o porquê, tá? Porque
3:23:43tá realmente na configuração que ele
3:23:44precisa estar, que é ponto m. OK, mas
3:23:47tudo bem. Vamos lá. Check para push.
3:23:49Beleza? Quando for conectar o reprel,
3:23:51verificar todos esses dados aqui. OK,
3:23:54tranquilo. Que que eu vou fazer aqui
3:23:55agora? Ah, deixa eu ver. Tá ignorado.
3:23:58Beleza. Ele pediu aqui pra gente a do
3:24:01repositório e manda o link, executo push
3:24:03imediatamente. Tá bom? Então, vou pegar
3:24:05aqui para criar um novo repositório. O
3:24:06repositório name eu vou colocar esse
3:24:08mesmo que ele colocou, membersclub.git.
3:24:11Na real só members tro club. A gente
3:24:13coloca aqui members club. Tá disponível.
3:24:15É visibilidade, coloca como privado, não
3:24:17deixa público, OK? E aqui só faz isso,
3:24:20não coloca mais nada por enquanto e cria
3:24:22o repositório. Beleza? A gente pode
3:24:25copiar isso daqui, tá bom? Vou copiar
3:24:27aqui e vou mandar aqui para ele, ó. A
3:24:30gente copia esse segundo código aqui de
3:24:31baixo, tá bom? Manda para ele aqui. Ele
3:24:33vai fazer ali o push lá pro gitub, tá? A
3:24:37gente até poderia executar esse comando
3:24:38aqui na mão, mas enfim, já que a gente
3:24:40deu todo o deplay aqui para ele
3:24:41executar, vamos seguir dessa maneira,
3:24:43tá? para não ter nenhum problema. Feito,
3:24:45já tá na BT main. Beleza. Ó, vou mudar
3:24:48aqui um F5 aqui agora só para verificar.
3:24:50Beleza, todo o código já tá aqui. Deixa
3:24:52eu ver aqui. Node módules, tá? Essa
3:24:54parte acho que não sobe mais local
3:24:55mesmo. Então já tá rodando aqui. E ó,
3:24:58que legal, Lucas Evangelista and Cloud
3:25:00fez o deploy. Massa demais. E deixa eu
3:25:03ver. Querem starter? Beleza. Isso aqui é
3:25:06só realmente coisa que ele tinha para
3:25:07mim mesmo lá, tá? que deve estar aqui no
3:25:10read me. Deixa eu vermente. Aqui é a
3:25:12parte aqui para mim, tá? Então tudo bem,
3:25:14não tem problema nenhum. A gente pode
3:25:15deixar aí, não vai afetar em nada. Agora
3:25:18a gente vai acessar aqui a Versel, OK?
3:25:20Então deixa eu colocar aqui Versel só na
3:25:22parte direta da Versel.com. Aí você pode
3:25:24acessar, criar sua conta também. Então
3:25:26deixa eu vir aqui no navegador
3:25:29anormel.com.
3:25:30Muito simples. Você vem aqui, clica em
3:25:32start deploy, tá bom? Cria sua conta aí,
3:25:35pode ser com GitHub, tá? Ou você pode
3:25:37criar, deixa eu ver. Na verdade, acho
3:25:39que não. Acho que tem que ser com o
3:25:40GitHub. Então, você já criou sua conta
3:25:42no GitHub, agora você conecta aqui a sua
3:25:44conta do GitHub e não precisa pagar
3:25:46nada, não precisa passar cartão, nem
3:25:47fazer nada do tipo que ele já roda e
3:25:50automaticamente, ok? Então, beleza. E a
3:25:52gente misture. Beleza, pode habilitar
3:25:56aqui. E agora eu vou vir aqui em ad new,
3:25:58OK? Vamos vir aqui em project. E aqui,
3:26:01como eu já tô com o meu repositório
3:26:03conectado, tá? Quando você vi fazer o
3:26:04seu primeiro deploy, ele vai aparecer
3:26:06aqui para conectar com o repositório. Se
3:26:07você não conectou com o GitHub. Se você
3:26:09já conectou com com o GitHub, ele já
3:26:11pega aqui a sua conta do GitHub e você
3:26:13já pode selecionar aqui o seu projeto.
3:26:15Nesse meu caso, já aparece aqui o
3:26:16Members Club. Eu vou clicar aqui em
3:26:18import, OK? Aqui o Pr name Name Members
3:26:21Club pode deixar desse jeito e todo o
3:26:23resto pode deixar desse jeito. A gente
3:26:25vem aqui em envirles a gente vai
3:26:27adicionar as nossas variáveis, tá? A
3:26:30gente até poderia vir aqui em port
3:26:31shave. Eu vou fazer isso porque eu tô
3:26:33com preguiça, tá? Então vou vir aqui em
3:26:34import AV, eu vou vir aqui no meu
3:26:37arquivo e vou clicar aqui com o botão
3:26:39direito para ele me revelar isso daqui
3:26:42no Explorer. Então ele abriu aqui o meu
3:26:44meu explorador de arquivos. Eu vou
3:26:46copiar o caminho, vou vir aqui, vou
3:26:49colar o caminho também de novo e vou ser
3:26:51lá vou selecionar o meu ponto env, tá
3:26:52bom? Ele já me trouxe aqui tudo que eu
3:26:54preciso. Só vou remover o database
3:26:56password. E beleza, eu posso estar aqui
3:26:58o nosso deploy agora. Tá bom? Então,
3:27:01perfeito. Agora é só a gente esperar que
3:27:03ele já vai fazer o deploy da nossa
3:27:04aplicação e vai est no ar. Assim que
3:27:06tiver pronto, eu volto aqui com vocês. E
3:27:08se tem algum e também eu volto com vocês
3:27:09pra gente corrigir aqui. Não mexer em
3:27:11nada. Essa vai ser a exata tela que você
3:27:13vai ver, OK? Nesse caso, vou clicar aqui
3:27:15em continuar pro dashboard, tá bom? E
3:27:18beleza, a gente já tá com o repositório
3:27:19aqui, né? Tudo certo. E também a gente
3:27:20já consegue acessar aqui, ó, para
3:27:22acessar nosso members club. Vamos ver,
3:27:25ó. Muito, muito mais rápido, tá bom? A
3:27:27gente não teve aquela mesma demora que
3:27:28teve quando a gente foi acessar, por
3:27:29exemplo, lá pelo local host. Ah, vamos
3:27:32entrar aqui, tá verificando lá toda a
3:27:34parte de login. Vamos ver. Vou clicar
3:27:37aqui para salvar. Beleza, carregou
3:27:39rapidinho as imagens, meus cursos aqui
3:27:41também, ó. Demora um pouquinho, demora,
3:27:44mas é normal, tá? Prente quando a gente
3:27:45tá falando aqui de eh de algo que roda é
3:27:49pela primeira vez, então é normal que
3:27:51demore um pouquinho. Tá bom? Tá. Deixa
3:27:53eu ver aqui. Eu errei as questões.
3:27:55Então, o que que eu vou fazer aqui
3:27:56agora? Eu vou vir aqui, vou testar a
3:27:58rota admin, OK? Vou fazer todo aquele
3:28:00set principal que a gente fez. Eu quero
3:28:02adicionar também aqui o novo módulo. Eu
3:28:04quero ver aqueles confetzinhos de novo.
3:28:05Então vou vir aqui. Eh, deixa eu apagar.
3:28:08OK. Deixa eu ver. Ó, módulo excluído.
3:28:11Beleza. Deixa eu colocar um novo módulo
3:28:13aqui. Teste. Trazer também aqui. Módulo
3:28:17criado. OK. Tá bom. Tá bem secão, né?
3:28:20Bem bem sobro. Poderia ter um pouquinho
3:28:21mais de cor, mas também legal. A gente
3:28:23poderia, por exemplo, trocar as bordas
3:28:26que tem um pouquinho mais de cour e tudo
3:28:27mais, mas tá legal. OK. Vou fazer aqui o
3:28:29quiz rapidinho. Então, teste, descrição,
3:28:32teste também. Teste, teste, teste,
3:28:37teste. Eu acionar uma nova questão.
3:28:39Teste, teste. São dois. Eu vou adicionar
3:28:42aqui quatro questões. Por quê? Eu vou
3:28:45acertar três e vou errar, na verdade,
3:28:47vou errar duas, eh, para só para ver
3:28:49como é que vai ficar, tá? Então, deixar
3:28:51esses dois aqui primeiro. Esse daqui
3:28:52aqui, teste, teste, teste, teste teste e
3:28:57teste. OK? Por que que eu quero fazer
3:29:00isso? Basicamente para eu conseguir ver
3:29:01aqui e a porcentagem de aulas. Então,
3:29:03cada uma que eu acerto vai ser 25%, né?
3:29:06Eu quero ver só aquela diferença, porque
3:29:08eu acredito que é, ele tinha comentado,
3:29:10é que realmente eu querendo ver se ele
3:29:11realmente fez o que ele falou que ia
3:29:13fazer. Se eu vir aqui, por exemplo,
3:29:14agora em dashboard, vamos vir aqui em
3:29:16dashboard. Quando eu vir aqui na
3:29:19formação, vê, eu tenho que também fazer
3:29:21o favor de e ativar ali o quiz pro
3:29:25pessoal ver, né? Que ele fica pro pador,
3:29:26ele fica invisível. Então vamos vir aqui
3:29:29em admin, tá? Só carregar aqui. Vamos
3:29:31clicar aqui. Deixa eu ver. Habilitar.
3:29:34Beleza. Agora para soltar aqui em
3:29:36dashboard. Vamos vir aqui. Não apareceu
3:29:38ainda. Só um F5. Já aparece. Clicar para
3:29:41fazer. Vou acertar duas perguntas aqui.
3:29:44Verificar. Próxima pergunta. Confirmar.
3:29:47Faltou uma validação ali para ver se
3:29:48tinha texto. Eu nem reparei, mas tudo
3:29:50bem. Detalhe que a gente pode ajeitar
3:29:52depois. Nada que seja. Ih, rapaz, eu
3:29:56acabei acertando as 100 questões, as
3:29:58quatro, quer dizer. Mas tudo bem. Aqui
3:30:01agora eu vou fazer, vou sair, vou entrar
3:30:03naquela outra conta do que era Marcos
3:30:05Pereira 2007@gmail.
3:30:08Clicar em entrar. É nunca aqui. Deixa eu
3:30:11ver, ó. Aqui na versão a gente já
3:30:14reparou um probleminha que ele não
3:30:15deslogou automaticamente. Deixa eu dar
3:30:16um enter aqui. É, ele não deslogou
3:30:18automaticamente. Não é bem um problema,
3:30:21tá? Mas poderia ter feito que nem foi
3:30:23daquela forma que a gente fez lá. Se eu
3:30:25vier aqui em admin, ele não vai deixar
3:30:27entrela, ele retorna para cá porque eu
3:30:29não tenho acesso. Então essa parte aqui
3:30:31tá beleza? Tá legal. Agora eu vou
3:30:33acessar aqui e vou responder só vou
3:30:35acertar somente duas perguntas dessa
3:30:37vez. Então, a primeira aqui, a primeira
3:30:39aqui também, aqui vou colocar a
3:30:40primeira, ó, resposta incorreta. Próxima
3:30:42pergunta. Beleza, essa corzinha aqui
3:30:44ficou legal, tá? Pouquinho de cor aqui,
3:30:46pelo menos quando a gente acertasse
3:30:48poderia pelo menos ficar verde, tá? Já
3:30:50ficaria melhor. Mas beleza. Aquele dá um
3:30:54o confet, né? Mas como ele falou, ele só
3:30:56mostra uma vez porque a pessoa acertou
3:30:58menos de de 70%. Tá? Então é isso, nosso
3:31:01deploy tá feito com sucesso, a aplicação
3:31:04tá no ar, tá muito legalzinho. Que a
3:31:06gente poderia fazer mais aqui é só
3:31:07adicionar um novo domínio, tá? Você pode
3:31:08vir aqui em domain, pode vir aqui em
3:31:11adicionar um domínio existente, OK? E
3:31:13você conectar aqui o seu domínio, tá?
3:31:15Você pode configurar tudo aqui do seu
3:31:17domínio, mas nesse caso eu não vou eh
3:31:20não vou fazer isso aqui por enquanto pra
3:31:21gente não complicar demais, para você
3:31:22realmente conseguir focar nessa parte
3:31:24aqui do cloud code e da criação da
3:31:26solução, que é realmente o mais
3:31:28importante aqui do nosso curso, tá bom?
3:31:30Então é isso, parte de templo aqui tá
3:31:32finalizado, agora a gente vai pra parte
3:31:33de criação de skills. Bora lá cara,
3:31:36então vamos lá, vamos só rever um
3:31:37pouquinho sobre o que que a gente já viu
3:31:38aqui dentro desse curso, tá? A gente já
3:31:41passou por toda a estrutura do cloud
3:31:42code. Então o que é o cloud code? Como
3:31:44ele funciona? como que é as engrenagens
3:31:46internas do Cloud Code, as configurações
3:31:49que você pode fazer dentro dele. A gente
3:31:50viu boa parte dos comandos que a gente
3:31:52tem ali de barra para utilizar o nosso
3:31:53dia a dia, que inclusive eu quero
3:31:54reforçar e trazer mais um pouco aqui,
3:31:56tá? A gente viu sobre skills, sobre
3:31:58hooks, sobre subagents, a gente também
3:32:00já viu aqui sobre como que a gente pode
3:32:01desenvolver um software completo com
3:32:03cloud code saindo do zero até o deploy
3:32:05dele, ok? Então, cara, a gente viu muita
3:32:07coisa aqui, a gente viu sobre MCP, viu
3:32:09muita coisa mesmo, a gente já viu
3:32:10bastante conteúdo. E nesse momento aqui
3:32:12eu quero te falar que, cara, se você tá
3:32:14gostando desse conteúdo, deixa aqui
3:32:15embaixo seu like, se inscreve para não
3:32:17perder mais conteúdos como esse aqui e
3:32:19porque realmente tô trazendo muito
3:32:20conteúdo bom aqui sobre cloud code, tá
3:32:22bom? Inclusive aqui no YouTube eu não
3:32:23tenho trago tanto conteúdo porque todo
3:32:25dia é algo novo e YouTube demanda mais,
3:32:27é uma produção melhor, OK? de conteúdo,
3:32:29então acaba demorando mais pro conteúdo
3:32:31ficar pronto. Porém, lá no Instagram
3:32:33todo dia eu tô postando conteúdo, tô
3:32:34tirando dúvida da galera, tô postando
3:32:36caixinha de perguntas, vídeo, novidade,
3:32:38enfim, sempre tem conteúdo novo lá no
3:32:41Instagram, pelo menos uns dois por dia,
3:32:42fora os stories e também lá a gente
3:32:44consegue interagir muito bem, trocar uma
3:32:45ideia, conversar, eu posso te ajudar.
3:32:47Então realmente me segue aqui no
3:32:49YouTube, me segue lá no Instagram que eu
3:32:50tenho certeza que você não vai se
3:32:52arrepender. Agora a gente já falou sobre
3:32:54criação de softwares, então como que eu
3:32:56crie um software completo com cloud,
3:32:59porém também tem algo que é muito
3:33:00valioso, que é a criação de skills.
3:33:02Então quero te mostrar como que você
3:33:03pode construir as suas próprias skills
3:33:06dentro do Cloud Code. Então vem aqui pra
3:33:08minha tela que eu já quero começar. Mas
3:33:10na verdade antes disso, eu quero te
3:33:11explicar o que que a gente vai fazer.
3:33:12Basicamente a gente vai fazer uma skill,
3:33:14onde ela vai ensinar o Cloud a pegar um
3:33:16vídeo do YouTube, que eu vou mandar o
3:33:17link para ele, baixar o áudio desse
3:33:20vídeo, transcrever o áudio desse vídeo
3:33:22utilizando o modelo que vai rodar
3:33:23localmente no nosso computador para que
3:33:25a gente não tenha gastos, por exemplo,
3:33:27com tokens e API de modelos de text to
3:33:30speak to text, né, que é basicamente o
3:33:32quê? Transformar voz, né, ali um áudio
3:33:34que ele recebe em texto, OK? e a gente
3:33:36não tem esse custo, então ele vai rodar
3:33:38localmente o nosso computador, vai ser
3:33:39até um pouquinho mais rápido, mais fácil
3:33:41e mais integrado com todo o nosso fluxo.
3:33:43E depois eu quero que ele me retorne o
3:33:44conteúdo adaptado de um vídeo pro
3:33:46Instagram, tá bom? Então esse aqui é um
3:33:48caso bem legal. Eu confesso que é um
3:33:49caso que eu já queria fazer para mim,
3:33:50então vou aproveitar para fazer nesse
3:33:51vídeo, mas o mais legal dele é que a
3:33:53gente vai conseguir trabalhar com boa
3:33:55parte aqui dos conceitos que a gente
3:33:56precisa, que é realmente ali o skill MD
3:33:58de fato e também mostrando como que a
3:34:00gente pode incluir um script, tá? Então,
3:34:02o script que também não é muito simples,
3:34:03porque ele tem que ir lá no YouTube, tem
3:34:04que baixar o vídeo, depois ele tem que
3:34:07gerar a transcrição desse vídeo
3:34:08utilizando o modelo localmente. Então
3:34:10vai ser algo bem legal da gente fazer,
3:34:11algo bem interessante, OK? E a gente vai
3:34:13fazer todo aquele processo que a gente
3:34:15já fez anteriormente. Então a gente vai
3:34:16falar com o Cloud primeiro, vai gerar
3:34:18aqui um plano completo, depois a gente
3:34:20vai realmente desenvolver a skill para
3:34:21nos ajudar, ok? E aqui eu quero também
3:34:23dar um detalhe muito importante, porque
3:34:25eu acredito que é algo que você já tenha
3:34:26visto nos últimos meses ou nas últimas
3:34:28semanas falando que é o seguinte: eh com
3:34:30avanço desses code agents, desses
3:34:32agentes, eh, autônomos, como por exemplo
3:34:34Cloud Code, o Antigrav, o OpenCloud,
3:34:37muita gente tem falado que é o fim do
3:34:39software. Por quê? Basicamente, um
3:34:41software é um conjunto ali de
3:34:42funcionalidades dentro de um programa
3:34:44que você pode acessar na internet. Então
3:34:46você paga ali mensalmente, ele tem
3:34:47várias funcionalidades. E agora com
3:34:49Antibverby, com Cloud Code, com
3:34:50OpenCloud, você consegue criar todas
3:34:53essas funcionalidades, pelo menos
3:34:54maioria delas, né, de forma muito
3:34:56simples, muito rápida e, cara, com um
3:34:58custo muito, muito baixo. Mas por que
3:34:59que todo mundo tá falando disso, cara?
3:35:01Muito principalmente por esse conceito
3:35:03de skills foi criado pela Antrop. Então,
3:35:05por exemplo, aqui dentro a gente
3:35:07consegue criar umas skills que, cara,
3:35:08são simplesmente absurdas. Você pode
3:35:10ensinar todo o processo que você tem de
3:35:12alguma coisa dentro da sua empresa. Vai
3:35:14conseguir se conectar com todo esse
3:35:15processo, com todas as ferramentas que
3:35:16você utiliza e, cara, basicamente
3:35:18trabalhar em cima desses documentos,
3:35:20desses processos inteiros para obter o
3:35:22resultado final. E, por exemplo, isso
3:35:24daqui que a gente vai fazer de pegar um
3:35:25link do YouTube, transcrever e depois
3:35:27gerar um vídeo, poderia ser uma
3:35:29plataforma. Eu poderia criar uma
3:35:30plataforma com o cloud Code, mas aqui
3:35:33seria inviável. Por que que seria
3:35:34inviável? Basicamente, porque eu teria
3:35:36todo o trabalho de criar a plataforma e
3:35:37tudo mais, algo que se torna muito mais
3:35:39complexo pro cloud, apesar dele
3:35:40conseguir fazer isso daqui muito, muito
3:35:42bem, OK? Porém, a gente teria uma certa
3:35:44desvantagem que é o seguinte, eu teria
3:35:46que gerenciar melhor isso daqui, eu
3:35:48também teria que ter uma chave APIROC ou
3:35:50de algum outro modelo de inteligência
3:35:51artificial, onde basicamente eu iria
3:35:53entregar essa chave API e ele iria ali
3:35:55gerar o conteúdo do meu meu RS, tá bom?
3:35:57E qual que seria o outro problema
3:35:58também? A gente também precisaria de um
3:36:00API para gerar a transcrição dos vídeos,
3:36:02tá? E qual que seria o problema de tudo
3:36:03isso no final das contas, cara? A gente
3:36:05teria um trabalho muito maior, a gente
3:36:07teria muito mais custo ali de recursos
3:36:09computacionais. Pode ser que, por
3:36:10exemplo, só pra gente, a gente não
3:36:11chegasse a ter, mas com o tempo,
3:36:13conforme a gente vai consumindo, vai
3:36:14fazendo mais transcrições, baixando mais
3:36:16vídeos, a gente começasse a ter ali um
3:36:18peso em questão de recursos
3:36:19computacionais muito alto para esse para
3:36:21essa solução, OK? E o problema também é
3:36:23esse custo de API, porque o que acontece
3:36:25quando a gente fala de custo de API, a
3:36:27gente tem modelos muito baratos, como
3:36:29por exemplo o GPT 4.1 mini, o GPT 5.1
3:36:32mini, que é muito barato, muito, muito
3:36:34mesmo, que são de alguns centavos de
3:36:35dólares, OK? E a gente tem, por exemplo,
3:36:37o Cloud Sonic 4.6, que é um modelo que
3:36:40ele vai custar já alguns dólares de
3:36:42fato. Então, se eu não me engano, se não
3:36:43ficar enganado, é 3 por 1 milhão de
3:36:46tokens de input, ou seja, de entradas,
3:36:48de mensagens que você envia e 15 por por
3:36:511 milhão de tokens de output. de
3:36:52mensagens ali, de tokens que a IA vai
3:36:55gerar para você. E o que acontece, cara?
3:36:57Você até pode utilizar o Cloud Sony de
3:36:594.6, porém você vai ter um custo a mais
3:37:00de API. você vai ter um outro curso ali
3:37:02de API além do que você já paga pro
3:37:04próprio cloud code. Então, em alguns
3:37:06casos, como esse daqui, que é algo feito
3:37:08unicamente para você e que não é algo
3:37:09que você quer de forma totalmente
3:37:10autônoma, ou seja, você pode pegar aqui
3:37:12o link, mandar para ele pedir para ele
3:37:14gerar o vídeo, acaba que para você é
3:37:16mais fácil utilizar o Cloud Code, porque
3:37:18assim ele vai ter muito mais facilidade
3:37:19para criar toda essa solução e você
3:37:21também vai ter muito menos custos,
3:37:23porque nesse caso, por exemplo, com a
3:37:24skill rodando no nosso computador, a
3:37:25gente consegue rodar o modelo local ali
3:37:27sem ter que pagar para anima. E a gente
3:37:29também consegue utilizar o próprio Cloud
3:37:31Code para analisar e gerar esse conteúdo
3:37:33sem que eu tenha que gerar um prompt ali
3:37:34muito bom, sem que eu tenha que depois
3:37:36pagar ali para tropicia API, somente com
3:37:38a assinatura que a gente já tem aqui do
3:37:40cloud, OK? Então por isso é muito bom,
3:37:42por isso é muito vantajoso em alguns
3:37:44casos quando, por exemplo, é algo mais
3:37:45para você de fato você utilizar uma
3:37:47skill para construir o que você precisa
3:37:49do que você realmente construir todo um
3:37:51software, tá bom? Então acaba sendo mais
3:37:53fácil você criar skill e utilizar esse
3:37:54recurso através do cloud code, tá bom?
3:37:56Isso daqui é algo que muita gente tem
3:37:57feito, que é o quê? Criar agentes
3:37:59completos, agentes pessoais completos
3:38:01que roda ali no cloud code com várias
3:38:03funcionalidades, interagindo com várias
3:38:04ferramentas, MCPs e várias skills que
3:38:07ajudam ele a ser mais produtivo no dia a
3:38:09dia. E ele basicamente conversa e pede
3:38:10essas coisas pro cloud com muita muita
3:38:12facilidade. Ok? Então vamos lá. Agora eu
3:38:14já falei demais também, né? Vamos abrir
3:38:16aqui a minha tela pra gente ver como é
3:38:17que a gente quer essa skill. Basicamente
3:38:19aqui eu vou criar um novo projeto dentro
3:38:21do meu antig, ok? Então eu venho aqui em
3:38:23open folder e aqui vai ser, deixa eu ver
3:38:25aqui na minha pasta do anti gravery,
3:38:27onde eu guardo tudo e eu vou colocar
3:38:28aqui o nome como skill curso gratuito,
3:38:32tá? Depois eu vou utilizar ela, não tem
3:38:33muita importância aqui o nome agora,
3:38:34depois é só transferir para um outro
3:38:36projeto. Vou abrir aqui essa pasta, vou
3:38:38selecionar ela e a gente já vai começar
3:38:40a trabalhar em cima do nosso projeto,
3:38:42OK? Agora o primeiro passo é vir aqui no
3:38:44cloud e trabalhar com ele. Que que eu
3:38:45quero dessa skill? Então, a gente vai
3:38:46fazer o mesmo processo que a gente fez
3:38:47anteriormente. E como você pode reparar
3:38:49ao longo desse curso, é que você não
3:38:51precisa de fato saber exatamente como
3:38:53construir ou o que utilizar. Ah, o que
3:38:55você precisa saber é o que você quer de
3:38:57fato e também saber comunicar isso
3:38:59paraá. Então aqui eu vou começar a
3:39:01conversar com o Cloud pra gente
3:39:02desenvolver um plano, pensar no que a
3:39:03gente pode eh utilizar para construir
3:39:05aqui essa skill, OK? E a gente vai
3:39:07conversando aqui da mesma forma que a
3:39:08gente fez com o software. A gente quer
3:39:09primeiro o planejamento no cloud normal,
3:39:11porque a gente vai gastar menos
3:39:12créditos, vai ser um pouco mais rápido e
3:39:14mais barato pra gente e depois a gente
3:39:15cria de fato a skill com o cloud code,
3:39:18ok? Então um ponto muito importante aqui
3:39:19que eu quero citar, por que que eu venho
3:39:21pro cloud aqui primeiro, tá? Porque eu
3:39:23gosto muito de um planejamento prévio.
3:39:24Eu não gosto muito de gastar o cloud
3:39:26code para fazer esse planejamento sem
3:39:27ter uma direção, pelo menos do problema.
3:39:29Então, por exemplo, qual biblioteca a
3:39:32gente pode utilizar do YouTube, etc? Tá?
3:39:33Tá? Então prefiro vir aqui e primeiro
3:39:35conversar com ele para fazer esse
3:39:37primeiro planejamento, esse esboço
3:39:38inicial e depois a gente vai ir lá pro
3:39:39cloud code que a gente vai gastar um
3:39:41pouquinho mais ali por conta de toda a
3:39:42estrutura do cloud code e tudo que ele
3:39:44carrega de contexto, ok? Vou começar
3:39:46aqui a conversar com o cloud. Cloud,
3:39:48seguinte, eu quero construir com você
3:39:50uma skill que basicamente vai receber o
3:39:52link de um vídeo do YouTube, vai baixar
3:39:54o áudio dessa skill, depois ela vai
3:39:57transcrever o áudio dessa skill
3:39:59utilizando algum modelo de transcrição
3:40:01de áudio local no meu computador, ok? E
3:40:03depois eu quero que esse mesmo agente
3:40:05consiga criar um res pro Instagram. Eu
3:40:08quero que você não crie nada dessa
3:40:10skill. Você basicamente vai me ajudar
3:40:11com o direcionamento dessa skill pro
3:40:13cloud code. E um ponto muito importante
3:40:15é o processo inicial é esse, é pegar o
3:40:18link, transcrever e depois gerar o
3:40:20reels. Como que eu gosto que gere o
3:40:21reels? Basicamente eu gosto que todo
3:40:23reals tenha um gancho muito forte.
3:40:25Então, nos primeiros três a 5 segundos,
3:40:27precisa ter algo que chame atenção, que
3:40:30gere curiosidade e faça a pessoa querer
3:40:32saber mais sobre aquilo, ok? Então, como
3:40:34eu fiz tal coisa ou o meu modo para
3:40:36fazer tal coisa ou essa coisa aqui vai
3:40:38mudar sua vida? Algo nesse sentido, OK?
3:40:41Depois eu gosto sempre de ter alguma
3:40:43troca. Então, por exemplo, no meu caso,
3:40:45eu produzo vídeo sobre cloud Code pro
3:40:47Instagram. Eu gosto sempre que eu falei
3:40:49alguma coisa no gancho, eu já troco pra
3:40:51minha tela para mostrar, para dar mais
3:40:53dinâmica pro vídeo. Então eu troco,
3:40:55mostro alguma coisa e após eu mostrar
3:40:57mais ou menos ali o que que é, eu já
3:40:59quero fazer um CTA, uma chamada para
3:41:01ação para que a pessoa comente alguma
3:41:02coisa, para que ela interaja no meu
3:41:04vídeo e também ela receba algo em troca
3:41:05por isso. Depois eu quero desvolver o
3:41:07conteúdo. Então, por exemplo, se a gente
3:41:09tá falando sobre uma skill, sobre alguma
3:41:10coisa, primeiro eu começo falando da
3:41:12skill, depois eu aprofundo de fato no
3:41:13que ela faz. Depois que eu tô falando
3:41:15ali sobre o que ela faz, aí sim e eu
3:41:19faço todo o desenvolvimento, né? E a
3:41:20gente vai pro encerramento do vídeo,
3:41:21onde eu faço CTA de novo para comentar
3:41:23alguma coisa. Basicamente esse é o meu
3:41:25processo. Eu quero que você me ajude a
3:41:26esboçar essa skill antes de levar pro
3:41:28cloud Code realmente produzir ela. E
3:41:30caso você tenha alguma dúvida, eu tenha,
3:41:32precise de mais informações, me
3:41:33pergunte. Então, basicamente aqui acabei
3:41:35de até falar todo o meu processo de
3:41:36criação de conteúdo pro Instagram, tá?
3:41:39Mas tudo bem, não tem problema. que
3:41:41qualquer um consegue reparar nos vídeos
3:41:42ou analisar com hoje em dia. Não é nada
3:41:44de extrema inteligência, mas é o que
3:41:46aconselho de falar aqui para ele criar
3:41:48essa skill, até porque depois eu mesmo
3:41:50vou utilizar ela, ok? Aqui dentro eu já
3:41:52tenho uma skill, então ele já consegue
3:41:54ter uma direção do que que ele precisa,
3:41:56né, de como que é meu roteiro e tudo
3:41:58mais. Aqui ele tá definindo a
3:42:00arquitetura da nossa skill, que vai ser
3:42:01basicamente o quê? O RL do YouTube,
3:42:03baixar um áudio. Então aqui ele já tá
3:42:05mostrando essa biblioteca do YouTube,
3:42:07OK? Que é YT traço DLP. Eu já utilizei
3:42:10ali outro projeto que realmente é muito
3:42:11boa. Transcrever localmente, V Whisper,
3:42:13analisar o conteúdo da descrição, gerar
3:42:15um roteiro de whels e depois o output
3:42:17formatado pronto para gravar. Então,
3:42:19beleza. Aqui ele tem a a etapa, a stack
3:42:22técnica, gestão de roteiro, tudo mais,
3:42:25eh, estrutura de arquivos da skill,
3:42:27beleza? Tá aqui, ó, é script, download
3:42:29transcribe, é referência, beleza? Aqui
3:42:33as instruções pra gente, o fluxo
3:42:35detalhado do skill. MD. Então beleza.
3:42:38Então pergunta que ele precisa me fazer
3:42:39antes de ir pro cloud code. Então sim,
3:42:42eu tenho GPU. Eu quero que você utilize
3:42:45o Médium. Basicamente que ele me
3:42:46perguntou se eu tenho GPU. Por quê? GPU
3:42:48para quem não sabe é uma placa de vídeo
3:42:49e todo modelo de inteligência artificial
3:42:51necessita de placa de vídeo para ele
3:42:52conseguir gerar bem aqui os seus tokens.
3:42:55Então assim, você pode gerar, por
3:42:58exemplo, utilizar um modelo de
3:42:59inteligência artificial local sem GPU,
3:43:01porém fica muito muito pesado para que
3:43:02ele processe e que ele gere ali ali tudo
3:43:04que você precisa, tá? Então, quando você
3:43:06tem uma GPU, ele gera muito mais rápido.
3:43:08E, basicamente, GPU e memória RAM são
3:43:10duas coisas fundamentais para que você
3:43:11consiga eh utilizar modelos localmente,
3:43:14tá bom? Idioma dos vídeos, tá? Vai
3:43:17transcrever só PTBR ou também em inglês?
3:43:19Eh, eu quero que você utilize para
3:43:22português e para inglês, tá? Aqui eu vou
3:43:24usar como exemplo português, mas também
3:43:28vai ser legal ter algo para inglês.
3:43:29Depois a gente pode inclusive testar
3:43:30aqui no nosso curso. Output final. Você
3:43:32quer que o salve roteiro em ponto mdrima
3:43:34no terminal ou os dois? Eu quero que ela
3:43:36salve o roteiro em ponto MD. O CTA
3:43:38padrão, a palavra chave do CTA, tipo uso
3:43:41que passar normalmente. Ela pode gerar
3:43:43automaticamente. Eu vou falar para gerar
3:43:45automaticamente porque eu quase nunca
3:43:47uso. Eu mesmo que defino depois eu
3:43:48analiso com com o projeto, então não tem
3:43:50muito problema, tá? e não estão
3:43:53instalados na minha máquina, mas é legal
3:43:54que tem um script de setup também para
3:43:56caso eu queira compartilhar ela com
3:43:57alguém. Esse aqui é algo legal que ele
3:43:59já pensou na parte das dependências das
3:44:01bibliotecas do código. É legal que a
3:44:02gente utilize aqui na skill. É, por
3:44:04exemplo, nesse caso vai ser uma skill
3:44:05muito pessoal, muito para mim mesmo, mas
3:44:07caso você vai fazer alguma skill que
3:44:08utilize algum recurso a mais, é legal
3:44:10que você já tenha tudo preparado pra
3:44:12pessoa para que ela não tenha que
3:44:13instalar nada ou se preocupar com nada,
3:44:15tá bom? Então a pessoa já utiliza ali na
3:44:18de forma automática através do do seu
3:44:21projeto mesmo da skill, ok? E no final
3:44:24que eu quero comentar o seguinte: lembre
3:44:26que essa skill ela vai ser construída
3:44:27toda pelo Cloud Code e ele mesmo vai
3:44:29utilizar essa skill no meu dia a dia.
3:44:32Quando eu pedir para ele vir aqui e
3:44:33agora vou pedir gere basicamente um
3:44:35cloud.m e um arquivo de iniciação para
3:44:37eu jogar no cloud, tá? Que aqui eu quero
3:44:39basicamente o quê? Eu quero que ele me
3:44:40gere aquele cloud MD que a gente já
3:44:41falou para ele tomar um contexto melhor
3:44:43do projeto, OK? E eu quero também que
3:44:45ele me gerequivo de iniciação pra gente
3:44:47jogar no cloud. Então a gente vai ter
3:44:48ali a descrição do projeto, o que que a
3:44:50gente vai utilizar e tudo mais. E depois
3:44:52vai ter aqui um prom de inicialização
3:44:54para que o nosso agente comece a
3:44:56construir de fato a nossa skill, ok?
3:44:58Então aqui ele trouxe esboço final,
3:44:59setup, download, transcribe, beleza? O
3:45:02que cada um deles vai fazer e aqui o
3:45:04prompt de briefing para você colar no
3:45:05cloud code. Deixa eu ver. Beleza, vamos
3:45:08lá. Eu não sei se aquele já tá gerando
3:45:10cloud MD ou se ele vai gerar.
3:45:13MD. Ok, não criei nada ainda. Mostra
3:45:16primeiro personalidade. Ã, OK, cara.
3:45:18Deixa eu só conferir aqui. Basicamente,
3:45:20roteiro de rios, transição, mais CTA,
3:45:22conteúdo principal, encerramento,
3:45:24roteiro final, estrutura de arquivos, tá
3:45:27OK? É mais ou menos isso mesmo. OK.
3:45:30Então, eu vou copiar isso daqui. Agora
3:45:33eu vou levar lá pro cloud code, então
3:45:35vou abrir aqui o meu cloud code aqui
3:45:37dentro. Ele não gerou o ponto MD. E
3:45:40nesse caso aqui também não vou utilizar.
3:45:41Por quê? Aqui eu quero que basicamente
3:45:43ele me auxilie no meu dia a dia, tá?
3:45:44Então, por mais que aqui a gente esteja
3:45:45focando nessa skin específica, eu quero
3:45:47mostrar como que vocês podem eh
3:45:49utilizar, por exemplo, de um agente no
3:45:50cloud code para ser o seu assistente
3:45:52pessoal no seu dia a dia, é com skills,
3:45:54executando tarefas e tudo mais, tá bom?
3:45:56Então, a gente vai gerar um cloud MD
3:45:57depois. Nesse caso aqui, eu quero focar
3:45:59em fazer a skill, mas na verdade não.
3:46:02Acabei de mudar de ideia. Na verdade, eu
3:46:03vou primeiro gerar esse cloud MD sobre
3:46:05mim, contando quem eu sou, o que que eu
3:46:06faço pra gente colocar aqui e depois a
3:46:09gente começa a desvolver a skill, OK?
3:46:10vai acabar que a gente vai ir pro
3:46:11projeto muito mais de como criar um
3:46:13agente pessoal no Cloud Code do que como
3:46:15criar uma unic skill, mas tudo bem, vai
3:46:17ser bem legal para você ver como que
3:46:19você pode fazer isso para você. Então
3:46:20aqui basicamente eu vou pedir para ele
3:46:21me gerar um cloud.m e com algumas
3:46:23informações sobre mim para que esse
3:46:25agente tenha um contexto melhor. Cara,
3:46:26agora eu quero que você me ajude a gerar
3:46:28um documento cloud.m para que eu coloque
3:46:30dentro do meu projeto e eu quero
3:46:32utilizar ele como um assistente pessoal
3:46:34meu pro dia a dia, OK? Então,
3:46:36basicamente, eu vou pedir várias coisas
3:46:37para ele, eu vou poder ter ele como
3:46:38assistente e parte disso é ter essa
3:46:40skill. Então, esse cloud MD ele não deve
3:46:42ser focado nessa skill, ele deve ser
3:46:44focado em mim, em quem eu sou, é, no
3:46:46usuário que vai utilizar essa skill e
3:46:48detalhes importantes sobre mim.
3:46:50Basicamente, meu nome é Lucas, eu
3:46:51trabalho com inteligência artificial,
3:46:52criando soluções de a para outras
3:46:54empresas, eh, como estrategista de a,
3:46:56então, a gente analisa empresas, analisa
3:46:57os negócios dela, analisa os processos
3:46:59que elas têm internamente, identificamos
3:47:01gargalos e com isso nós propomos
3:47:03soluções de inteligência artificial. E
3:47:05basicamente eu trabalho hoje em dia
3:47:06tanto na parte de implementação de A,
3:47:08quanto também produzindo conteúdo pro
3:47:09YouTube e pro Instagram e sobre
3:47:11inteligência artificial, sobre cloud
3:47:13code, etc. E enfim, sobre mim é
3:47:16basicamente isso. Quero que você crie um
3:47:17arquivo cloud.m. Eu poderia falar mais
3:47:20sobre mim aqui, mais coisas, mas de
3:47:21cabeça assim, por enquanto não vei muita
3:47:23coisa. Mas tudo bem, vou mandar aqui
3:47:25para ele só pra gente ver o que o que
3:47:26ele vai gerar e já tá excelente pra
3:47:28gente começar. E lembre sempre que,
3:47:30cara, quando a gente fala de um
3:47:31software, quando a gente fala de um
3:47:32agente, uma skill, isso daqui é algo que
3:47:34a gente sempre pode ir melhorando com o
3:47:36tempo. Então, por exemplo, quando a
3:47:37gente fala do software que a gente fez,
3:47:39a Members Club, cara, ali a gente tem um
3:47:43projeto inicial, OK? Então, por exemplo,
3:47:45a gente consegue mostrar ali, então a
3:47:46gente consegue ter ali todo um processo
3:47:48da gente criar a primeira versão do
3:47:49nosso software e a gente sempre pode ir
3:47:50melhorando, incluindo novas coisas e
3:47:52aprimorando cada área dele, OK? Aqui ele
3:47:55me fez algumas perguntas, então o tom,
3:47:57as áreas e a meta de 20.000 por mês, tá?
3:47:59Que essa aqui eu nem vou incluir aqui
3:48:00porque a gente já alcançou ela, então eu
3:48:02prefiro deixar por fora, é deixar de
3:48:04fora no caso, porque não tem porque
3:48:06incluir uma meta que a gente já atingiu.
3:48:07Então vamos deixar aqui rodando para ele
3:48:09criar esse cloud. MD enquanto isso eu já
3:48:11vou fazendo aquele setupzinho aqui que a
3:48:13gente faz, que é basicamente o quê?
3:48:15Ativar o thinking, que nesse caso já tá
3:48:16ativado. Eu tinha desativado hoje para
3:48:18um outro projeto, mas já que tá ativo,
3:48:20tudo tranquilo. As o modo aqui de de
3:48:23ação do cloud code eu vou colocar no
3:48:25plan mode para ele planejar, OK? E
3:48:27enquanto ele cria aqui o código. MD, eu
3:48:29já vou copiar esse conteúdo aqui e
3:48:32colocar aqui como um prompt para ele.
3:48:34Aqui ele vai planejar só esperar o
3:48:36cloud. MD ficar pronto, porque assim a
3:48:37gente tem algo mais eh completo aqui
3:48:40para que a gente possa eh trabalhar de
3:48:42fato. OK? Então vamos ver aqui o que o
3:48:44que ele gerou. Então Lucas que saladas.
3:48:48Eu vou remover essa parte porque lá ele
3:48:49não vai ter. Beleza. Visual prar
3:48:51conteúdos que deve fazer. Tá. Eu vou
3:48:54remover aqui algumas coisas. Deixa eu
3:48:56copiar aqui. Eu vou criar o nosso
3:48:57arquivo cloud.md, OK? Lembra, a gente
3:49:00tem que colocar ele aqui em maiúsculo
3:49:01para ficar mais fácil de de o próprio
3:49:03cloud identificar. E vamos ver aqui o
3:49:06que que a gente tem. Assim, pessoal do
3:49:08Lucas, não assistente genérico. Você
3:49:09conhece o contexto dele, as ferramentas
3:49:10que ele usa, como ele pensa que ele tá
3:49:11construindo. Beleza? O que que eu faço?
3:49:13Stack principal, essencialidades, como
3:49:15você deve se comportar. Deixa eu colocar
3:49:17aqui. Vou colocar uma coisa que é nunca
3:49:19concorde diretamente com Lucas. Você
3:49:21sempre deve analisar o que ele tá
3:49:23comentando com você ou o contexto e
3:49:26sempre ser crítico e falar a verdade.
3:49:29Nunca simplesmente falar: "Ei, você está
3:49:30certo". E esse é o melhor caminho.
3:49:32Sempre analise, seja crítico como um
3:49:35mentor. Só remover essa parte aqui, tá?
3:49:37Eu poderia colocar aqui algo mais
3:49:39detalhado em Mark. Vou colocar. Beleza.
3:49:42É a área que você atua. Criação de
3:49:43conteúdo, desenvolvimento, espesso e
3:49:45positividade.
3:49:47Ã, beleza? Disponíveis, tá? visual que
3:49:50você não deve fazer, tá? Vou remover só
3:49:51essa parte de skills disponíveis porque
3:49:54eh não tem porque eu incluir isso daqui
3:49:55aqui, né? Porque já vai ter as próprias
3:49:57skills que vão ser iniciadas no contexto
3:49:59dele. Então aqui agora eu vou dar um
3:50:00contrtrl S para salvar e para que ele
3:50:02consiga acessar tudo isso daqui e vou
3:50:05mandar aqui o pront para que ele crie o
3:50:07nosso planejamento primeiro dessa skill
3:50:08e depois ele comece a executar de fato.
3:50:12E aqui, na verdade eu até esqueci de uma
3:50:14coisa. Eu vou deixar ele rodar aqui
3:50:16assim. Na verdade não, vou pausar ele e
3:50:18eu vou iniciar uma nova sessão aqui do
3:50:20Cloud, tá? Porque um ponto muito
3:50:22importante que eu esqueci de comentar
3:50:23com vocês é que o Cloud consegue gerar
3:50:25skills muito boas graças a uma skill que
3:50:27cria skills feita pela própria antropic.
3:50:30Então a gente vai ter aqui por barra
3:50:31plugins na nossa área aqui, clica em
3:50:34manage plugins, OK? E aquele mesmo
3:50:36marketplace que a gente instalou pro
3:50:37front design e para super base, a gente
3:50:39vai pesquisar aqui dentro por, deixa eu
3:50:41ver, creator skill creator, que é
3:50:43basicamente uma skill feita para te
3:50:45ajudar a criar e skills e te ajudar no
3:50:48seu dia a dia com as skills. Então ela
3:50:49tem todo aqui um sistema de agentes de
3:50:51criação de skills e tudo mais, OK? Então
3:50:53ele realmente vai ajudar o Cláudio a
3:50:55criar skills, skills muito melhores com
3:50:57isso daqui. Aqui eu vou colocar um barra
3:50:59contact só para ter certeza que tá aqui,
3:51:01ó, skill creator. Então tá aqui dentro a
3:51:03nossa skill. A gente pode utilizar esse
3:51:04barra context para visualizar o que que
3:51:06ele tem acesso tanto de MCP como por
3:51:08exemplo de skills. Ok? E agora eu vou
3:51:10colar novamente aquele prompt ali, tá?
3:51:13Então deixa eu pegar aqui o prompt,
3:51:15beleza? E aqui eu vou colocar no plan
3:51:17mode e agora sim eu vou mandar para ele
3:51:19executar. Agora ele tá com a skill
3:51:21creator. Então ele já vai pensar, já vai
3:51:23entender que ele precisa da skill
3:51:24creator para poder me ajudar na criação
3:51:27desse prompt, ok? E aqui tá um ponto
3:51:29muito importante. E por enquanto a gente
3:51:31só tá explorando aqui o que a gente
3:51:32precisa.
3:51:33Mas eu vou querer que depois quando a
3:51:35gente for criar de fato a skill, eu vou
3:51:37falar para ele não testar a skill. Por
3:51:39quê? Por padrão, essa skill creator, ela
3:51:42possui um uma característica dela que é
3:51:44muito legal, que é o quê? Ela traz tanto
3:51:46o skill. MD, que indica como que ele
3:51:48deve eh utilizar essa skill, como ela
3:51:50também traz para ele a criação de
3:51:52subagentes, que é o que a gente vai ver
3:51:53daqui a pouco, depois que a gente ver
3:51:55essa parte de criação de skills. E o que
3:51:56acontece quando o Cloud usa essa skill
3:51:59de criação de subagentes, ele acaba
3:52:00criando vários agentes para testar esse
3:52:02nosso skill. Então, por exemplo, já teve
3:52:04um caso aqui que eu utilizei essa skill
3:52:05e ele criou seis suagentes para testar
3:52:08uma skill de análise de negócios. Então
3:52:10ele fez análise de negócios com seis
3:52:13agentes. Então eram basicamente três
3:52:15casos diferentes. Ele fazia uma análise
3:52:17de negócio com o com a skill, utilizando
3:52:20a skill, e outra análise de negócio sem
3:52:22utilizar a skill. Ia fazendo isso com
3:52:24cada um dos agentes. Então ele
3:52:25basicamente tinha três casos de uso e
3:52:27para cada caso de uso ele fazia análise
3:52:29com skill e sem skill. E cara isso daqui
3:52:31consumiu muito dos meus créditos. Eu
3:52:33quase fiquei sem poder utilizar ele por
3:52:35umas du 3 horas. Então, nesse caso aqui,
3:52:37eu não quero fazer isso até para não
3:52:38atrapalhar o meu fluxo e também para não
3:52:39atrapalhar o fluxo de vocês. Já é um
3:52:41aviso que eu deixo aí para vocês, porque
3:52:43realmente se você utilizar isso aqui,
3:52:44você vai ter um probleminha, tá bom?
3:52:46Então é bem legal que a gente evite isso
3:52:48daqui, principalmente nesse caso. É uma
3:52:50funcionalidade muito legal, mas quando
3:52:51você tá criando algo para você mesmo ou
3:52:53por exemplo nesse caso aqui, que é algo
3:52:54de certa forma simples, né, muito
3:52:56complexo, realmente eu prefiro que ele
3:52:59não faça isso para não ter nenhum
3:53:00problema. OK? Então aqui ele tá criando
3:53:03a skill, tá criando a skill? Acho que
3:53:05ele tá criando o plano na verdade, né?
3:53:07Vamos só conferir aqui. Beleza. Acho que
3:53:09ele tá procurando o diretório, na
3:53:11verdade, para entender ali e o que que a
3:53:13gente tá fazendo e como que a gente faz,
3:53:14tá? Eu vou deixar ele aqui planejando.
3:53:16Quando ele estiver com o plano pronto,
3:53:17eu volto e falo com vocês. Ó, ele ainda
3:53:19não terminou de criar o plano, mas ele
3:53:21já tá criando aqui a parte do plano
3:53:22mesmo, já tá começando a montar. Porém,
3:53:24é algo que eu gostaria de falar com
3:53:25você, que é o seguinte: por que que eu
3:53:26gosto de ir lá pro cloud para começar a
3:53:28conversar primeiro com ele? Porque pelo
3:53:30menos uma impressão que eu tenho aqui,
3:53:31né? Pode não ser bem verdade, mas é uma
3:53:33impressão que eu tenho é que quando a
3:53:34gente usa o cloud para fazer pesquisa na
3:53:36internet, ele não é um modelo muito bom
3:53:38para isso, tá? Eu particularmente
3:53:39prefiro o Gemini, prefiro o GPT para
3:53:41fazer pesquisa na internet. Então quando
3:53:43quando eu quero que ele acesse um site,
3:53:44verifique alguma coisa, eu prefiro muito
3:53:46mais o GPT, muito mais o Gemini do que o
3:53:48próprio cloud, principalmente o cloud
3:53:50Code, tá? Ele funciona bem, ele até
3:53:52consegue, por exemplo, com a skill
3:53:53certa, com as ferramentas certas,
3:53:55acessar o seu navegador e interagir com
3:53:56ele, porém eu não sinto que ele consiga
3:53:58realmente extrair o melhor disso, tá?
3:54:00Então eu realmente gosto, por exemplo,
3:54:03de ter eh esse controle aqui de primeiro
3:54:05ir lá no cloud, primeiro discutir, ele
3:54:07já me trazer, por exemplo, uma ideia
3:54:09inicial, me trazer alguns fundamentos da
3:54:11ideia que a gente vai utilizar do que
3:54:12vir aqui direto nele, ok? Então aqui ele
3:54:15já gerou o planejamento, tá? Basicamente
3:54:17do skill.md. Deixa eu ver se ele gera
3:54:19aqui aquele formatinho que abre em outra
3:54:20guia ou não, tá? Vamos ver. Skill.
3:54:24Incluir o agente, incluir o agente a
3:54:27executar. Calma aí. Eh, o fluxo em
3:54:29quatro passos. Baixar áudio, tem
3:54:30escrever, gerar roteiro, OK? Salvarem.
3:54:32MD, beleza? Arquivo de inicialização
3:54:35leve. Explica o que se eu faço quando é
3:54:36ativada. Beleza. Script./setup. Scripts,
3:54:39scripts e referências. OK. Não deve ser
3:54:43cloud.md, deve ser skill.mmd. Mas qualqu
3:54:46coisa a gente altera isso depois. Então,
3:54:48sem ptbr, que é o que eu quero. Eh, onde
3:54:51você vai rodar esse aqui no dia a dia,
3:54:52vai ser no WSL, que vai ser o Windows,
3:54:55tá? Pelo menos no meu caso aqui. Beleza?
3:54:57Vamos ver o que ele vai gerar aqui, tá?
3:55:00Tá. Ah, beleza. Ele tem o skill.md e
3:55:02também tem o cloud.md.
3:55:04Interessante, tá? A primeira vez que eu
3:55:06vejo ele sugerindo isso, mas só que
3:55:09deixa eu ver o que ele vai colocar no
3:55:10skill. MD. Cara, não acho que precise de
3:55:12fato, até porque o principal conteúdo
3:55:14bruto vai tá aqui dentro do skill. MD,
3:55:17que é basicamente o nome da skill e
3:55:19quando utilizar. Mas tudo bem, eu vou
3:55:21aqui aceitar e a gente vai ver o que ele
3:55:23vai gerar de fato, OK? Inclusive, cara,
3:55:25é uma coisa que eu não fiz aqui, tá?
3:55:27Quero que era justamente pedir para ele
3:55:29não testar, mas eu acho que aqui ele só
3:55:32criou mesmo o plano para criar as
3:55:33coisas. Ele não vai testar nada do tipo.
3:55:36Então beleza, vamos deixar ele aqui
3:55:38criando. Quando ele criar tudo eu volto
3:55:39com você. Só para mostrar um erro que eu
3:55:40comentei aqui com vocês até um aviso, eu
3:55:43falei sobre aquele whisper flow para
3:55:44você poder falar e ele aqui gerando essa
3:55:47transcrição do que do que eu sai
3:55:48falando, né? Porém, um ponto muito
3:55:50importante sobre ele é o seguinte.
3:55:51Quando você sai falando aqui com algum
3:55:52chat, principalmente do cloud, tá
3:55:54falando aqui. Aí vamos supor o que você
3:55:56terminou de falar. você mudou para ele e
3:55:57aí por algum motivo você acabou clicando
3:55:59novamente no seu atalho aqui para ele
3:56:00começar a gerar o seu texto, né, a sua
3:56:02transcrição. Vai falando aqui e ele vai
3:56:03gerando a transcrição. Se você apertar o
3:56:05ESC, o cloud para de gerar, tá? Então o
3:56:07ESC, quando você aperta o ES, ele para
3:56:09automaticamente de gerar. Eu tô
3:56:10comentando isso porque eu acabei de
3:56:11fazer isso. Eu tive aqui que dar um
3:56:12continue para ele, porque eu acabei
3:56:14interrompendo sem querer o que ele tava
3:56:16fazendo. E eu já fiz isso aqui várias
3:56:17vezes. Eu comecei a falar aqui ou alguma
3:56:19coisa do tipo, vim aqui no cloud,
3:56:21apertei o ESC e simplesmente perdi tudo
3:56:22que eu tinha, tá? Então, clica aqui no
3:56:24cancelar e não aperta o ES porque senão
3:56:26ele vai parar a sua tarefa. Turma, ele
3:56:28terminou aqui de criar skill, tá? Por
3:56:29algum motivo ele não colocou aqui já pro
3:56:31cloud code, então vou falar para ele
3:56:33basicamente instalar essa skill aqui
3:56:34para ele no projeto. OK? Muito bem.
3:56:37Agora eu quero que você crie essa skill
3:56:39aqui dentro desse projeto. Você faça o
3:56:40download da skill dentro do nosso
3:56:42projeto para que você mesmo possa
3:56:43utilizar aqui dentro. Pedi para ele
3:56:45fazer o download da skill dentro do
3:56:46projeto. OK. Vou mandar aqui para ele só
3:56:49para que ele faça a instalação da skill
3:56:51pro cloud code e tudo mais. Tur, um
3:56:52ponto importante aqui, duas coisas que
3:56:54podem acontecer com você quando você
3:56:55tiver criando skills e algo do tipo, é o
3:56:57seguinte, tá? Primeira coisa, que nem
3:56:59nesse caso aqui, eu pedi para ele criar
3:57:00skill, ele não criou aqui no projeto,
3:57:02ok? É a primeira coisa que pode
3:57:03acontecer. E a segunda é que nesse caso
3:57:05ele não fez o sin link, tá? O sin link é
3:57:08basicamente que permite aqui o cloud,
3:57:10quando você vier aqui iniciar uma nova
3:57:11sessão, por exemplo, iniciei aqui uma
3:57:13nova sessão, vou dar um barra context,
3:57:15OK? Aqui ele marcaria essa skill. Então,
3:57:18por exemplo, percebam que aqui eu tenho
3:57:20front design, eu tenho aqui o creator,
3:57:22aqui eu tenho, por exemplo, o próprio
3:57:24MCP do Supas, tudo isso ele já sabe que
3:57:27ele tem, já é, já é colocado dentro do
3:57:30contexto dele logo que ele inicia aqui
3:57:32dentro, OK? Porém, como nesse caso aqui
3:57:34não tá aparecendo a skill de de YouTube,
3:57:37se eu pesquisar para ele o seguinte,
3:57:39você tem acesso à skill do YouTube? Vou
3:57:41mandar para ele aqui. Provavelmente ele
3:57:43vai falar que ele não tem porque não
3:57:44aparece aqui inicialmente. Talvez ele
3:57:46tenha que pesquisar aqui dentro para
3:57:48falar que tem. Ó, ele falou que não tem,
3:57:49falou que somente essas skills que ele
3:57:51tem acesso. Então vou pedir aqui pro
3:57:52Cloud para ele fazer esse link, essa
3:57:54conexão para que sempre que iniciar uma
3:57:55nova sessão, ele receba essa skill, OK?
3:57:58Sempre que você, deixa eu só falar aqui
3:58:00com ele, na verdade, né? Eu quero que
3:58:02você faça o sim link para que sempre que
3:58:05eu iniciar uma nova sessão aqui dentro
3:58:06desse projeto, ele realmente consiga
3:58:08captar essa skill. O que acontece agora
3:58:10é que, por exemplo, quando eu crio uma
3:58:12nova sessão, o meu agente ele não tá com
3:58:13essa skill já indexada dentro dele. Ele
3:58:16não tem a percepção que ele tem acesso a
3:58:18esse skill. Então eu preciso que você
3:58:20faça o sem link para que qualquer sessão
3:58:21minha dentro do projeto tenha acesso a
3:58:24essa skill. Vamos dar aqui para ele. Eu
3:58:26poderia falar de forma mais simples, com
3:58:27menos detalhes e tudo mais, mas eu gosto
3:58:29sempre ser mais detalhista possível para
3:58:31que a gente tenha os melhores resultados
3:58:33possíveis também, ok? Então vamos
3:58:35esperar que ele fazer essa parte e a
3:58:36gente vê se realmente funcionou ou não.
3:58:37Ó, ele falou que fez isso, adicionou
3:58:39aquela parte lá no final. Então beleza,
3:58:41a gente precisava, só que não daquele
3:58:42modo que o primeiro cloud fez, tá? Que a
3:58:44gente fez lá no no cloud chat. Agora vou
3:58:47vir aqui numa nova sessão, vou digitar
3:58:49barracxt. Deixa eu ver. Cloud PI, ó, na
3:58:53verdade não. Vamos ver aqui. MCPs. MCPs.
3:58:56Projectcloud.md.
3:58:58Deixa eu perguntar para ele a mesma
3:58:59coisa que eu perguntei para esse outro,
3:59:00pra gente ver se ele de fato tem acesso
3:59:02ou não. Vamos pesquisar aqui. Ah,
3:59:04beleza. Ele tem acesso, né? Mesmo que
3:59:05não apareça aqui. Então ele realmente
3:59:07puxou do cloud ponto aqui, ó, do memory
3:59:09files, ele tem, tá vindo aqui, eh, do
3:59:11cloud.md, tá? Então, aqui na parte de
3:59:13memórias tem aqui o skills.md que
3:59:16informa para ele. Então, vou mandar aqui
3:59:18uma URL que eu já tenho, que eu peguei
3:59:20desse vídeo meu aqui. Esse take não me
3:59:22valorizou muito bem. Vou pegar esse URL,
3:59:25vou mandar para ele, tá? e vou colocar
3:59:27aqui. Basicamente aqui eu falo sobre o
3:59:29barra o cloud code review. Achei que era
3:59:31uma outra funcionalidade, mas não. Aqui
3:59:33eu tô falando sobre o Cloud Code Review,
3:59:35que basicamente é uma funcionalidade do
3:59:36Cloud Code pros planos Teams e
3:59:38Enterprise, onde quando você faz um PR
3:59:40lá no GitHub, ele automaticamente
3:59:42percebe que tem essa PR e analisa todo o
3:59:45seu código para ver se tem algum bug,
3:59:46algum erro ou algo do tipo. Todo o
3:59:48código que foi alterado na PR. Tá bom?
3:59:50Então aqui ele falou que tá baixando.
3:59:52Vamos ver
3:59:53de run time. Deixa euar o que tem o
3:59:55nível. Ó, já deu aqui algum probleminha
3:59:57na parte do script, mas vamos ver, cara,
4:00:00o que pode ter sido, tá? Ã, deixa eu
4:00:02ver, ó. Basicamente aqui ele tá
4:00:04encontrando alguns erros, OK? Normal.
4:00:07Que que eu quero aproveitar disso daqui?
4:00:08É normal que, por exemplo, nesse caso
4:00:09que envolve um script tem alguns erros.
4:00:11Então, eu vou querer que basicamente,
4:00:14assim que ele terminar aqui, ele me
4:00:16retorne todos os erros que ele encontrou
4:00:17e melhore a skill, né? Atualize todos os
4:00:20arquivos corrigindo o que ele encontrou
4:00:22aqui de erro. Enfim, mas aqui o problema
4:00:25que tá acontecendo é que ele não tá com
4:00:27acesso às libraries, mesmo tendo aqui o
4:00:30script de setup, né, eu acho que ele não
4:00:33rodou automaticamente. Então a gente
4:00:34teria que pelo menos nós mesmos estar
4:00:36aqui, mas vamos ver o que no que que vai
4:00:37dar aqui, que que ele vai fazer de fato.
4:00:39Turma, que que tá acontecendo aqui? Tá,
4:00:41é, deixei ele rodando aqui, porém ele
4:00:43foi testando várias e várias coisas. Ele
4:00:45ainda tá travado no mesmo passo, que é
4:00:47basicamente, pelo visto, eh, pegar aqui
4:00:49a URL do vídeo e utilizar ela, tá? Então
4:00:52eu vou pedir para ele me explicar qual o
4:00:53erro que ele encontrou aqui, porque ele
4:00:55não tava conseguindo agir. E com isso eu
4:00:57vou tentar melhorar aqui essa skill,
4:00:58melhorar esse código manualmente, né?
4:01:00Manualmente assim, pedindo aqui pela
4:01:01outra sessão do cloud code pra gente não
4:01:02ficar aqui nesse loop dele ficar
4:01:04tentando, tentando que nem maluco sem
4:01:05conseguir. É, me explique quais erros
4:01:08você encontrou e por que você não
4:01:09conseguiu baixar o áudio do vídeo. Vamos
4:01:11mandar aqui para ele e ver o que que vai
4:01:13dar aqui que ele vai falar. Dois
4:01:15problemas on time configurado. YouTube
4:01:17exige que devolva JavaScript proteção
4:01:20antibot challeng antes de liberar o
4:01:21download. Tinha o node instalado na
4:01:23máquina, mas não estava reencontrando
4:01:24ele automaticamente porque o caminho
4:01:25contém espaços. Uhum. Passando caminho
4:01:28manualmente. Ok. YouTube exige po. O
4:01:30origem meu time. Tô lendo aqui, tá todo
4:01:33mundo. Vou ficar lendo cada parte aqui.
4:01:35Mas beleza. Cara, ele me deu essas duas
4:01:37opções aqui. Eu vou copiar isso que ele
4:01:40me mandou e vou voltar lá pro cloud no
4:01:41computador pra gente analisar isso
4:01:42melhor, tá? A gente poderia já falar
4:01:44para ele resolver direto, mandar pro
4:01:45outro, mas eu quero fazer esse trabalho
4:01:47primeiro investigativo aqui com ele para
4:01:48identificar se realmente é isso, porque
4:01:50eu já queria uma solução com essa
4:01:53library do YouTube e nessa e lá eu não
4:01:55tive esse problema, sabe? A gente
4:01:57conseguiu baixar o vídeo, o áudio
4:01:58tranquilamente, sem nenhum problema. Eu
4:01:59acho que pode ser alguma coisa de errado
4:02:01mais a fundo. Então, primeiro eu quero
4:02:03analisar para depois a gente começar a
4:02:04mexer de fato e não ficar tentando
4:02:06corrigir aqui em vão. Então, vou falar o
4:02:09seguinte. Encontrei aqui alguns erros na
4:02:11hora de utilizar esse skill.
4:02:12Basicamente, ele criou todo o script. Eu
4:02:14vou colocar aqui o script para você ter
4:02:15uma noção do que que ele criou. Mas o
4:02:17principal erro tá no script de baixar o
4:02:19vídeo do YouTube, que por algum motivo
4:02:20eu não tô conseguindo baixar. Eu pedi um
4:02:22relatório pro agente, ele me retornou
4:02:24dois pontos possíveis que ele tava
4:02:25encontrando falha e eu quero que você
4:02:27analise e me ajude a pensar numa solução
4:02:29e veja se de fato pode ser isso que o
4:02:30agente falou. Vou utilizar aqui isso. E
4:02:32até é legal que a gente saia daquela
4:02:33sessão, tumor, por quê? Por natureza, o
4:02:35nosso agente, ele pode ter aqui alguns
4:02:37vieses. Então, esse agente aqui que a
4:02:39gente tá utilizando para fazer a
4:02:40pesquisa e esse agente aqui que criou o
4:02:42código, ele pode ter alguns vieses.
4:02:45Então, paraa gente não ter nenhum
4:02:46problema desse tipo de, por exemplo, ele
4:02:47falar que tá certo ou falar que já foi
4:02:49resolvido, eu vou mandar para um outro
4:02:50agente que meio que não tem esse vi, OK?
4:02:52Mandar só a análise do que ele fez e
4:02:55também a parte de baixar o áudio para
4:02:57que a gente possa analisar melhor, OK?
4:02:59Então ele falou que acertou, tudo bem,
4:03:01nesse caso, ele acertou. Pode ser que
4:03:02ele tivesse errado em outros casos, mas
4:03:04ok. Tá, sou mais confiável. Beleza.
4:03:07Deixa eu ver. Deixa deixar tanã. Pode
4:03:09ser. Me entregue o arquivo atualizado.
4:03:12Poderia pedir pelo cloud code, mas como
4:03:14ele já se pronificou aqui, vamos falar,
4:03:16vamos fazer com ele mesmo, já que ele
4:03:18gerou todo o plano muito bem, né? Então
4:03:20a gente já utiliza ele, até porque
4:03:21também é um arquivo pequeno, então só
4:03:23tem aqui 40 linhas de arquivo. Então não
4:03:25acho que tem a necessidade da gente, por
4:03:26exemplo, e realmente levar pro cloud
4:03:28code para aí sim conseguir fazer esse
4:03:30arquivo, tá? Então ele atualizou aqui,
4:03:32eu vou copiar. Vou trazer aqui pro cloud
4:03:35code, vou colar, vou dar um contrl s e
4:03:37aqui eu vou falar tente executar
4:03:41novamente o script. Mandei para ele.
4:03:43Vamos ver o que ele vai fazer aqui
4:03:44agora. Isso vai funcionar. Ô maravilha
4:03:47no arquivo de cooken. Ô, beleza. Tá, deu
4:03:50eu de novo, tá? Na verdade aqui talvez
4:03:52eu não tenha lido com muita atenção.
4:03:54Basicamente ele pediu para eu instalar
4:03:55essa essência aqui no Chrome. Vou
4:03:58adicionar ela aqui e depois eu abrir o
4:04:00YouTube com ela que aí ela vai me
4:04:02retornar um arquivo, pelo que eu
4:04:03entendi. Então vou acessar aqui o
4:04:05YouTube, vou dar um F5 aqui e deixa eu
4:04:09ver aqui a extensão. Beleza, eu vou dar
4:04:12um export, deixa eu ver, vou dar um
4:04:14export ao cooks. OK, lá ele lá ele
4:04:17máximo. E agora eu vou pegar esse
4:04:19arquivo aqui e jogar, deixa eu ver,
4:04:23nessa pasta aqui. Então, deixa eu só
4:04:25abrir aqui meu explorador de arquivos.
4:04:26Baixei aqui. Deixa eu vir no meu
4:04:28navegador agora, pegar esse arquivo e
4:04:30colocar aqui com o nome que ele
4:04:32solicitou. Deixa eu ver.
4:04:35YouTubecooks.txt.
4:04:37Então, vamos modificar aqui. V. Rename.
4:04:40OK. Fala feito. Bora ver no que que vai
4:04:43dar agora. Script. Isso aqui é normal,
4:04:45tá turma? É normal que no meio do
4:04:46processo a gente acabe encontrando
4:04:47alguns problemas, principalmente quando
4:04:49envolve, por exemplo, uma biblioteca,
4:04:51uma API externa e é normal que a gente
4:04:53vai encontrando alguns problemas e o
4:04:54nosso trabalho aí refinando e
4:04:55melhorando, OK? A ideia é que, por
4:04:56exemplo, num primeiro momento isso aqui
4:04:58pode até trar um pouquinho de tempo
4:04:59nosso, mas com o tempo a gente vai
4:05:01realmente conseguindo utilizar aqui a
4:05:03Sisc depois com muita maestria, com
4:05:04muita facilidade e ele economize tempo
4:05:06pra gente, ok? Então aqui ele vai
4:05:08verificar agora o Python e o whisper. O
4:05:10desgramado provavelmente não rodou o
4:05:12setup conts sh, tá? ter uma falha no
4:05:17aqui no no arquivo gerado da skill, tá
4:05:20bom? Então, provavelmente ele tá lendo o
4:05:21quê? Só o skill. MD e não tá seguindo
4:05:23aqui a parte de o que tem no cloud code.
4:05:25Então, no cloud.md. Então, vou alterar
4:05:27isso daqui também depois. Não tenho que
4:05:29atuar todação.
4:05:32OK. Tô executando aqui, tá? Tá demorando
4:05:34um pouquinho. Eu até cortei um pouco o
4:05:36vídeo por basicamente aquele precisa
4:05:39baixar esse modelo do whisper, então
4:05:41demora um pouquinho, tá? E eu também fiz
4:05:42o grande favor aqui de apertar o ESC
4:05:44novamente pela segunda vez já nessa
4:05:46parte de criação de skill. Então ele
4:05:48travou e vai começar aqui do zero. Mas
4:05:49assim que tiver tudo pronto eu volto com
4:05:51vocês. Vamos lá. É, finalmente girou
4:05:53aqui o resultado, tá? A gente encontrou
4:05:55alguns probleminhas aqui no percurso que
4:05:57eu quero mostrar mostrar para vocês e
4:05:59acabou demorando um pouco mais por isso,
4:06:00mas nada demais, tá? Tá? O que aconteceu
4:06:02aqui basicamente que a gente encontrou,
4:06:03primeiro de tudo, né, a gente teve
4:06:05aquele problema lá que a gente comentou
4:06:07de não tá conseguindo baixar, então
4:06:08levei lá, mandei para cá e resolveu
4:06:11parte do problema. Só que aí a gente
4:06:12começou com o problema que é o seguinte,
4:06:13ele começou a processar na minha CPU. Eu
4:06:15sei que a CPU, ou seja, o meu
4:06:17processador vai demorar muito mais para
4:06:19gerar o resultado do que a GPU. Então eu
4:06:21pedi para ele utilizar a minha CPU, a
4:06:22minha GPU no caso, né? Perguntei para
4:06:24ele, para ele se não era melhor. Ele
4:06:25falou que sim, né, que ele ia verificar
4:06:27aqui. E o que aconteceu? Basicamente ele
4:06:29viu que o meu drive aqui da Nvidia não
4:06:32possuía o a versão correta do Kuda, tá?
4:06:35Na verdade o drive não, perdão, o Py
4:06:37Torque, né? Que no caso a versão que ele
4:06:40tava era realmente só CPU, então ele
4:06:42precisou trocar aqui, fazer o download
4:06:44desse Py Torque, demorou um pouquinho,
4:06:45tá? Mas depois ele conseguiu identificar
4:06:47aqui a GPU e tudo mais. Então ele
4:06:49começou a rodar aqui na GPU, OK? Então
4:06:51ele veio, rodou aqui na GPU, foi bem
4:06:53rapidinho, coisa de um minuto, 1 minuto
4:06:55e meio, OK? Acho que talvez até dois,
4:06:58mas assim, se for comparar aqui, eu
4:06:59precisaria fazer o download do áudio,
4:07:01mandar para um outro transcrididor,
4:07:02transcrididor, outro aplicativo
4:07:04transcrever o vídeo e depois baixar o
4:07:06resultado e depois mandar aqui pro
4:07:07cloud. Cara, eu até que gostei, não é?
4:07:09Um tempo assim exorbitante, até porque
4:07:11eu consigo mandar aqui para ele, ele
4:07:12fica rodando em background, OK? E depois
4:07:15ele vai gerar aqui o resultado. E nesse
4:07:17caso aqui ele já gerou o roteiro e
4:07:19salvou aqui em um arquivo MD, tá bom?
4:07:21Então aqui ele trouxe todo o conteúdo, o
4:07:23que que ele gerou, né? Vou olhar aqui
4:07:24para por cima e depois eu gero aqui com
4:07:26vocês um review. Então, cara, tá legal,
4:07:29tá, não tá ruim. O que que eu faria para
4:07:31melhorar aqui? Isso aqui é algo que eu
4:07:33já tentei algumas vezes, mas ele sempre
4:07:35traz isso, tá? Que qual que é a
4:07:36transição? Ele não coloca a transição
4:07:37como algum conteúdo, ele só coloca aqui,
4:07:39ó, ó, comenta tal coisa que eu te mando
4:07:41o link sobre essa funcionalidade, tá?
4:07:43Mas não é um problema, já dá uma direção
4:07:44muito boa. Em relação ao conteúdo
4:07:46principal, eu até gostei, tá? E falar
4:07:48real, é bem semelhante com o que eu
4:07:50utilizei e teve um resultado legal lá no
4:07:51Instagram. Então aqui tá legal, eh, não
4:07:54é perfeito, né, mas tá bem OK. A gente
4:07:56poderia depois melhorando essa skill
4:07:58aqui com tempo, inclusive extrair daqui
4:08:00quais aprendizados ele teve e pedir para
4:08:02ele analisar nossa skill e gerar ideias
4:08:04aqui de mudanças e melhorias. Inclusive,
4:08:06eu vou fazer o seguinte, eu vou pedir
4:08:08para ele fazer isso aqui com essa skill,
4:08:10OK? Enquanto a gente vai pra próxima
4:08:11parte da aula, que é a parte sobre su
4:08:13subagents e agent teams. Então vamos lá,
4:08:16eu vou falar aqui para ele o seguinte.
4:08:17Eu quero que você use a skill creator
4:08:20para analisar a skill que a gente tem
4:08:22aqui de YouTube wheels. Eu quero que
4:08:24você me retorne depois eh quais foram os
4:08:26seus aprendizados, porque a gente
4:08:28encontrou uma série de erros aqui e
4:08:29falhas no meio do caminho. Eu quero que
4:08:31você pegue esses erros, analise a skill
4:08:33e identifique o que que poderia melhorar
4:08:35e o que que poderia ser alterado nela
4:08:37para que a gente não cometa mais essa
4:08:38quantidade de erros quando eu for tentar
4:08:40transcrever um vídeo, ok? Eu quero que
4:08:42você analise se já tem tudo que precisa
4:08:43no computador ou algo do tipo. Vou
4:08:44mandar aqui para ele. Eu vou deixar ele
4:08:46rodando aqui e enquanto isso a gente vai
4:08:48pra nossa parte da aula sobre subagents.
4:08:50Vamos lá turma. Que que é o subagents?
4:08:52Para que que a gente utiliza o subagents
4:08:53e como que eles funcionam na prática,
4:08:55tá? Bom, bom, primeiro de tudo, que que
4:08:57é um subagent? Basicamente um subagent é
4:09:00um agente que você cria lá no seu cloud,
4:09:02que nem a gente já conversou sobre isso
4:09:03antes nesse curso, e você consegue
4:09:05deixar aquele agente ali disponível para
4:09:07que o seu cloud invoque ele quando for
4:09:09necessário. Então, quando, por exemplo,
4:09:11ele identificar que alguma tarefa é
4:09:13compatível com aquele suagente, ele vai
4:09:14chamar aquele subagente para executar
4:09:16aquela tarefa, tá bom? E nesse caso a
4:09:19gente tem algumas razões para utilizar
4:09:20um subagent. A primeira é preservar o
4:09:22contexto longo. Então, quando a gente
4:09:24fala, por exemplo, de tarefas pesadas, é
4:09:25melhor que a gente isole essa tarefa
4:09:27para que a gente não polua contexto do
4:09:29nosso agente principal. Porque o que
4:09:31acontece? Quando ele chama um suaggente,
4:09:33esse suagente ele tem uma uma janela
4:09:35única, OK? Então ele executa, pega todo
4:09:38o contexto ali que ele precisa, depois
4:09:39retorna uma saída pro nosso agente e
4:09:41depois quando a gente invoca ele
4:09:42novamente, a janela dele de contexto tá
4:09:43totalmente limpa, ok? Então,
4:09:45basicamente, o nosso agente principal só
4:09:48vai receber o, só vai mandar o input
4:09:50para ele e receber o output, enquanto
4:09:52esse subagente ele vai fazer tudo que
4:09:53for necessário, é, usando todo o
4:09:55contexto que ele tiver disponível ali e
4:09:56o que e que ele precisar para gerar o
4:09:58resultado. Porém, não vai poluir o
4:10:00contexto do nosso subagente, do nosso
4:10:01agente principal. Ele só vai retornar
4:10:03ali é o output, que geralmente vai ser
4:10:05muito menor do que todo o trabalho que
4:10:07ele fez, OK? Então, a gente manter a
4:10:09nossa janela principal limpa, OK?
4:10:12Segundo, forçar restrições de armas.
4:10:14Então a gente pode definir que um agente
4:10:16só vai ter as to que a gente definir,
4:10:18que a gente ceder para ele. Então isso
4:10:19aqui é muito bom para evitar que um
4:10:21agente utilize uma Tol que ele não
4:10:22deveria de forma errada ou algo do tipo,
4:10:24ou que ele cometa algum erro, ok?
4:10:27Terceiro, especialização focada. Então o
4:10:29nosso agente, ele vai ter um
4:10:31comportamento muito focado em algo
4:10:33específico. Então, por exemplo, em banco
4:10:34de dados, em front end, em back end, em
4:10:38su base, em MCP. Então a gente consegue
4:10:40ter um resultado muito melhor, porque o
4:10:42nosso agente ele tá especializado em uma
4:10:43tarefa específica. E cara, desde que a
4:10:45gente tem ali IA generativa e até os
4:10:47dias atuais, a gente sempre tem esse
4:10:49conceito de que é muito melhor que você
4:10:50ter uma IA focada em uma tarefa
4:10:53especializada em algo, com todas as
4:10:54instruções dela apontando para uma
4:10:56direção do que uma generalista querendo
4:10:58fazer tudo de uma vez, tá bom? A gente
4:11:00consegue o Cloud Code, por exemplo, a
4:11:01gente consegue criar um software
4:11:02completo sem utilizar subagentes, mas a
4:11:05gente poderia também utilizar subagentes
4:11:06para tentar otimizar o resultado, OK? E
4:11:09a gente também tem aqui eficiência de
4:11:11custos, então por exemplo, rotear
4:11:12tarefas burras para os modelos haiku e
4:11:14tarefas geniais pro modelo OPOS. Então a
4:11:16gente pode definir no nosso subagente
4:11:18qual modelo que a gente quer utilizar.
4:11:20Então posso definir se eu quero
4:11:21utilizar, por exemplo, o Haiku, o Opus,
4:11:23o Sonet e com isso eu consigo ter um
4:11:25controle melhor dos meus custos. Então,
4:11:27por exemplo, tem tarefas que são simples
4:11:28que eu poderia pedir só pro meu highiku
4:11:30executar aquelas tarefas. Então, ah, eu
4:11:32quero que você verifique se nós temos
4:11:34todas as dependências necessárias para
4:11:36rodar esse código. Ele vai lá, vê quais
4:11:38são as dependências necessárias,
4:11:39verifica se elas estão disponíveis e
4:11:41acabou. Tá? Não preciso de um modelo
4:11:42genial para uma tarefa como essa, mas eu
4:11:45posso utilizar, por exemplo, o Opus para
4:11:47fazer uma análise do meu código,
4:11:49procurando por falhas, por bugs ou por
4:11:50coisas do tipo, tá? E com isso eu teria
4:11:52um resultado muito melhor utilizando o
4:11:54Opus do que usando o Highook, que cara
4:11:56seria muito burro para isso, tá bom? E
4:11:58quando que a gente invoca a cavalaria,
4:12:00OK? Qual que é a nossa regra de ouro
4:12:01aqui? oficial. O sub agente rala, OK? E
4:12:04devolve só o resumo mastigado do que
4:12:06importou. Então, o subagente vai fazer
4:12:07tudo que for necessário, vai executar
4:12:09to, vai criar código, vai analisar, vai
4:12:11puxar contexto, vai fazer tudo que for
4:12:13necessário e depois ele vai retornar
4:12:14somente o resumo pro nosso agente
4:12:16principal do que foi feito, do que
4:12:18precisa ser feito, etc. Ok? Então aqui
4:12:20que que acontece? A gente pode utilizar
4:12:22subagentes em três casos que eles são
4:12:24muito úteis, ok? Primeiro, quando ele
4:12:26vai ler muitos arquivos inúteis. Então,
4:12:28por exemplo, você quer analisar ali
4:12:30logs, você quer analisar eh você quer,
4:12:32por exemplo, debugar alguma coisa
4:12:33específica, quer colocar para rodar e
4:12:35debugar o que aconteceu, etc., vale
4:12:37muito a pena você utilizar um subagente.
4:12:39Por quê? Porque esse subagente, ele vai
4:12:41analisar vários logs, vários conteúdos
4:12:43ali que são relativamente inúteis, como
4:12:45por exemplo logs, como debugs, OK? Sem
4:12:48eh poluir a janela principal. Então ele
4:12:50analisa tudo aquilo, vê o que precisa
4:12:52ser feito, fala pra agente principal ou
4:12:54até mesmo ele executa. E a gente tem um
4:12:55resultado muito legal porque aquele
4:12:57agente ele absorveu toda, digamos que a
4:13:00parte suja do trabalho, tá? Que é a
4:13:02parte de consumir vários tokens que são
4:13:04inúteis, que não serão úteis depois no
4:13:06projeto e mandou pro nosso agente
4:13:08principal só o que ele precisa para que
4:13:09aquele agente mesmo consiga executar a
4:13:11tarefa com maestria. Então, nesse caso,
4:13:13é como se esse agente aqui se jogasse na
4:13:15lama para que os outros não precisassem.
4:13:17ele se suja para que os outros consigam
4:13:18manter eh se manter limpos e executar o
4:13:21trabalho da melhor maneira possível, ok?
4:13:22Então, quando a gente tem, por exemplo,
4:13:23logs, que é basicamente o quê? Vamos
4:13:25supor que você vai subir uma uma
4:13:27aplicação numa VPS, num highway, numa
4:13:29versel da vida e começa a darro. Aí
4:13:31começa a aparecer um monte de logs lá,
4:13:32um monte de logs. Cara, é muito melhor
4:13:34você pegar esses logs e mandar para um
4:13:36subagente analisar do que você mandar de
4:13:37fato pro seu agente principal, porque
4:13:39são vários logs. E esses logs, cara, por
4:13:41exemplo, são várias linhas, vários
4:13:42textos, vários, várias chaves, aspas,
4:13:46espaço, etc., quebra de linha. Então,
4:13:48tudo isso vai poluir o seu contexto.
4:13:50Isso daqui é algo que a gente não
4:13:52precisa depois. você só precisa que de
4:13:54alguma forma aquele conteúdo seja
4:13:55analisado e seja corrigido, ok? E com
4:13:58isso você não precisa, por exemplo,
4:13:59mandar pro seu agente principal todos os
4:14:00logs para não poluir a janela dele, ok?
4:14:03E quando a gente tem um trabalho
4:14:04repetitivo, então, por exemplo, você vai
4:14:06sempre rodar a mesma coisa ali várias
4:14:08vezes, 15, 20, 50, 100 vezes. Cara, vale
4:14:12a pena você transformar em um subagent.
4:14:14Então, por exemplo, eu poderia ter aqui
4:14:15um subagent para, vamos supor, revisar o
4:14:17meu código, acessar, por exemplo, a
4:14:19pasta de logs que eu comentei para
4:14:21analisar alguma coisa específica. Eu
4:14:23poderia ter, por exemplo, um agente que
4:14:25fica verificando ali como que tá toda
4:14:27minha parte de versionamento. Então, por
4:14:29exemplo, eu quero ali sempre verificar
4:14:30meu versionamento, eu quero analisar
4:14:31como é que tá sendo feito, eu quero
4:14:32analisar como que eu tô gerenciando toda
4:14:34essa parte de versionamento, CICD lá com
4:14:36GitHub. Eu posso ter um subaggente que
4:14:38faz somente isso, que ele vai consome
4:14:39todos os arquivos, polui todo o contexto
4:14:41dele ali, porém ele vai poluir e não vai
4:14:44retornar pro meu agente principal, OK?
4:14:45Será algo muito bom. E também quando eu
4:14:47quero rodar em paralelo, ou seja, pode
4:14:49ir acontecendo enquanto eu faço outra
4:14:51coisa isolada. Então eu posso, por
4:14:52exemplo, ter um um agente que eles
4:14:54chamam um subagente para rodar, para
4:14:55construir toda a parte de frontend. Eu
4:14:57posso ter todo um subagente para rodar
4:14:59toda a parte de back end, para construir
4:15:00toda a parte de back endes dois
4:15:02terminarem, eu posso ter um terceiro
4:15:04subagente para analisar toda a conexão
4:15:06que foi feita. eh, entre o front end e o
4:15:08back end, OK? Eu posso ter também um
4:15:10outro para rodar toda a parte do banco
4:15:12de dados, então ele que vai construir e
4:15:13assim por diante. Então, quando eu quero
4:15:15mais velocidade, eu posso dar esses
4:15:17suagentes em paralelo, OK? Para eu ter
4:15:18mais velocidade, ter mais agilidade no
4:15:20desenvolvimento do meu projeto, ok? E
4:15:22como que a gente invoca esses suagentes?
4:15:24Como que eu posso chamar eles para
4:15:26trabalhar aqui para mim? A gente tem
4:15:27duas maneiras, a automática e a manual,
4:15:29OK? Qual que é melhor? Cara, depende
4:15:32muito de cada caso, tá? Depende muito de
4:15:34como você quer que funcione, mas
4:15:35basicamente no automático o cloud lê a
4:15:38tag do description noel aqui que é
4:15:40aquele arquivo que é bem semelhante a
4:15:43isso daqui que a gente tem ele trouxe
4:15:45aqui algumas coisas depois a gente vê
4:15:47mas enfim aqui no meu skillmmd eu tenho
4:15:49essa parte aqui tá isso daqui é
4:15:51basicamente a parte e a mel o front do
4:15:54meu skillmd
4:15:56aqui do meu skillmmd a única parte que é
4:15:58retornada pro meu agente é o nome e a
4:16:00descrição. Todo esse S aqui, ele não é
4:16:02retornado. Ele só é retornado quando o
4:16:04meu agente identifica pela descrição
4:16:06essa parte aqui, que ele precisa chamar
4:16:08essa skill. E aí sim ele absorve todo
4:16:10esse contexto aqui, então todas as
4:16:12instruções que a gente tem aqui embaixo.
4:16:13E aí sim ele começa a executar de fato,
4:16:16OK? Mas aqui, por exemplo, ele só vai
4:16:19receber aqui no início da sessão o nome
4:16:21e a descrição, OK? Todo o restante ele
4:16:24não recebe. Então ele vai ler essa parte
4:16:26do subagente, vai entender ali o que que
4:16:29ele faz, só que ele sempre vai receber
4:16:30isso aqui logo no começo da sessão. Que
4:16:32que é uma sessão? É basicamente quando
4:16:34você vem aqui e clica aqui no seu cloud
4:16:36code para abrir uma nova sessão, um novo
4:16:38chat, ok? Então ele vai carregar isso
4:16:40aqui já desde o contexto da sessão. E
4:16:42aqui ele decide sozinho quando que vai
4:16:44acionar. Então, por exemplo, ele sabe
4:16:45ali o que a gente faz, ele sabe quais
4:16:47são as capacidades do agente e ele mesmo
4:16:49decide quando que ele precisa chamar e
4:16:50quando ele não precisa, ok? E aqui a
4:16:52gente tem um ponto muito importante.
4:16:53Quando a gente fala de descrição, tanto
4:16:55de skill, quanto de MCP, quanto de
4:16:57subagente, a gente precisa ter algo
4:16:59muito bem estruturado, muito bem
4:17:00detalhado, porque se ela for muito vaga,
4:17:03pode ser que ocasionalmente o nosso
4:17:05agente nunca chame essa skill, esse MCP
4:17:08ou esse subreagente, como é nesse caso.
4:17:09Então, nesse caso aqui, se você vai
4:17:11utilizar de forma automática, o seu
4:17:13suberagente, ele precisa ser muito bem
4:17:15construído. Se ele for mal construído, o
4:17:17seu agente principal não vai conseguir
4:17:19identificar o seu subagente, ok? Então
4:17:20você precisa utilizar aqui um subagent,
4:17:24OK? Você precisa, quer dizer, ter uma
4:17:26boa descrição pro seu subagent para que
4:17:28ele seja realmente executado, para que o
4:17:30seu agente principal utilize ele sempre
4:17:32que necessário, da melhor maneira
4:17:33possível. E a gente também tem a maneira
4:17:35manual, que é recomendada. E aqui não é
4:17:37o problema você utilizar a maneira
4:17:38manual, OK? Muita gente acha que não, eu
4:17:41instalei aqui esse agente, eu instalei
4:17:43esse MCP, eu instalei essa skill e eu
4:17:45quero que o meu cloud ele tem esse
4:17:47contexto, ele execute automaticamente.
4:17:49Só que, cara, inteligência artificial de
4:17:51forma geral, ele é um estagiário
4:17:53avançado, mas meio burro, que é o quê?
4:17:55Ele é muito bom, ele consegue fazer o
4:17:56trabalho dele com maestria, só que de
4:17:58certa forma às vezes ele é meio burro.
4:17:59Às vezes você já pensou em alguma coisa,
4:18:01você já deu para ele o acesso para essas
4:18:03coisas, porém ele como estagiário, como
4:18:05um juniorzinho ainda, ele não tem a
4:18:07capacidade de entender que ele precisa
4:18:09daquilo. Então, por exemplo, já teve
4:18:10projetos em que eu tava com MCP ativado,
4:18:13eu pensei: "Pô, MCP aqui tá ativado, eu
4:18:15falei que eu vou utilizar o super base,
4:18:16então acho que ele vai utilizar o MCP do
4:18:18Super Bas, por algum motivo ele não
4:18:20usou, porque eu não falei explicitamente
4:18:22para ele utilizar o MCP do Super Base.
4:18:23Então você pode ter noção que, por
4:18:24exemplo, quando a gente fez lá a nossa
4:18:26plataforma de área de membros, eu falei
4:18:28que ele tinha que usar o MCP do SP base
4:18:30e eu também falei que ele tinha que usar
4:18:31skill de frontend design para produzir
4:18:33todo o design do front change. Por que
4:18:35que eu fiz isso? Porque, cara, eu
4:18:37realmente queria que que ele utilizasse
4:18:39aquilo. O interesse maior de que ele
4:18:41gereas
4:18:43que dei para ele são meus. Esse
4:18:45interesse é meu, tá bom? Então eu
4:18:47preciso falar para ele, ó, usa isso
4:18:49daqui para ter o melhor resultado, tá
4:18:50bom? Então não é um problema. você ter
4:18:52que falar pro seu agente utilizar um
4:18:54sobreagente ou utilizar uma skill.
4:18:55Lógico que não é por isso que você que
4:18:57você construir uma descrição ruim pro
4:18:59seuagente. O ideal é que você tenha uma
4:19:00boa descrição para que caso ele precise
4:19:02algum contexto que você não pensou ou
4:19:04algo do tipo ou ele achou que seria
4:19:06útil, ele consiga chamar o seu
4:19:07subreagente de forma automática. Mas
4:19:10você falar para ele chamar, você fala o
4:19:12seguinte: "Ó, eu quero que você passe
4:19:13essa tarefa para esse suagente enquanto
4:19:15você faz isso daqui." Não tem demérito
4:19:17nenhum nisso, tá? Não tem nenhuma parte
4:19:19ruim nisso. Você vai ter um resultado
4:19:20muito mais preciso, muito mais
4:19:21determinístico. Então aqui é muito,
4:19:23muito bom que você faça isso, OK? É mais
4:19:26explícito, é mais previsível e você tá
4:19:27ciente do seu controle absoluto, ok?
4:19:30Então você tem controle absoluto sobre
4:19:31tudo que ele vai fazer e como que ele
4:19:33vai fazer. Então isso aqui é algo muito
4:19:34bom e que vale muito, muito a pena, ok?
4:19:37E o que é muito legal também dos
4:19:38suagentes é que você consegue colocar
4:19:40skills pros seus suagentes. Os seus
4:19:43suagentes eles conseguem ter suas
4:19:44próprias skills. Então, por exemplo,
4:19:46você pode injetar ali macros diretas no
4:19:48contexto dele via o campo skills. Então,
4:19:51por exemplo, eles não precisam descobrir
4:19:52e carregar do zero quando eles
4:19:53precisarem durante a tarefa. Você já
4:19:55pode colocar ali as skills que eles vão
4:19:57precisar. Então, por exemplo, aqui um
4:19:58exemplo que eu coloquei que é muito bom
4:20:00é basicamente um agente que ele vai
4:20:01desenvolver toda a API. Então, por
4:20:03exemplo, a gente desenvolveu lá nossa
4:20:04área de membros e agora a gente quer
4:20:06construir um agente vai construir toda a
4:20:08nossa API para que outras pessoas possam
4:20:10interagir com ela. Então, por exemplo,
4:20:11buscar um aluno, criar um aluno e
4:20:13adicionar um curso a um aluno, enfim,
4:20:15várias coisas nesse sentido, OK? E qual
4:20:17que é a questão aqui? Eu posso ter um
4:20:19agente que ele vai desolver essa API e
4:20:21eu posso também já colocar dentro dele
4:20:23as skills de convenção RASH, ou seja, os
4:20:25padrões ali de Rash aqui que basicamente
4:20:27AP R. Então ele vai entender ali todos
4:20:29os padrões, então métodos e estrutura,
4:20:31etc. OK? e também error handlings já
4:20:34pré-carregadas, ou seja, já já coloca
4:20:36essas skills pré-carregadas para ele,
4:20:37para que ele consiga trabalhar melhor na
4:20:40hora de criar essa API, OK? E qual que é
4:20:42a diferença principal dessas skills aqui
4:20:44pr as skills dos agentes principais? É
4:20:46que essa daqui ela já ficar ligada no
4:20:47cérebro nativamente. Então, por exemplo,
4:20:50vamos supor que você vai fazer alguma
4:20:51tarefa, OK? E você tem um playbook que
4:20:53te ensina como fazer essa tarefa.
4:20:55Basicamente aqui a diferença é que
4:20:57quando a gente já coloca no subente a
4:20:58skill, ele já tá com essa com esse
4:21:00playbook na cabeça dele. Então ele já
4:21:01sabe como fazer sem precisar abrir o
4:21:03playbook e pegar ali para ver o que ele
4:21:05precisa fazer. Quando a gente fala do
4:21:07agente principal, ele não, ele precisa
4:21:09pegar esse playbook para que ele saiba
4:21:11como fazer. Ele não tem isso já dentro
4:21:12da cabeça dele, ok? O sub agente já
4:21:14possui dentro da cabeça, ele não precisa
4:21:16ficar procurando, não precisa do comando
4:21:17aqui barra tanão, o nome da skill, ok?
4:21:20Então, é basicamente assim que funciona
4:21:22a SK dosagentes. Você pode ter,
4:21:24inclusive, é muito boa essa combinação
4:21:26para que você tenha resultados ainda
4:21:27melhores, OK? E quais são as armadilhas
4:21:30clássicas que a gente pode cair quando a
4:21:31gente vai utilizar aqui um sobre a
4:21:33gente? A primeira é o custo surpresa.
4:21:35Então, lembra que eu comentei que quando
4:21:37eu fui desenvolver uma skill, utilizando
4:21:38aquela skill creator, o meu cloud code
4:21:40simplesmente começou a criar vários
4:21:42suagentes para testar a skill? Então,
4:21:45esse que é o problema. O meu cloud code
4:21:46ali, ele consumiu assim, brincando em 10
4:21:49minutos. quase todo o meus créditos da
4:21:52sessão. Então, sabe aqueles créditos que
4:21:54a gente tem da sessão, que são
4:21:55basicamente esses aqui, ó? Posso vir
4:21:57aqui dar um barra usage, eu posso ver
4:21:59quanto que eu utilizei. Nesse caso aqui,
4:22:01por exemplo, ó, eu tenho minha sessão
4:22:02que dura 5 horas e eu tenho 11% do meu
4:22:04uso consumido da sessão. Então aqui ele
4:22:06consumiu, cara, coisa aqui de uns 92% só
4:22:10com esse subagent. Nesse caso, se você
4:22:11tá utilizando a inscrição, ele vai
4:22:13utilizar paralelamente a sua inscrição,
4:22:15tá? Não tem, por exemplo, ah, o sub
4:22:17gente não tem custo não. O sub gente tem
4:22:18custo e tem um custo muito bom, tá? Um
4:22:20custo assim bom no sentido de, cara, vai
4:22:22pisar no seu bolso. Ou, por exemplo, se
4:22:24você utiliza aqui a inscrição, vai te
4:22:26atrapalhar um pouquinho porque ele vai
4:22:27consumir quase toda a sua sessão. Lógico
4:22:29que dependendo dogente, dependendo da
4:22:32tarefa, OK? Segundo, poluição de
4:22:34retorno. Então, por exemplo, ao invés de
4:22:36você obter um resumo ali da tarefa, você
4:22:38pode acabar tendo, por exemplo, 10
4:22:39subgentes, te retornando muitas
4:22:41informações, OK? e acabar sujando todo o
4:22:44seu contexto da da do seu da sua sessão
4:22:46principal. Então, pode acontecer isso
4:22:48disso daqui. Então, pode acontecer de
4:22:50você ter vários subagentes ali
4:22:50configurados, em algum momento você
4:22:52precisar utilizar todos eles ali ou boa
4:22:54parte deles e acabar que você vai poluir
4:22:56o seu contexto, porque tem muito
4:22:58suagente executando tarefas,
4:22:59principalmente se, cara, se você não
4:23:01mapeia muito bem os suagentes, o retorno
4:23:03deles e o que eles vão fazer, pode ser
4:23:05que você utilize ali em casos que nem
4:23:07seriam necessários e acaba que você
4:23:08tenha um custo maior, ok? Então pode
4:23:09acontecer isso daqui. Você tem uma
4:23:11poluição do seu retorno através de
4:23:12vários suagentes rodando. E também tem o
4:23:15conflito de salvamento, que é o quê? É
4:23:16você ter dois suagentes ou mais mexendo
4:23:19no mesmo arquivo, tá? Simultaneamente os
4:23:21dois ali em conjunto mexendo no mesmo
4:23:22arquivo. E o que vai acontecer? Um vai
4:23:24estar editando aqui um arquivo e o outro
4:23:25vai vai estar editando aqui. E quando
4:23:27eles terminarem, cada um vai salvar e
4:23:29vai sobrepor o outro. Ou seja, o
4:23:30resultado de algum agente ali vai ser
4:23:32perdido porque o outro sobreagente
4:23:34escreveu por cima. Então você tem que
4:23:36ter ali subagentes que vão trabalhar de
4:23:37forma muito bem coordenada, tá? muito
4:23:39bem separadas para que, por exemplo,
4:23:40você não tenha dois suagentes no mesmo
4:23:41arquivo, eh, escrevendo e subscrevendo
4:23:44ali o que eles forem colocando e no
4:23:45final das contas você ter dois suagentes
4:23:47e no final só o estado de um acabar eh
4:23:50retornando para você, OK? E ainda
4:23:52quebrado porque, né, vai faltar o
4:23:53resultado do outro. Então aqui solução
4:23:55sagrada para isso é o quê? Regras bem
4:23:57particionadas. Então você tem ali regras
4:23:58muito bem definidas para cada
4:24:00subreagente, tanto internamente quanto
4:24:02também na descrição, que também deve ser
4:24:03clara. Ou seja, a sua descrição ali do
4:24:05suagente precisa ser muito clara para
4:24:06que o seu agente principal saiba invocar
4:24:09aquele suagente e para que também você
4:24:10não tenha nenhum erro ou, por exemplo,
4:24:12ele faça coisas que não devem e acaba
4:24:14assim atrapalhando o seu projeto, ok? E
4:24:16terceiro, forçar uma resposta mastigada
4:24:18ou resumida, né? Como você preferia aí
4:24:20dizer, você precisa que o seu agente
4:24:22retorne ali realmente somente um resumo.
4:24:24Não faz sentido o seu agente retornar
4:24:25uma mensagem gigante, a não ser que seja
4:24:27necessário, porque ele vai perder boa
4:24:29parte do sentido dele e da efetividade
4:24:31dele, ok? Então você precisa ter ali o
4:24:34retorno do subgente muito bem definido e
4:24:36mastigado, OK? Então de subgente é
4:24:39basicamente isso. Eu quero primeiro aqui
4:24:41apresentar agora os agent Teams,
4:24:42apresentar qual que é a diferença dos
4:24:44agentins pros subagentes e depois a
4:24:46gente vai criar aqui um sujagente na
4:24:47prática para mostrar o que que a gente
4:24:49poderia fazer com subagentes, ok turma?
4:24:51Então vamos lá, vamos entender o que são
4:24:53os agent teams, ou seja, os times de
4:24:56agentes, múltiplos agentes aqui
4:24:57trabalhando em conjunto. E também a
4:24:59gente vai ver qual que é a diferença
4:25:00pros dos subas agents pros agent teams,
4:25:03OK? Primeiro vamos entender qual que é o
4:25:05sistema que a gente tem dos agent teams,
4:25:07qual que é o formato que a gente tem.
4:25:08Então a gente tem algumas coisas muito
4:25:09importantes. Primeiro, o team leader,
4:25:11tá? É o líder que vai criar o time, vai
4:25:13repassar toda a delegação e sintetizar
4:25:16um relatório final. Então aqui, cara, é
4:25:18realmente a estrutura para de uma
4:25:19empresa com coordenadores e ali o os
4:25:22colaboradores de cada área. Então a
4:25:24gente pode ter, por exemplo, aqui o
4:25:25líder de TI, OK? E ali os colaboradores,
4:25:28os Devs que vão desenvolver. Então cara,
4:25:30basicamente é realmente a estrutura que
4:25:31a gente tem atualmente de humanos
4:25:33trabalhando em empresas, tá? Isso aqui
4:25:34eu acho muito legal, que é como a gente
4:25:36pode utilizar inteligência artificial de
4:25:37uma forma muito compada, de uma forma
4:25:39muito similar a como que a gente tem as
4:25:41estruturas da sociedade, como nós
4:25:43humanos nos parecemos muito, tá? Até
4:25:45porque é uma área meio meio derivada,
4:25:47né? Basicamente o que a IA se propõe a
4:25:49responder é se tem como replicar o
4:25:51pensamento humano, se tem como criar
4:25:52máquinas que pensam. Isso vem lá do turn
4:25:54lá em cara acho que 1950 e bolinhas,
4:25:571960, tá? Mais ou menos aí entre essa
4:25:59época, não lembro agora de cabeça, mas
4:26:01enfim. Basicamente esse é o norte
4:26:03principal da Iá, então é por isso que a
4:26:05gente tem muita coisa em Iá que se
4:26:06parece com nossos humanos, OK? E vamos
4:26:08lá. A gente tem aqui, primeiramente o
4:26:09Team Lead que vai criar, né, todos esses
4:26:11agentes, vai delegar todas as tarefas,
4:26:13vai identificar ali o projeto, tudo
4:26:15mais, e depois vai retornar um relatório
4:26:17final. A gente tem os teammates, tá? Que
4:26:19são pequenos clouds independentes em
4:26:20janelas próprias. Então aqui é como se
4:26:23fosse o subagents, tá? Então a gente
4:26:24pode ter a visão aqui do dos teammates
4:26:26muito parecido com o subagentes, janela
4:26:29própria, não tem contexo externo, tá? Ou
4:26:31seja, ele consegue pegar ali os
4:26:32documentos, consegue ter ali o contexto
4:26:33dele próprio, mas a sua sessão principal
4:26:36não afeta esse subagente aqui, OK? E ele
4:26:38também só vai retornar o retorno final
4:26:40ali pro agente principal, que geralmente
4:26:42vai ser um resumo, vai ser uma mensagem,
4:26:44vai ser um: "Ei, consegui fazer isso,
4:26:45não consegui fazer isso ou e fiz isso e
4:26:47agora precisa fazer isso daqui". Ok?
4:26:49Então realmente é muito parecido com um
4:26:50subagent essa parte do team do
4:26:53teammates, OK? Eu acho que eu falei team
4:26:54agents, putz, agora não lembro se eu
4:26:56falei team agents, mas é teammates, tá?
4:26:58Basicamente aqui os colegas de equipe,
4:27:00tá? A gente tem aqui também a Tesc list,
4:27:02que é basicamente uma lista de tarefas,
4:27:04onde a gente vai ter um quadro
4:27:05cambagentes,
4:27:08tá? O que eles vão fazer, basicamente,
4:27:09os membros vão pegar um card livre e vão
4:27:11puxar o trabalho. Então o Team Lead cria
4:27:13esses subagents aqui, analisa quais são
4:27:15as tarefas que vai ter, cria essas
4:27:16tarefas, depois cria os subagents, tá?
4:27:19Os teammates aqui, a gente pode chamar
4:27:20de teammates, OK? Que basicamente vão
4:27:22executar cada uma dessas tarefas e eles
4:27:23vão rodando em paralelo. E aí com base
4:27:25nesse camb executando uma tarefa. E
4:27:27putz, eu terminei aqui minha tarefa, eu
4:27:29vi que tem uma outra tarefa ali, eu vou
4:27:30pegar e vou executar, OK? É exatamente
4:27:32como se fosse, por exemplo, o processo
4:27:34de desenvolvimento aqui dentro de um de
4:27:35uma empresa mesmo, com o time de TI e
4:27:37tudo mais, só que com os teammates mais
4:27:38produtivos, né? Mais eh, como é que eu
4:27:40posso dizer? Mas mais proativos do que
4:27:42são alguns desenvolvedores no geral, OK?
4:27:45Não generalizando, né? Mas tem muita
4:27:47gente que não é proativo. Nesse caso
4:27:48aqui eles seriam proativos, iriam
4:27:50pegando as tarefas assim que vissem que
4:27:52tem uma disponível e que eles já
4:27:53finalizaram a última tarefa deles, ok? E
4:27:56a gente também tem o meio box, um
4:27:57conceito muito legal aqui e que é o que
4:27:59vai diferenciar lá na frente os agent
4:28:01teams dos subagents, que é o seguinte, é
4:28:04basicamente o WhatsApp deles. A gente
4:28:05tem duas opções, um agente aqui pode
4:28:08mandar uma mensagem para um outro
4:28:09membro, então ele pode pedir uma
4:28:10informação para outro membro, pode
4:28:12mandar alguma informação para outro
4:28:13membro, ok? E a gente tem o broadcast,
4:28:15que é basicamente um a gente falar com o
4:28:16time inteiro. Então fala: "Ei, time,
4:28:18alguém sabe onde que eu encontro isso
4:28:19daqui? Alguém sabe o que que precisa de
4:28:21para isso daqui ficar pronto? Ou como
4:28:23que eu executo isso daqui?" Entende?
4:28:25Então, basicamente aqui eles podem
4:28:26conversar entre si, seja, por exemplo,
4:28:29um agente para outro agente ou um agente
4:28:31para vários agentes. OK? A gente tem
4:28:32essas duas opções com o ecossistema aqui
4:28:35do Agent Teams. E quais são os cenários
4:28:36ideais pra gente, por exemplo, utilizar
4:28:38o Agent Teams? OK? O primeiro é uma
4:28:41investigação complexa paralela. Então,
4:28:43por exemplo, cinco agentes aqui juntos
4:28:45testando aspectos e hipóteses
4:28:47completamente diferentes num banco
4:28:49corrompido ao mesmo tempo. Então, por
4:28:50exemplo, você tem um banco de dados que
4:28:51tá corrompido, tá com algum problema lá
4:28:53dentro e você coloca vários agentes para
4:28:55investigar hipóteses diferentes de forma
4:28:57paralela. Então, cada um deles vai
4:28:58procurar alguma coisa que pode corrigir
4:29:00aquele problema para que o problema seja
4:29:02solucionado. Da mesma forma, por
4:29:03exemplo, a gente poderia ter aqui dois,
4:29:06três subagents aqui, né, agent teams,
4:29:07né, no caso, né, teammates, rodando em
4:29:09paralelo na API do Facebook,
4:29:12investigando aquela API e buscando a
4:29:14melhor maneira de se integrar com ela. E
4:29:15eu falo que, cara, realmente vale a pena
4:29:17porque a API do Facebook é um caos, é
4:29:19terrível de utilizar aquilo dali, OK?
4:29:22Quando a gente tem, por exemplo, uma
4:29:22feature monstruosa nova, ou seja, uma
4:29:24grande função nova aqui no nosso back
4:29:26end, no nosso aplicativo. E a gente tem
4:29:27aqui, por exemplo, vários agentes, cada
4:29:29um dono de um front end, outro no back
4:29:31end, outro na parte de login, sem se
4:29:34trombarem. Então a gente tem vários
4:29:35subagentes aqui trabalhando em
4:29:36conjuntos, né? Mesmo caso ali dos e
4:29:39suagentes, porém nesse caso com aquela
4:29:41comunicação, eles conseguem comunicar
4:29:42entre si. Então, por exemplo, o front
4:29:44end consegue avisar o back end que uma
4:29:46parte tá pronta e que ele já pode
4:29:47integrar parte do back end com front
4:29:49end. O cara de alf pode falar que ele já
4:29:51tem um alf pronto, passar pro back end,
4:29:53depois back end passa pro front end para
4:29:55integrar integrar com aquela parte, tá?
4:29:56Então eles podem ter toda essa
4:29:58comunicação e cada um executando tarefas
4:29:59paralelamente sem que nenhum deles eh
4:30:02acabe interferindo o outro e se
4:30:03atrapalhando, ok? E também quando a
4:30:05gente tem aqui uma orquestação cross
4:30:06layer completa. Então por exemplo, o
4:30:08back end gera a rota rash, ou seja, a
4:30:10rota da API ali que vai ser consumida. O
4:30:12front end cria a visualização na web
4:30:14dela do aplicativo, tá? Então ele cria
4:30:17ali aquela aquela visualização, toda a
4:30:19interface usando aquela rota e depois o
4:30:21Q fluxo completo de forma totalmente
4:30:24sozinho, tá? Então ele vai lá avalia o
4:30:25fluxo depois que foi todo criado pelo
4:30:27back end e pelo front end. Então,
4:30:29basicamente aqui cada teammate executa
4:30:31uma parte, utiliza o que foi gerado pelo
4:30:32outro e depois vem um aqui e avalia o
4:30:34que foi gerado da mesma forma que eu
4:30:35falei para vocês anteriormente. A
4:30:37diferença aqui, por exemplo, que é
4:30:39superior ao subag e que eu acho que
4:30:41vocês já estão entendendo, é que o
4:30:42subagent não se comunica entre si, ele
4:30:44apenas executa a tarefa dele de forma
4:30:46limitada, de forma confinada ali no
4:30:48cantinho dele, OK? Já os agent teams, os
4:30:51teammates aqui, eles conseguem se
4:30:52comunicar entre si e com os outros
4:30:54teammates, ok? E cara, quando que não
4:30:56vale, por exemplo, a gente utilizar os
4:30:58agent teams, tá? Primeiro caso, quando a
4:31:01gente tem tarefas sequenciais fortes, ou
4:31:02seja, você tem um caso ali onde você
4:31:04precisa que para que o segundo comece a
4:31:06executar, primeiro, o primeiro tenha
4:31:08terminado, ou seja, o B ali tem que
4:31:10esperar o A terminar para conseguir
4:31:11fazer a parte dele. Nesse caso, não usa
4:31:14o examins porque eles podem começar de
4:31:16forma paralela. O B pode começar assim
4:31:17que o A tenha terminado, isso pode dar
4:31:19problema, ok? Então, nesse caso aqui, o
4:31:21subagent é melhor. Quando, por exemplo,
4:31:23pode acontecer deles editarem o mesmo
4:31:24arquivo. Então, como eles estão rodando
4:31:26em paralelo, o ideal é que você coloque
4:31:27eles em áreas diferentes ou especifique
4:31:30muito bem onde que eles devem atuar.
4:31:32Porque se você coloca eles para atuar
4:31:33juntos, sem regras definidas, sem serem
4:31:35áreas separadas, muito bem definidas,
4:31:38pode ser que, por exemplo, os dois
4:31:39comecem a agir dentro de um mesmo
4:31:41arquivo. Isso pode dar problema, tá?
4:31:42Pode, por exemplo, ter dados sumindo,
4:31:44pode ter partes inalteradas ali, eh,
4:31:46parcerem perdidos no arquivo, porque tem
4:31:48os dois alterando em conjunto e salvando
4:31:49ao mesmo tempo. Então, acaba que um vai
4:31:51sobrescrevendo o outro, ok? E no
4:31:53terceiro, quando é muito simples, tá?
4:31:55Então, quando é muito simples, acaba que
4:31:57fica muito caro. É aquele
4:31:58overengineering, né? é você utilizar um
4:32:00canhão para matar um mosquito, para
4:32:01matar uma mosca de forma totalmente
4:32:03desnecessária. Então, quando é algo
4:32:04muito simples, não vale a pena você
4:32:06colocar aqui vários agentes para
4:32:07trabalhar em conjunto, porque você só
4:32:08vai aumentar o seu custo e não vai ter
4:32:10necessariamente é um resultado melhor,
4:32:12ok? E cara, como funciona os agent
4:32:14teams, OK? Basicamente da seguinte
4:32:16maneira, primeiro você precisa destravar
4:32:18a parte experimental. Então os agent
4:32:21Teams, eles ainda são algo experimental,
4:32:23OK? E também são limitados, se eu não me
4:32:25engano, pro plano Teams. Eu não tenho
4:32:26certeza, mas eu tenho certeza do plano
4:32:28Enterprise. Então, por exemplo, aqui eu
4:32:29não vou conseguir compartilhar isso
4:32:30daqui com vocês, porque eu ainda não
4:32:31tenho acesso a esse recurso de agents.
4:32:33Subagents eu consigo, mas os agentins
4:32:36não. Mas assim, você tendo essa base
4:32:37teórica, tendo a base também prática dos
4:32:39subientes, já tem o que você precisa.
4:32:41Mas como ele tá experimental, você
4:32:42primeiro precisa liberar lá no
4:32:44settings.jzone do seu cloud code,
4:32:46colocando esse comando aqui que é
4:32:48cloud_line code_line experimental_line
4:32:50ags 1. OK? Aqui nesse caso você libera
4:32:53aqui um time é de agent teams
4:32:56experimental. Você descreve o que você
4:32:58precisa em linguagem natural, então como
4:33:00tá aqui embaixo, cria um time de três
4:33:01devs para subir meu servidor de gol, que
4:33:03é basicamente ali uma uma linguagem, OK?
4:33:06E aqui você usa o controle e a
4:33:08avaliação. Então o cloud ele nunca vai
4:33:10sair criando nada sozinho. Ele te
4:33:11pergunta e exige primeiro a sua
4:33:13aprovação. Então você aprovou, você viu
4:33:15que tá bom, aí sim ele libera ali, cria
4:33:17os três subagents para executar ali. Eu
4:33:19estou chamando de subagens porque tá na
4:33:20minha cabeça subagens, tá? Mas enfim,
4:33:22ele cria ali os três teammates, né,
4:33:23dentro do agent teams para trabalhar em
4:33:25paralelo, se comunicando entre si e
4:33:27vendo ali qual tarefa que precisa ser
4:33:28executada, OK? E nesse caso ele vai
4:33:30criar as tarefas, vai coordenar todo o
4:33:32time para que eles executem com maestria
4:33:34o que foi solicitado, OK? Um caso aqui
4:33:36que a gente pode ter, por exemplo, é
4:33:37revisão tripla do PR #142.
4:33:40Então, nesse caso, a gente tem, por
4:33:41exemplo, três membros, OK? Um de
4:33:43segurança hacker, outro de performance
4:33:45cash e o terceiro de cobertura unitária.
4:33:47O que vai acontecer aqui, tá? Cada um
4:33:49deles vai retornar um relatório pro
4:33:50cloud lead catcher, vai retornar ali
4:33:52quais foram os achados deles, OK? de
4:33:53forma independente, de forma é cada um
4:33:55com seus achados. Ali o C leader vai
4:33:57pegar tudo isso, vai absorver, vai
4:33:59entender o que aconteceu ali, vai
4:34:00entender quais dados ele tem e vai
4:34:01sintetizar tudo isso em para você num
4:34:04relatório limpo em apenas 3 minutos, ok?
4:34:06Isso aqui vai executar muito rápido
4:34:07porque, por exemplo, ao invés do cloud,
4:34:08tem que executar cada uma dessas partes.
4:34:10Então, a parte de segurança, a parte de
4:34:12performance, a parte de cobertura
4:34:13unitária. E com isso você poluiir seu
4:34:15contexto. Ele vai se separar aqui, vai
4:34:17mandar para vários agentes diferentes
4:34:18que vão trabalhar ali em paralelo, tá?
4:34:21para obter esses dados sem sujar o seu
4:34:22contexto, sem ter, por exemplo, o
4:34:24próprio contexto sujo e vai ser
4:34:25executado muito mais rápido para você,
4:34:26porque você vai conseguir pegar isso
4:34:28daqui de forma, cara, muito mais rápida,
4:34:30ok? Por quê? Os três agentes foram
4:34:32executados em paralelo e não um de cada
4:34:34vez, tá? Toda essa etapa foi executada
4:34:36em paralelo e não, primeiro executa um,
4:34:38depois o outro, depois o outro e depois
4:34:39gera o relatório. Não foi executou os
4:34:41três e depois já gerou o relatório. E
4:34:43qual que é a regra de ouro aqui pros
4:34:45agente Teams, OK? A dose correta é de
4:34:47cinco a seis tesques por membro. Não
4:34:49coloca ali muitas tesques para, por
4:34:51exemplo, o membro executar. Se você tá
4:34:52tendo mais de seis ali, o ideal é, por
4:34:54exemplo, você colocar mais agentes ali,
4:34:57mais teammates, né, mais membros para
4:34:58executar essas tarefas, OK? O foco
4:35:01inicial eh você deve usar primeiro ali
4:35:03para pesquisa e revisão, tá bom? Então
4:35:05assim, você já consegue testar o fluxo
4:35:06deles antes de eles escreverem códigos.
4:35:08Você deixa ali eles explorarem o código,
4:35:10entenderem o código, eh, realmente terem
4:35:12ali um contexto melhor, OK? antes de
4:35:14mandar eles fazerem alguma coisa, porque
4:35:15assim até você mesmo já testa a
4:35:17qualidade deles, teste o quão bom eles
4:35:19estão e o quão confiáveis eles estão
4:35:21para mexer no seu código, tá? Segundo é
4:35:24que evitar edição cruzada e overlap
4:35:26cego. Então sempre separa muito bem as
4:35:28áreas, as tarefas, os arquivos que eles
4:35:30vão interagir para que eles não façam
4:35:31nenhuma cagada e modificando o mesmo
4:35:33arquivo, tá bom? E também use o modo
4:35:35bypass permission com moderação para
4:35:37times maduros nas tarefas mundanas, ou
4:35:39seja, tarefas simples do dia a dia com
4:35:41onde você já tem ali te bem
4:35:43configurados, bem maduros, que você já
4:35:45testou, que você viu que estão rodando
4:35:46bem, você pode ativar o modo bypass
4:35:49permissions, que é o quê? Aquele modo
4:35:50que ele não vai pedir permissão para
4:35:52fazer tudo. E é legal por se você tá com
4:35:54esse modo ativado, você não tem que
4:35:56ficar aprovando. Ele não fica pedindo
4:35:57para fazer alguma coisa. Ele só vai lá e
4:35:58faz. Se tá desabilitado, ele fica
4:36:00pedindo: "Ei, posso fazer isso? Ei,
4:36:02posso fazer aquilo? Ei, eu preciso criar
4:36:03esse arquivo, ei, eu preciso apagar esse
4:36:05arquivo. E dependendo do caso, lógico
4:36:07que não são em todos os casos, isso aqui
4:36:09pode ser ruim para você porque você
4:36:10perde produtividade, porque você precisa
4:36:12sempre estar ali, eh, alterando, eh,
4:36:14dando permissão, etc., tá? Em alguns
4:36:16casos é mais fácil você executar direto,
4:36:18turma, vamos lá. Eu acabei adiantando
4:36:20boa parte desse conteúdo aqui sobre a
4:36:22diferença entre Agent Teams e subagents,
4:36:25tá? Então, acabei falando algumas coisas
4:36:26ali já no desenvolvimento dessa dessa
4:36:29parte de agents, mas agora quero expular
4:36:31um pouco mais a fundo, quero mostrar de
4:36:33fato qual que é a diferença entre esses
4:36:35dois para você. E bom, a pergunta
4:36:37essencial sobre Agen Teams X agent
4:36:40Teams, tá? Os seus trabalhadores
4:36:42precisam fofocar ou trocar ideia entre
4:36:44eles? Então, por exemplo, cara, quando
4:36:46eu quero ali fazer um agente que vai
4:36:47criar um front end,
4:36:49às vezes pode ser interessante que eles
4:36:51se comuniquem, que eles falem: "Ó, isso
4:36:52aqui tá pronto, você pode utilizar dessa
4:36:54maneira aqui ou olha, eu fiz aqui essa
4:36:56página e você precisa conectar esse
4:36:58botão e, sei lá, essa informação aqui
4:37:00com o seu back end, tá? Então, nesse
4:37:02caso eles precisam, então pode ser que o
4:37:04team seja melhor, tá? você cria sessões
4:37:06separadas onde um atualiza o outro em
4:37:08tempo real, ou seja, eles vão
4:37:09desenvolvendo, vão prodir que precisa
4:37:11ser produzido e em tempo real eles vão
4:37:13se comunicando e avisando, tá? Quando
4:37:15que não precisa, tá? Quando é um subente
4:37:17isolado, cara, ou a tarefa dele pode ser
4:37:19feita de forma isolada, ou, por exemplo,
4:37:21você pode rodar duas, três tarefas em
4:37:22simultâneo de forma isolada, tá bom?
4:37:25Então ele foca no dele, trabalha isolado
4:37:27e traz o pão pronto, ok? Ou seja, ele
4:37:29traz o resultado ali que ele precisa de
4:37:30forma pronta, sem precisar ficar se
4:37:32comunicando com ninguém, ficar
4:37:33perguntando, focando, etc. Tá bom?
4:37:35Então, depende muito de cada caso.
4:37:37Então, por exemplo, ah, eu quero
4:37:38analisar um código que eu vou subir
4:37:41agora pro GitHub para eu atualizar lá na
4:37:43Versel. Cara, dependendo do caso, pode
4:37:45ser que você queira rodar de Teams.
4:37:47Então, você quer, por exemplo, separar
4:37:49para cada um analisar partes separadas
4:37:50do código para que seja mais rápido ou
4:37:52para que eles consigam se comunicar,
4:37:53caso cada um encontra algum erro que
4:37:55pode afetar a parte do outro. Mas pode
4:37:57ser que às vezes, cara, você tem ali um
4:37:58subente isolado para, por exemplo, um
4:38:01analisar a parte de API, o outro
4:38:03analisar o back end e outro analisar o
4:38:05front end. Pode ser que funcione de boa,
4:38:07sabe? E aí você às vezes só quer, por
4:38:09exemplo, eles roda, analisa tudo e caso
4:38:11ele encontre alguma coisa suspeita ou
4:38:12algum erro de fato, ele só comunica pro
4:38:14agente principal e agora esse a gente
4:38:15vai executar. Pode ser interessante
4:38:17também pro seu caso, tá? Tudo depende da
4:38:19forma, principalmente como você quer
4:38:21trabalhar. Então, putz, eu quero que,
4:38:22cara, o meu agente principal só receba
4:38:24os reportes e eu vou analisar com ele e
4:38:25eu vou executar. Então, pode ser melhor
4:38:27um sub agent. Agora, não, eu quero que
4:38:29eles tenham plena comunicação para que
4:38:30eles mesmos encontrem erros, encontrem
4:38:32alguma coisa e eles mesmos se ajudem a
4:38:34corrigir. Então, Teams vai ser a melhor
4:38:37opção para você, OK? E como que funciona
4:38:40por dentro de cada um deles, tá?
4:38:41Primeiramente o subiende. Nesse caso,
4:38:44ele mora dentro e acorrentado da sua
4:38:46janela principal, ou seja, ele tá só ali
4:38:48e, cara, você fez uma requisição, ele
4:38:50vai receber ali o contexto, vai
4:38:51trabalhar e depois que você terminar,
4:38:53ele meio que morre, ele é meio
4:38:55descartável, sabe? Você tem toda a
4:38:56estrutura dele pronta, mas ele não tem
4:38:58uma janela contínua, ok? E ele também
4:39:01reporta somente ao líder central do
4:39:03cloud, então ele só vai reportar ali
4:39:05aquela sessão principal que você está
4:39:06conversando e só vai retornar o
4:39:07resultado para ela, ok? Então ele não
4:39:10tem nenhuma fala lateral com outro
4:39:11agente, ou seja, não tenho, por exemplo,
4:39:13nada de esse agente aqui se comunicar
4:39:15com esse agente aqui, tá? Eu só tenho
4:39:17esse agente aqui se comunicando com o
4:39:19agente principal, né? Utilizando essa
4:39:21estrutura que eu tenho aqui como se
4:39:22fosse eh os o agente principal e os
4:39:26subagents, tá? E ele também é
4:39:27configurado de forma dura lá ele, né?
4:39:30Configurado de forma estrita, de forma
4:39:32determinística no IML, tá? Ou seja,
4:39:34aquele arquivo como você, por exemplo,
4:39:35de skill aqui que eu tenho para vocês, a
4:39:37configuração do seu subgent é feita
4:39:39dessa mesma maneira, tá? Ou seja, nome,
4:39:41descrição, cara, tools, tudo aqui muito
4:39:43travado, muito é dessa forma e ponto,
4:39:45tá? Já os agent teams, os teammates, né,
4:39:48dos dos agent teams, já é feito de forma
4:39:50separada, eles já são mais livres, ok?
4:39:52Você consegue falar e, cara, o próprio
4:39:54Cloud vai montar ali e as instruções e o
4:39:56que que eles têm que fazer, tá bom? E o
4:39:58que acontece agora no Teams, tá? Cada
4:40:00cabeça aqui dos agentes lá, ele vão ser
4:40:02uma sensão do seu cloud code isolada.
4:40:03Então é como se você tivesse, por
4:40:04exemplo, várias aqui desse agente
4:40:07principal, várias sessões dele
4:40:09trabalhando aqui em conjunto, tá? Só que
4:40:11cada um deles possuem a sua janela ali
4:40:13de contexto, possuem, por exemplo,
4:40:14comunicação com os outros, possuem muito
4:40:16mais liberdade do que os agent Teams,
4:40:19tá? E aquilo, cada um deles vai ter a
4:40:21janela de contexto de forma mais ampla,
4:40:22diferente aqui do suagent que tem ali
4:40:25quando ele é invocado e depois a janela
4:40:27de contexto morre, ok? E nesse caso
4:40:29também a principal diferença é que eles
4:40:31se ligam, conversam, repassam erros em
4:40:33tempo real entre si, ou seja, tem
4:40:34comunicação, tem informação de um lado
4:40:36pro outro, como se realmente fosse uma
4:40:37equipe de fato trabalhando em conjunto,
4:40:39tá? Terceiro, você consegue falar no
4:40:42meio e interagir individualmente com o
4:40:43papel, né? Então você consegue, por
4:40:45exemplo, pegar um agim e falar com ele,
4:40:46interagir com ele de forma específica e
4:40:49não somente, por exemplo, lá com o
4:40:50agente principal, tá bom? E segundo, e
4:40:52por último aqui, na verdade, né? Segundo
4:40:53não, ele nasce em linguagem natural e
4:40:55não no código, né? no seu repositório,
4:40:58no seu projeto. O Cloud que constrói
4:40:59esse time de acordo com a necessidade e
4:41:02de acordo com o que você pede para ele,
4:41:03tá bom? Então ele que vai gerenciar isso
4:41:06ali com você, conversando com ele e não,
4:41:08por exemplo, sendo definido no seu e na
4:41:10sua pasta cloud, no seu repositório, OK?
4:41:12Então, turma, nesse caso aqui é isso que
4:41:15são subagents e agent teams, OK? Essa
4:41:17que é a diferença entre eles, essa que
4:41:19são as aplicações de cada um deles e
4:41:21também a parte conceitual deles de forma
4:41:22um pouco mais profunda, né? Então, a
4:41:24gente já tinha falado antes de subir
4:41:25agents, agora aprofundei um pouco mais.
4:41:27E nos Agent Teams, eu apresentei e
4:41:29aprofundei agora para você, OK? E agora
4:41:31eu quero fazer duas coisas. A primeira é
4:41:34voltar aqui nesse projeto da nossa skill
4:41:36para analisar o que se a gente retornou
4:41:37pra gente, o que que ele alterou, OK? E
4:41:39também eu quero depois gerar aqui um
4:41:41subente lá pro nosso projeto da nossa
4:41:43área de membros, tá? Então aqui ele
4:41:45veio, ele fez algumas coisas aqui,
4:41:46alterou alguns documentos como nosso
4:41:48skill.md, OK? ele retorna aqui um
4:41:51relatório pra gente. Então ele criou um
4:41:52novo script, tá? Que vai chegar tudo
4:41:55antes de iniciar. Então ele confere
4:41:57tudo, todas as dependências aqui. Então
4:41:59a parte do YouTube, o Node, o FFMPEG, o
4:42:02Whsper, o Pythk e os cooks, OK? Ele
4:42:04torna aqui o erro claro com instrução de
4:42:06correção para cada dependência faltando.
4:42:08Perfeito. Ele detecta o node, encaminha
4:42:10o Windows com espaço e passa. Então ele
4:42:12detecta aqui o nosso node, que era o que
4:42:13tava dando problemas antes, não tava
4:42:15identificando, tá? E adiciona aqui a
4:42:17parte de componentes pro YouTube, né?
4:42:19aquele desafiozinho de mostrar que é uma
4:42:21sessão real, OK? Detecta o FFM peg no
4:42:24injetiv no PEF, OK? E salva a sessão
4:42:26real do arquivo numa variável aqui, tá?
4:42:28Não não venha mais como M4A para MP3 sem
4:42:31converter. Perfeito. E deixa eu ver
4:42:34aqui. Ele fez atualizações no script de
4:42:35transcrição. Então agora usa os arquivos
4:42:37temporários, como ele mapeou aqui em
4:42:39cima, lê a exensção real do arquivo,
4:42:41localiza o FFM peg e também força aqui a
4:42:45usar a GPU, né? Então ele não vai
4:42:47utilizar a CPU. Deixa eu ver.
4:42:49script setup também adicionou aqui
4:42:52suporte a outros computadores, né, pelo
4:42:54que eu entendi. Deixa eu ver. Eu acho
4:42:56que é isso, tá? Essa parte aqui
4:42:57realmente não sei o que que é que ele
4:42:58referenciou aqui. Lo que detecta a
4:43:01GPUIDIA automaticamente e também flag
4:43:04cuda para reforçar a reinstalação com
4:43:06cuda. Ok. Depois aqui na skill todos os
4:43:08comandos agora usam prefixo. Então
4:43:10resolve erro do arquivo não encontrado
4:43:12no original. Ok. Passo zero com tabela
4:43:15de erro comum e soluções diretas e
4:43:17instrução clara sobre cooks. OK? Então,
4:43:19basicamente agora a ideia é que essa
4:43:21sessão funcione muito melhor. Então, o
4:43:23que eu vou fazer aqui é pegar um outro
4:43:25link de um vídeo meu do YouTube. No
4:43:26caso, eu vou pegar aqui, deixa eu
4:43:28encontrar um vídeo curto para que a
4:43:30gente não tenha muito problema, tá? Eu
4:43:32quero pegar pelo menos um vídeo aqui que
4:43:33tenha um conteúdo básico, esse daqui
4:43:35sobre não utilizar. Eu vou pausar aqui,
4:43:38pegar o RL desse vídeo e falar para ele
4:43:41gerar a transcrição. Utilizando esse
4:43:43vídeo aqui. Quero que você gere a
4:43:44transcrição desse vídeo. Quero que você,
4:43:47na real, deixa eu falar o seguinte,
4:43:48quero que você use a skill YouTube to
4:43:50whels para esse vídeo aqui. Vou mandar
4:43:52aqui, vou colocar dois pontos, vou
4:43:54mandar o vídeo. Eu vou só analisar aqui
4:43:56de começo o que ele vai gerar e depois
4:43:58eu vou abrir uma nova sessão aqui do meu
4:44:01cloud Code pra gente já fazer o nosso
4:44:02subagente lá nossa parte do nosso,
4:44:06como é que posso dizer? Do nosso, nossa
4:44:08área de membros que eu já tava
4:44:09esquecendo o nome. Beleza? Ele chegou
4:44:11aqui as dependências, tá? Pelo visto ele
4:44:14já tá seguindo bem melhor aqui o passo a
4:44:16passo do skill. MD, tá bom? Então parece
4:44:18que ele já tá realmente seguindo melhor
4:44:19aqui o que ele precisa fazer, porque eu
4:44:21lembro que antes ele não tava seguindo
4:44:22muito bem esses passos, tá? Ele
4:44:25verificou aqui, tá tudo OK. Então, node,
4:44:27FFM PEG, Openi, Winsper, o Pythk, os
4:44:31cooks do YouTube. Tá fazendo o download
4:44:33do áudio no YouTube agora. Vou só
4:44:35esperar ele gerar essa parte aqui pra
4:44:36gente ver, ó. Deu algum erro? Deixa eu
4:44:39ver. É, então está formado disponível.
4:44:42Foi. Beleza. Deu aqui no formato que ele
4:44:44tentou baixar, volvertei para MP3. É
4:44:46aquele mesmo problema, tá? Problemente é
4:44:48que essa parte do YouTube tá dando algum
4:44:50probleminha aqui. Então não sei se foi
4:44:52necessariamente aqui uma parte do de
4:44:55baixar áudio ou algo do tipo, porque eu
4:44:57já utilizei aqui no outro projeto. Acho
4:44:59que até tava aqui com ele aberto, não,
4:45:01mas já utilizei em outro projeto. É algo
4:45:03semelhante para baixar vídeos do YouTube
4:45:04e é de boa, tá? Qualquer coisa a gente
4:45:06pode tentar pegar esse projeto e aplicar
4:45:08nele para eh ver se a gente consegue
4:45:10extrair melhor isso daqui, tá? Porque tá
4:45:11dando erro. Mas enfim, eu vou deixar ele
4:45:13rodando aqui, depois a gente analisa de
4:45:15forma geral. O que que o que ele foi
4:45:16feito. Eu vou abrir aqui uma nova sessão
4:45:18do meu anti gravity. E para você fazer
4:45:20isso, basta você apertar shift contrtrl
4:45:22N. Ele vai abrindo novas sessões. Você
4:45:25pode abrir quantas sessões você quiser,
4:45:26que nem eu acabei de fazer aqui. Só
4:45:28cuidado aí para você também não é lutar
4:45:30demais o seu computador. Inclusive, algo
4:45:32que dá para fazer aqui, eu quero mostrar
4:45:33para você, eu vou mostrar aqui nesse
4:45:35daqui que vai ser melhor. Deixa eu abrir
4:45:36aqui a nossa área de membros, nosso
4:45:39members club. Deixa eu ver aqui onde é
4:45:41que tá aqui. Members club. Vamos abrir
4:45:44aqui. Que que a gente pode fazer? A
4:45:46gente pode tanto abrir duas sessões do
4:45:48antigravery para que a gente trabalhe
4:45:50aqui em dois projetos em simultâneo com
4:45:52o cloud code, como eu também consigo e
4:45:55ter várias sessões aqui do meu cloud
4:45:56code trabalhando em partes diferentes do
4:45:58aplicativo, tá? Isso daqui precisa de um
4:46:00pouco de cuidado porque não é tão bem
4:46:01coordenado pelo cloud, tá? Mas seria um
4:46:04pouco mais semelhante com aquela parte
4:46:05de engams. A diferença é que eles não
4:46:07comunicam entre si, OK? Eles têm aquela
4:46:09janela mais aprimorada, são um pouco
4:46:11mais avançados que os subgents, porém
4:46:14eles não se comunicam entre si igual os
4:46:16agent teams. E também tem que tomar
4:46:17cuidado porque eles não são limitados.
4:46:19Então justamente por eles serem mais
4:46:21avançados, acaba que eles não têm tanta
4:46:23limitação. E essa limitação às vezes não
4:46:25é muito boa, porque eles podem acabar
4:46:26mexendo arquivos aqui simultaneamente,
4:46:28que é justamente aquele problema que a
4:46:29gente bateu a tecla que pode ser muito
4:46:31complicado e pode gerar um problema pra
4:46:33gente, ok? Então aqui eu vou fechar a
4:46:35code aqui, beleza? Eu vou criar aqui uma
4:46:37nova sessão. Eu não quero utilizar essa
4:46:39mesma sessão, até pra gente não gastar
4:46:40tanto e não começar com aquele contexto
4:46:42poluído. Aqui ele já tem a informação do
4:46:44meu cloud. MD, então ele já sabe sobre o
4:46:46que o projeto se trata. E aqui o que eu
4:46:47vou pedir para ele, tá? Acaba que nesse
4:46:49projeto aqui não tem nada muito assim,
4:46:51nossa, a gente precisa de algo
4:46:52diferente, precisa de um subagent, mas
4:46:54eu quero mostrar como que você pode
4:46:55construir um sub agent aqui utilizando o
4:46:58cloud code. Então o que eu vou fazer
4:46:59para ele basicamente é o seguinte. Eu
4:47:01vou aqui mandar o áudio para ele
4:47:02basicamente pedindo para ele criar um
4:47:04subagent aqui dentro do nosso projeto,
4:47:05OK? que eu quero que ele analise o nosso
4:47:08banco de dados, quero que ele analise a
4:47:10nossa estrutura do banco de dados e se
4:47:11tem algo que pode ser feito para
4:47:13aprimorar, para ter um resultado melhor,
4:47:14OK? Como eu disse aqui, nesse caso, a
4:47:16gente não tem muita aplicação de subente
4:47:18aqui que a gente realmente necessite.
4:47:19Então, eu quero mais utilizar e esse
4:47:21projeto como exemplo de como que você
4:47:23pode pedir pro cloud code criar um
4:47:24subagente pra gente ver qual que é o
4:47:26resultado que ele vai criar e a gente
4:47:27também vê o nosso subagente aqui agindo
4:47:29e o que que ele vai falar, o que que ele
4:47:31vai executar aqui. A gente já criou
4:47:33antes um subente com cloud code, né? a
4:47:35gente utilizou lá no começo do nosso
4:47:36curso, porém aqui eu quero algo mais
4:47:37específico pra gente também ver eh
4:47:39melhor isso na prática e realmente um
4:47:40caso real de uso, OK? Então vamos lá,
4:47:43vou pedir aqui para ele, eu quero que
4:47:45você crie um subagent e especialista em
4:47:48banco de dados e focado em analisar
4:47:50bancos de dados e descobrir se eles
4:47:52realmente estão bons, se a estrutura do
4:47:54banco de dados são boas, se tem boas
4:47:56conexões, se estão bem estruturados e
4:47:58que consigam também analisar o quão
4:48:00escalável, o quão performático esse
4:48:02banco de dados é. E caso não seja, caso
4:48:05tenham problemas ali na estrutura do
4:48:06banco de dados, na modelagem, ele
4:48:08consiga sugerir boas modificações, boas
4:48:10alterações nesse banco para que ele
4:48:12realmente fique um banco bem
4:48:14estruturado, escalável, etc. Quero que
4:48:16você crie um suagente para isso. Eu
4:48:18fosse aqui o subagente porque eu não
4:48:19lembrava se eu já tinha combinado ou não
4:48:20ou se estava claro, mas enfim, pedi
4:48:22aquele criar para ele criar um suagente,
4:48:25OK? Aqui tem um ponto que pode acontecer
4:48:27que é o seguinte, ao invés dele criar de
4:48:28fato um suagente no projeto, ele invocar
4:48:31aqui um suagente, porque o C tem essa
4:48:33questão também, ele pode simplesmente
4:48:36invocar aqui dentro desse projeto um
4:48:38suagente. Então aqui dentro ele vai só
4:48:41chamar um suaggente, vai falar: "Ó, eu
4:48:42quero que você faça isso". Ele vai
4:48:44executar e vai morrer tá? Não chega a
4:48:46ter realmente aquele suagente aqui no
4:48:48nosso repositório, tá? No nosso projeto
4:48:49aqui, tá bom? Então, basicamente, ele
4:48:51também pode fazer isso, mas eu espero
4:48:53que aqui ele
4:48:56eh ele crie aqui um subagente dentro do
4:48:58projeto, tá? Senão a gente pede para ele
4:49:00fazer isso. Beleza? Ele tá lendo ali a
4:49:02SK Creator, tá listando se de plugins,
4:49:05tá? Tá meio estranho que ele tá fazendo,
4:49:06você bem honesto. Tá lendo aqui o as
4:49:09configurações do cloud code minha, OK?
4:49:11Então aqui, por exemplo, ele tá vendo
4:49:13aqui que eu tenho o GitHub, que eu tenho
4:49:15aqui, por exemplo, acho que
4:49:18é os os plugins que eu tenho aqui, né? E
4:49:20também, deixa eu ver, um hook que eu
4:49:23tenho aqui e também uma permissão, tá?
4:49:26Vamos ver. Structure tá criando aqui um
4:49:29plugin. Aparentemente tá querendo criar,
4:49:31não sei. Ele tá lendo aqui um plugin.
4:49:32Ele tá lendo uma série de arquivos que
4:49:34eu tô pensando aqui se ele realmente
4:49:35sabe o que ele tá fazendo, tá? Eu vou
4:49:37deixar aqui ele trabalhando e assim que
4:49:38ele tiver pronto, tiver retornado alguma
4:49:39coisa, eu volto com você, ó. que ele
4:49:41começou a fazer, tá? Então agora entendi
4:49:43o que ele tava procurando de fato. Ele
4:49:45tava analisando toda a estrutura de
4:49:46plugins, toda estrutura de skills para
4:49:49criar aqui um subagente, tá? Então ele
4:49:51gerou aqui um planozinho,
4:49:53tá escrevendo aqui a skill pro
4:49:54subagente, tá? O DB Analyzer, tá criando
4:49:57também um plugin ponjon metadata, tá?
4:49:59Então não sei exatamente o que ele tá
4:50:00criando esse plugin, qual que é o
4:50:02objetivo desse plugin, OK? Depois vou
4:50:04perguntar para ele. Tá registrando em
4:50:07plugins instalados e tá ativando nas
4:50:09configurações, tá? Tá? Então,
4:50:10basicamente, o que que ele tá fazendo
4:50:11aqui? Ele criou esses plugins aqui,
4:50:14deixa eu carar só uma nova sessão para
4:50:15não impactar aquela, esses plugins aqui
4:50:18que a gente pode ter do, como é que
4:50:20posso dizer, do nosso cloud code que a
4:50:22gente pode utilizar aqui, tá bom?
4:50:23Inclusive, depois eu vou explicar sobre
4:50:25plugins, que eu ainda não expliquei, que
4:50:27é exatamente o próximo conteúdo que
4:50:28erera explicar aqui pra gente finalizar
4:50:30o nosso curso, tá? Tá? Então vai est bem
4:50:32legal, vai est bem completo. Ele
4:50:33inclusive já começou a trabalhar essa
4:50:34questão dos plugins. E cara, uma coisa
4:50:36sensacional aqui do Cloud Code é é que
4:50:39ele realmente tem um conhecimento muito
4:50:40bom sobre toda a estrutura interna dele.
4:50:42Então sobre como funciona o produto,
4:50:44sobre hooks, sobre cara, que posso
4:50:46dizer? Sobre skills, sobre MCP, sobre
4:50:49plugins, OK? Sobre subagents. Então você
4:50:51consegue, por exemplo, utilizar o
4:50:53próprio Cloud Code para executar tudo
4:50:55isso, tá? Para que ele realmente consiga
4:50:57fazer tudo que você precisa. Então você
4:50:58não precisa, por exemplo,
4:50:59necessariamente saber como criar um
4:51:01subagent, como executar cada coisa. Você
4:51:03pode simplesmente pedir para esse sub
4:51:06sub, pro cloud code mesmo criar tudo que
4:51:08você precisa. Então, cara, ele cria o
4:51:09sub agent, cria a skill que você
4:51:11precisa, cria o MCP que você precisa.
4:51:13Você não precisa necessariamente saber o
4:51:15como fazer, sabe? Você só precisa
4:51:17realmente pedir para ele. Você só
4:51:18precisa saber que é possível fazer para
4:51:20que você possa pedir para ele e para que
4:51:22ele te entregue um bom resultado, ok?
4:51:24Nesse caso aqui, ele me falou que ele
4:51:26criou um subagente, tá? Então aqui ele
4:51:28colocou o plugin, qual que é a
4:51:29localização dele e quais são as
4:51:31capacidades desse agente. Então quando
4:51:32ativado, ele executa uma análise
4:51:34completa em três etapas. Coleta de
4:51:36dados. Então ele usa aqui provavelmente
4:51:38MCP, tá? É o recomendado por ele,
4:51:40podando oito queres SQL de introspecção
4:51:42ao vivo. Então para pegar as estruturas,
4:51:44para pegar aqui eh basicamente as
4:51:46relações, então as chaves primárias, as
4:51:48chaves secundárias e as cass, OK? Eh,
4:51:51index resistentes, status de RLS por
4:51:53tabela, tamanhos da tabela estimativa de
4:51:55rows, FK sem index, adivis automáticos
4:51:58para base e fallbacks para arquivos
4:52:00locais. OK? Análise emito dimensões,
4:52:03estrutura e normalização e chaves
4:52:05primárias identificadores, chaves
4:52:07estrangeiras e relacionamentos, índes
4:52:09segurança, né? RLS do SPAS,
4:52:11escalabilidade, integridade dos dados e
4:52:13antipatérnios comuns. E depois retorna
4:52:15um relatório estruturado com elf scord
4:52:17z0 a 100, problemas críticos, warnings,
4:52:20melhorias. SQL, então copy p para cada
4:52:23correção, OK? Então, uma correção aqui
4:52:24para cada problema e também um plano de
4:52:26ação priorizado, OK? Então, basicamente
4:52:29ele fala simplesmente diga analisa o
4:52:31banco, database, chacar banco, estrura
4:52:33do banco e o a gente ativa
4:52:34automaticamente. OK? Deixa aqui iniciar
4:52:37uma nova sessão para ver se tá aqui nos
4:52:38plugins ou para ver para onde que vai
4:52:40parar isso daqui, tá? Ó, que maravilha.
4:52:43Eu tinha mostrado para você, você pode
4:52:44até voltar aqui um pouco na aula, que a
4:52:47gente tinha aqui os plugins e só
4:52:48apareceu o front change design, o skill
4:52:50creator e o super base. Não aparecia
4:52:52esse DB analyzer que agora ele aparece,
4:52:54tá? E o legal é aqui que ele identifica
4:52:56de onde que é. Então, por exemplo, todos
4:52:58esses daqui eles estão vindo desse
4:52:59marketplace que é o Cloud Plugins
4:53:01oficial da Untrock, @cloudpluginsan.
4:53:04E esse daqui ele tá referenciado como
4:53:06@local, ou seja, que tá na minha máquina
4:53:08aqui dentro, tá? E aqui eu vou falar
4:53:10para ele o seguinte, eu quero que você
4:53:12analise a estrutura do meu banco de
4:53:13dados. Vou falar isso para ele e vou
4:53:16rodar, tá? Então aqui, deixa eu rodar
4:53:18barra plugins novamente. Ele não traz
4:53:21aqui pra gente essa informação, mas aqui
4:53:23nos plugins eu vou explicar mais pra
4:53:24frente, tá? Mas a gente tem aqui
4:53:25basicamente o quê? A gente pode ter
4:53:27tanto skills aqui dentro, como é o caso
4:53:29do frontend, do skill creator, como a
4:53:31gente também pode ter MCPs, como é o
4:53:33caso aqui do Super Base, e como também a
4:53:35gente pode ter os plugins, que aqui
4:53:36provavelmente ele tá carregando um
4:53:37subagent, como é o caso do DB Analyzer,
4:53:40OK? Eu queria uma estrutura bem mais
4:53:41simples, bem mais simples mesmo, mas já
4:53:44que é isso que ele trouxe pra gente,
4:53:45tudo bem, tá bom? Então, se erro, deixa
4:53:47eu ver, don't permission. OK. Tá, o que
4:53:50que aconteceu aqui? Ele tá pegando o
4:53:54basicamente o ECP de outro projeto que
4:53:55eu trabalhei ontem. Então eu vou pegar
4:53:57aqui rapidinho para mudar o MCP do meu
4:53:58projeto e eu já volto, tá? Mudar aqui no
4:54:01caso a conexão. Turma, voltei aqui, tá?
4:54:03Eh, basicamente tinha feito um novo
4:54:04projeto hoje. Então essa parte que você
4:54:06tá vendo aqui, eu tô gravando dois dias
4:54:07depois daquela primeira parte do curso
4:54:09que foi até o deploy do nosso projeto.
4:54:11Então eu tinha trocado aqui o projeto,
4:54:13já tava trabalhando em outro projeto
4:54:14aqui, OK? Inclusive tá fazendo aqui umas
4:54:16coisinhas, né? Maravilha. Mas enfim,
4:54:19aqui eu vou pedir pr ele basicamente é
4:54:21fazer de novo, porque agora já tem tudo
4:54:22que ele precisa. Eh, pode entrar
4:54:24novamente. Eu já alterei tudo e agora
4:54:26tem tudo que você precisa. É, vamos ver.
4:54:28Eu só quero ver aqui para aqui onde que
4:54:31ele criou. Então, vou pegar aqui esse
4:54:33caminho, né, esse PF aqui dele. Ele
4:54:35verificou, as tabelas estão lá, tá
4:54:37executando tudo. Enfim, vou deixar ele
4:54:38ali rodar e depois a gente vê o que ele
4:54:40gerou, ó. Legal. Basicamente a gente vai
4:54:42falar, passado o caminho errado, OK?
4:54:44Vamos analisar aqui. É, cloud plugin.
4:54:47Aqui tem o plugin. Jzon, na verdade,
4:54:50aqui, ó. Aí eu tô dentro do DB Analyer,
4:54:51né? Então, que que a gente tem aqui? A
4:54:54gente tem a pasta poncloud por padrão. A
4:54:56gente tem aqui os plugins instalados,
4:54:58OK? Aqui a gente tem o cash, a gente tem
4:55:00aqui os plugins locais e aqui a gente
4:55:02tem o DB Analyzer e tem aqui 1.0, que
4:55:04seria basicamente a primeira versão. Aí
4:55:06o que a gente tem é a skill do DB
4:55:07Analyzer, que a gente tem esse arquivo
4:55:09ponmd, eu vou abrir aqui pra gente
4:55:10explorar um pouco. E aqui também a gente
4:55:11tem o cloud.plugin. E aqui eu acho que é
4:55:13basicamente a configuração para que ele
4:55:14apareça lá pra gente, tá? Então
4:55:16realmente name descrição, né? Então o
4:55:18que que ele faz? E acho que é isso.
4:55:21Beleza. Deixa eu ver aqui o ponto
4:55:23plugin. Já abriu. Não abriu nesse
4:55:27projeto. Deixa eu ver. Não. Depois a
4:55:29gente precisa ver aqui também. Deixa eu
4:55:31ver aqui onde é que foi parar que abriu.
4:55:33Ah, ele abriu com a porcaria do cursor,
4:55:35então não tem problema, tá? É que o
4:55:37cursor ele demora mais para abrir e ele
4:55:38não dá nenhum aviso. Eu ten preferido
4:55:40muito mais o antig como ID é, justamente
4:55:42pela velocidade dele. Então aqui tem o
4:55:44nome, tem a descrição dele, OK? E
4:55:46basicamente tem aqui os gatilhos que
4:55:48podem ser utilizados para ele, né? Então
4:55:50coisa que posso falar que pode suar como
4:55:51gatilho ali para ele ativar. E aqui tem
4:55:53todas as crias que ele tem que utilizar
4:55:55aqui para obter os dados. O passo dois
4:55:57de analisar, OK? E o passo três aqui de
4:55:59gerar o score. Então aqui quanto mais
4:56:03baixo for, mais precisa de uma
4:56:04reestruturação. Quanto maior for mais
4:56:07aqui tá no nível bom, tá realmente
4:56:09pronto pra produção. Então aqui tem o
4:56:11sumário e tudo mais. Beleza? Esse é o
4:56:13resultado que a gente vai ver agora
4:56:14analisando de fato o output do nosso
4:56:16agente, tá? Então ou ele vai dizer que a
4:56:18gente tem um banco de dados bom lá do
4:56:19Members Club ou um banco de dados ruim,
4:56:22tá? Então bora lá. Estrutura do banco.
4:56:24Então ele retornou tudo, né? Aqui as
4:56:26observações dele e tudo mais. Deixa eu
4:56:28fechar aqui pra gente ter mais espaço
4:56:29para analisar. Retorno aqui uma view que
4:56:31a gente tem. OK. As funções SQL,
4:56:35tá? Deixa eu ver. RS. Todas todas elas
4:56:38tm RLS. Obração, tá? Só aliado com
4:56:40cloud. MD. algumas coisas posso
4:56:42verificar se quiser. É, cara,
4:56:43basicamente é que ele não me retornou o
4:56:44relatório completo que ele deveria, mas
4:56:46eu vou pedir para ele. Eu quero que você
4:56:47me retorne o relatório completo da forma
4:56:49como você deve fazer. Cara, na verdade,
4:56:51que eu tô pensando aqui, tá? Eu tô
4:56:52pensando se ele realmente utilizou o
4:56:54plugin. Deixa eu ver.
4:56:57Você utilizou o plugin de DB analyzer?
4:56:59Vamos ver aqui que ele que que ele vai
4:57:00responder. Eu acho que ele não utilizou.
4:57:02Vamos ver. Tá abriu. Quero que você
4:57:04utilize ele. Pô, cara, aí você me
4:57:06quebra. Eu pedi para ele justamente
4:57:08utilizar, tipo assim, deveria cair aqui
4:57:10nos triggers, OK? Deixa eu até fazer um
4:57:13teste, deixa eu dar um barra context
4:57:15aqui para ver se aparece e tudo mais.
4:57:18Então aqui a gente tem as skills, tem o
4:57:20PEF, tem a categoria e é basicamente
4:57:23isso, tá? É até estranho porque aqui
4:57:25deveria também aparecer o MCP. Então,
4:57:28deixa eu ver. É, eu vou testar rodar um
4:57:30barra context lá no outro pra gente
4:57:32analisar, mas enfim, agora eu acho que
4:57:34ele vai utilizar. Deixa eu ver. Ele leu
4:57:37aqui o plugin, né? A DB Analyer Skill,
4:57:40OK? Ele não fez bem o que eu queria, tá?
4:57:43Ele fez algo que é legal pra gente
4:57:44analisar aqui, que é a parte de fato do
4:57:46plugin, que é algo que eu vou falar um
4:57:47pouco mais em detalhes agora com você,
4:57:48mas ele não criou exatamente um
4:57:50subagente. Então vou falar aqui com ele.
4:57:52Cara, você não criou exatamente um
4:57:53suagente, né? Eu queria que fosse um
4:57:55subreagente aqui no projeto que eu
4:57:57pudesse invocar ele para fazer essa
4:57:59análise sempre que eu precisasse. De
4:58:00fato, um suaggente no projeto, entende?
4:58:03Eu vou mandar aqui para ele, vou mandar
4:58:04para ele fazendo isso. Enquanto isso, o
4:58:07outro aqui tá analisando de fato com o
4:58:08plugin como deve ser, OK? Então ele vai
4:58:11gerar aqui um estado bem mais
4:58:11estruturado, bem melhor do que aquele
4:58:12que tinha antes. E aqui ele também vai
4:58:15gerar um resultado. Aqui eu vou só mudar
4:58:17para eles pularem, né? Para eles não
4:58:18ficar me pedindo permissão. Enquanto
4:58:20isso, car via instituto que você pedir.
4:58:23OK. É esse aqui que eu quero, tá? Esse
4:58:24aqui que ele vai executar e que eu quero
4:58:26que ele faça. É que ele de fato cria um
4:58:28suagente. Aquele no caso não fez o que
4:58:29eu queria, mas tudo bem, tá? Aí ele foi
4:58:31numa direção legal, uma direção boa ali
4:58:33de ter a skill e tudo mais, mas
4:58:35realmente quero subgente. Por quer
4:58:37diferença de a gente ter uma skill como
4:58:38aquela num plugin e tudo mais e a gente
4:58:40ter de fato um suagente? O suagente ele
4:58:43não vai ter o contexto que a gente tem
4:58:44na nossa conversa. Então digamos que ele
4:58:45não vai ter vieses ali carregados com
4:58:47ele. E também quando ele fizer toda essa
4:58:49análise aqui que ele tá fazendo, ó. E
4:58:50cara, ele busca várias informações do
4:58:52banco de dados, eh, busca tudo que ele
4:58:55tem aqui, tá? Então aqui ele retornou um
4:58:56relatório pra gente, por exemplo, ó. E
4:58:58todo is tudo isso que ele procurou aqui
4:59:00consome token, tá? Então ele acaba que
4:59:03acaba poluindo o nosso contexto. Não faz
4:59:05a gente economizar de fato um pouco sim,
4:59:07porque esses dados aqui que ele pegou
4:59:09não estão poluindos lá, não estão
4:59:11poluindo o nosso contexto, então a gente
4:59:12acaba utilizando menos tokens. Porém,
4:59:14então de certa forma ele acaba
4:59:15economizando sim um pouco de tokens, mas
4:59:17o principal é não sujar a nossa janela
4:59:19de contexto, tá? E aqui ele retornou uma
4:59:21análise dele que nesse caso 84%, que é o
4:59:25que tá aqui em basicamente pequenas
4:59:27melhorias recomendadas, tá? Então aqui a
4:59:29gente tem um sumário das tabelas
4:59:30analisadas, total de colunas e chaves
4:59:32tangiras, índexes e RS ativado e funções
4:59:35SQL, tá? Então a gente tem aqui algumas
4:59:37funções SQL, critical e su, tá? Então a
4:59:39gente tem que corrigir, nenhum problema
4:59:41é crítico, tá bom? A gente tem aqui
4:59:43algumas colunas com chaves estrangidas,
4:59:45sem índice dedicado. Então quais são
4:59:47afetadas? a tabela de courses created.
4:59:50OK? Então, quem criou esse curso? Deixa
4:59:52eu ver a parte aqui de lições, então, em
4:59:54relação question ID, de notas e também
4:59:57de a pergunta da lição relacionado com o
4:59:59ID. OK? Aí, deixa eu ver quies que fazem
5:00:02join para essa coluna fazem full table
5:00:05scan. Então, qual que é o problema aqui
5:00:06de não ter um index? Tá? Basicamente
5:00:08quando a gente não tem um índex numa
5:00:09tabela, quando a gente faz uma query,
5:00:11ela vai ter que olhar para toda a
5:00:13tabela, ao invés de olhar somente para
5:00:14onde realmente importa e onde tem o que
5:00:16a gente precisa, tá bom? Então, conforme
5:00:18mais coisa a gente vai tendo ali dentro,
5:00:19mais eh informações a gente vai tendo,
5:00:22acaba que a gente vai ter muita, muita
5:00:23informação ali. E o nosso banco, sempre
5:00:25que ele for rodar aquela query, ele vai
5:00:27passar por todas essas informações e
5:00:29acaba que a gente não vai ter o melhor
5:00:30resultado, porque vai demorar mais para
5:00:32gerar a nossa query, é para gerar o
5:00:33resultado, no caso, né, a gente obter o
5:00:35resultado, vai também ter mais consumo
5:00:37ali de recursos do nosso banco. Então
5:00:39acaba que o ideal é a gente sempre ter
5:00:40os index quando a gente precisa deles,
5:00:42OK? E aqui os outros dois erros que ele
5:00:44retornou aqui é basicamente se que a
5:00:46gente não tem um valor válido, né? Então
5:00:48não define, por exemplo, ah, pra lessons
5:00:50type, que é basicamente o tipo de lição
5:00:52que a gente tem quiz e vídeo, a gente tá
5:00:53utilizando somente um texto. Então não
5:00:55tem, por exemplo, ah, uma verificação se
5:00:56é realmente valor válido ou não, OK? E
5:00:58também aqui na parte de perfil a gente
5:01:00não tem é uma verificação se é member ou
5:01:02se é admin, mas por enquanto tudo bem.
5:01:04Isso daqui é algo que a gente poderia
5:01:05mudar depois, tá? Então que ele também
5:01:07trouxe as car tabela, para cada
5:01:10correção. Trouxe aqui todo fix, OK?
5:01:13E no total ele trouxe aqui cinco eh
5:01:16coisas de alerta para melhorar, tá? Para
5:01:18corrigir. Então sem parciais incluindo
5:01:20as mulanas de filtro, OK? E também
5:01:22trouxe aqui algumas melhorias, tá? Então
5:01:24é que a gente duplica ali no profiles.
5:01:26Email e no tudo bem porque são partes
5:01:28separadas do app, tá? São esquemas
5:01:30separados e a gente acaba não utilizando
5:01:32o alf, a gente acaba utilizando sempre o
5:01:34profiles. Pra gente poder ter esses
5:01:36e-mails e trabalhar com eles. E trouxe
5:01:37aqui mais algumas informações. Ele
5:01:39trouxe bastante coisa. No geral eu achei
5:01:41muito boa, tá? Só não foi executada da
5:01:43maneira que eu gostaria, que era o quê?
5:01:45Que ele criasse de fato aqui essa pasta
5:01:47p cloud e criasse aqui os agents, tá?
5:01:50Que a gente pode ver aqui, ó. Eu vou
5:01:51revelar no explorador de arquivos. A
5:01:53gente tem dentro do members Club tem a
5:01:55pasta pontoud e aqui dentro a gente tem
5:01:57a pasta agents e aqui a gente tem o db
5:02:00analyzer e pmd que basicamente aqui tem
5:02:03toda a estrutura dele, tá? Que é um
5:02:05agente analisador de banco de dados, tá?
5:02:07arquiteto sors de banco de dados com
5:02:08todo o prompt aqui, tá? Então é
5:02:10realmente esse daqui que eu gostaria de
5:02:11utilizar. Nesse caso eu não vou rodar
5:02:13aqui porque a gente já rodou essa
5:02:14análise, né? A gente já viu o que ele
5:02:15retornaria, que é basicamente a mesma
5:02:17coisa, já que o prompt é basicamente o
5:02:19mesmo, tá? Mas aqui tá a estrutura que a
5:02:21gente precisa para utilizar como
5:02:22subagente e tá muito legal essa análise
5:02:24aqui tá muito boa. E cara, como foi ele
5:02:27mesmo que criou, ele mesmo já seguiu
5:02:29algumas boas práticas muito boas de
5:02:31banco de dados, tá? Tá, mas por exemplo,
5:02:32fosse um banco de dados criado por mim
5:02:33mesmo, provavelmente teria aqui muito
5:02:36mais coisa para analisar e talvez a
5:02:37minha nota não seria tão boa, tá? Então
5:02:39é legal que ele mesmo já, como ele mesmo
5:02:41já criou, a gente já tem um estado muito
5:02:42bom, mas ainda assim tem melhorias que a
5:02:44gente poderia aplicar e checar antes de
5:02:46mandar isso daqui pra produção, o que é
5:02:48algo bem bacana. E agora a gente vai
5:02:49entrar aqui na reta final do nosso
5:02:51curso, onde eu quero falar para você
5:02:52sobre plugins e também te dar um mapa
5:02:54sobre quando que você utilizar cada
5:02:56recurso do cloud code. Então vamos lá,
5:02:58né? Os plugins, o que que são os
5:03:00plugins? Basicamente, basicamente a
5:03:02gente tem plugins oficiais tropic.
5:03:04Então, por exemplo, se eu voltar aqui no
5:03:06meu cloud code, deixa eu só encontrar
5:03:07ele aqui, eu posso vir aqui em barra
5:03:09plugins, OK? E aqui eu tenho todos os
5:03:11plugins que eu tenho, que basicamente
5:03:13posso ter os locais, como a gente acabou
5:03:14desenvolvendo aqui sem querer, como
5:03:16também posso ter os plugins oficiais
5:03:18tropic, ou seja, aqueles plugins que
5:03:20eles mesmos me fornecem por aqui, tá?
5:03:22Então eu uso aqui esse caminho, né, o
5:03:24git hub repositório e também qual que é
5:03:26o caminho ali do repositório. Entra aqui
5:03:28no caso antropics/cloud traço plugins
5:03:30traço oficial. E aí aqui eu tenho todos
5:03:33os plugins que eles me fornecem, que é
5:03:34uma cacetada de plugins, são muitos
5:03:36plugins mesmo, OK? Então a gente tem
5:03:38vários aqui dentro, OK? Que são vários
5:03:40plugins que a gente pode utilizar e aí
5:03:42isso aqui contempla skills, agentes, eh
5:03:45contempla também MCPs, etc. Ok? Então,
5:03:48basicamente é o encaixamento final do
5:03:50produto. Então, ele é como se fosse um
5:03:52conjunto, é um pack, um bundle de
5:03:54skills, hooks, subagents e MCP servers
5:03:57num canto só, OK? Então, a gente pode
5:03:59ter vários plugins, lógico que cada um
5:04:01deles vai ter uma estrutura. Então,
5:04:03alguns vão ter hooks, outros não. Alguns
5:04:05vão ter subagents, outros não. Enfim,
5:04:07não tem uma regra de tipo, putz, precisa
5:04:09ter isso, isso e isso para ser
5:04:10considerado um plugin. OK, mas a gente
5:04:12costuma ali ter alguns plugins que tem
5:04:14skills, que tem subagents, alguns
5:04:16simplesmente não tem nada, OK? pode
5:04:17acontecer também, mas o mais comum é que
5:04:19ele pelo menos tem aí um ou dois,
5:04:21dependendo de cada caso, dependendo
5:04:22também da necessidade. Lembrando sempre
5:04:24que o objetivo aqui não é, por exemplo,
5:04:26é ter uma nomenclatura, ter uma
5:04:27definição de que é um plugin, mas sim
5:04:29tem ali o que vai te entregar o
5:04:30resultado. Se o que vai te entregar o
5:04:32resultado é skill, OK? Se é um subagent,
5:04:34OK. Se é só um hook, beleza. Tá
5:04:37entregando o que ele promete, entregando
5:04:38o que ele precisa entregar, ok?
5:04:40Lembrando que sempre aqui o foco é no
5:04:41resultado final em ter o máximo de
5:04:43qualidade possível, ok? E aqui a gente
5:04:45tem a distribuição via loja oficial
5:04:47geralmente, OK? Então, no caso dos
5:04:48plugins oficiais, esse, por exemplo, no
5:04:51caso da Antropic, é dele, dela mesmo,
5:04:54tá? É um plugin oficial. Tanto que se eu
5:04:56vir aqui em plugins, eu poderia
5:04:58adicionar outros plugins aqui dentro,
5:04:59inclusive da própria Antropic, mas você
5:05:01repararia que a maioria não possui esse
5:05:04bichinho aqui do Antropic, tá? Esse
5:05:05mascotezinho aqui, acho que a gente pode
5:05:07chamar assim. Então, aqui nos plugins e
5:05:09também no marketplace, OK? Isso aqui
5:05:11indica que é realmente oficial da
5:05:13Antropic, tá bom? E aqui eles olam numa
5:05:16prisão local temporária. Então, por
5:05:18exemplo, sua janela principal não fica
5:05:19completa de tralha que não importou, tá?
5:05:21Então, os seus tokens ali, o seu, sua
5:05:23janela de contexto fica livre, porque
5:05:24eles não vão ficar sempre ali ocupando a
5:05:27sua janela principal, ok? E aqui
5:05:29basicamente, qual que é o principal
5:05:30propósito dos plugins? Tá? Basicamente a
5:05:33dor que a gente tem é a mão na massa.
5:05:34Então, a gente escreve Hook, Skill, é,
5:05:37eamel. E tudo isso roda meio solto,
5:05:39sabe? Então a gente reza aqui para, por
5:05:41exemplo, ah, o nosso amigo ali sub tudo
5:05:42igual no repositório dele ou algo do
5:05:44tipo e acaba dando problema, né? A gente
5:05:47às vezes não tem a mesma coisa lá do
5:05:48outro lado ou por exemplo, às vezes a
5:05:49gente quer utilizar em outro projeto
5:05:51aqui e a gente não tem tão fácil, né? E
5:05:53a ideia do plugin é realmente facilitar.
5:05:55Então, por exemplo, a gente pode ter
5:05:56aqui um barra plugin diversal e pronto.
5:05:59A gente tem uma automação global pronta
5:06:01num enter só, então a gente só aperta
5:06:02ali e já roda, tá? Isso daqui é muito
5:06:04bom porque o time inteiro pode baixar na
5:06:06mesma exata configuração, na exata
5:06:08versão da Master e seguir o padrão da
5:06:11empresa, tá? Pressão quando a gente fala
5:06:12de ter um time, eh, seja um time seu,
5:06:14seja por exemplo em grandes empresas,
5:06:15isso aqui ajuda muito e ajuda muito
5:06:16também você a ter o seu conjunto de
5:06:18soluções muito fácil, tá? Então é comum
5:06:21que, por exemplo, você comece
5:06:22desenvolvendo ali seus projetos meio
5:06:24soltos, meio utilizando algumas skills
5:06:26que você vê por aí e tudo mais, mas é
5:06:27comum que com o tempo você comece a ter
5:06:29alguns padrões que você mesmo gosta de
5:06:31seguir, alguns padrões pessoais, ainda
5:06:33mais quando você desenvolve, por
5:06:33exemplo, muitas soluções pro mesmo
5:06:35nicho, pro mesmo objetivo ou, por
5:06:37exemplo, você tem ali um padrão que você
5:06:38gosta muito que o cloud estrutura e
5:06:40projetos ou algo do tipo, algo que te dá
5:06:42um resultado melhor, você gosta desse
5:06:43padrão. Então, pode ser que, por
5:06:45exemplo, você criar um plugin para você
5:06:47mesmo, um plugin que você realmente vai
5:06:48utilizar, seja uma boa opção, porque
5:06:50você vai ter ali, é tudo centralizado
5:06:52com muita facilidade. Então, os hooks,
5:06:54é, skill, subagentes, MCPs, tudo isso
5:06:57configurado num lugar só com muita
5:06:58facilidade. Então, basicamente esse é o
5:07:00propósito dos plugins, é oferecer
5:07:02basicamente centralização e também
5:07:04garantir que você possa compartilhar com
5:07:06mais pessoas e todos estando na mesma
5:07:08versão para que não tenha problemas, não
5:07:10tenha eh descompatibilidade ou algo do
5:07:12tipo, OK? E quanto que a gente usa cada
5:07:14um desses recursos que a gente viu ao
5:07:16longo desse curso, então, skills, etc.
5:07:18Tá? Vamos lá. Sessão única, a gente usa
5:07:21sempre, tá? É sempre sequencial, é
5:07:23simples, é uma via só. A gente sempre
5:07:25vai utilizar ali, é, quando a gente for
5:07:26tratar, por exemplo, o nosso cloud code,
5:07:28tá bom? Então, a gente sempre vai ter
5:07:29ali a nossa sessão única principal, onde
5:07:31a gente conversa com ele, desenvolve e
5:07:32tudo mais, ok? Lembrando que dependendo
5:07:34do que do que você vai desenvolver, do
5:07:36que você quer fazer ali dentro, vale a
5:07:38pena você utilizar uma sessão, fez ali
5:07:40alguma coisa, você cria uma nova sessão.
5:07:41Então, por exemplo, lá no Members Club,
5:07:43eu poderia ter uma sessão onde eu
5:07:44desolvi todo o projeto, eu poderia ter
5:07:46uma sessão separada, onde eu vou ter uma
5:07:47gente que só vai pegar o contexto geral
5:07:49do projeto e depois ele vai, por
5:07:51exemplo, criar uma nova feature ou algo
5:07:52do tipo, sem precisar ter todo aquele
5:07:54contexto de antes ou sem ter a janela de
5:07:56contexto tão poluída, ok? A gente também
5:07:58tem os subagentes. E quanto que a gente
5:08:00usa? Basicamente tarefas isoladas que
5:08:01podem sujar, que podem manchar, que
5:08:03podem encher a nossa janela de contexto
5:08:05com muita informação que, cara, a gente
5:08:07não quer para aquele caso ali, OK? A
5:08:08gente pode delegar algumas tarefas,
5:08:10mesmo que não seja uma tarefa que, por
5:08:11exemplo, suja muito a a janela de
5:08:13contexto, a gente pode delegar para esse
5:08:14suagente para que ele mesmo desenvolva
5:08:17ali dentro alguma coisa, para que ele
5:08:18mesmo faça alguma coisa e a gente tenha
5:08:19um pouco mais de facilidade, tenha um
5:08:21pouco menos de consumo ali na janela do
5:08:22nosso agente principal, tá? mesmo quando
5:08:24seja algo que assim, nossa, suja tanto,
5:08:26mas se você quer mandar para ele para
5:08:27que ele mesmo é faça o trabalho dele ali
5:08:30com mais flexibilidade, etc. E você
5:08:32mantenha um bom controle da sua janela
5:08:34de contexto, ok? A gente também tem os
5:08:36agents, ou seja, a gente usa quando a
5:08:38gente quer ter arquiteturas paralelas,
5:08:40OK? principalmente quando são gigantes
5:08:41que precisam de bate-papo entre mentes,
5:08:43ou seja, bate-papo entre os agentes.
5:08:45Então você tá desenvolvendo o projeto
5:08:46completo, separou todo ele em vários
5:08:48multia agentes ali, cara, é ideal que
5:08:50você use o agent team, porque aqui eles
5:08:51vão conseguir conversar entre si, falar
5:08:53o que foi feito, falar o que não foi
5:08:54feito, falar o que precisa, como que
5:08:56conecta, etc. Ok? E quando utiliza, por
5:08:59exemplo, uma skill, car, utiliza a skill
5:09:00quando a gente precisa, por exemplo, de
5:09:02algo rápido, engatilhado sobre comando.
5:09:03Então, por exemplo, coloca aí barra tanã
5:09:05e a gente vai utilizar aquela
5:09:07habilidade. Ele vai pegar aquilo dali,
5:09:08vai injetar no contexto e vai criar, por
5:09:10exemplo, um front design melhor, vai
5:09:12analisar melhor meu banco de dados, vai
5:09:14criar uma API melhor, OK? Ou seja,
5:09:16aquela skill vai ensinar a fazer ele,
5:09:18vai ensinar a fazer ele, não, né? vai
5:09:20ensinar ele a fazer alguma coisa melhor,
5:09:21com mais qualidade, utilizando, por
5:09:23exemplo, eh, subagents, usando às vezes
5:09:25uma ferramenta, um script ou algo do
5:09:27tipo, OK? O Zooks também, ou seja, nossa
5:09:30barreira aqui policial de controle,
5:09:31então você sempre vai utilizar quando
5:09:33você quer ter controle sobre alguma
5:09:34coisa. Por exemplo, ah, vamos supor aqui
5:09:36que você que você vai conectar com uma
5:09:37ferramenta que é um banco de dados ou
5:09:39uma ferramenta muito complexa, você pode
5:09:41utilizar um hook para sempre que só a
5:09:43gente for utilizar uma ferramenta como
5:09:44aquela dali, tá? Você limite para que
5:09:47você verifique o que ele quer fazer.
5:09:48Então você pode utilizar aquele hook de
5:09:49PR to use, ou seja, e vai ser acionado o
5:09:52hook antes da da ferramenta ser de fato
5:09:54utilizada e você pode aprovar ou
5:09:56reprovar. Tem também o pst to use que
5:09:58você pode, por exemplo, ah, é, ver o que
5:10:00ele fez, ver como que ele fez, etc.
5:10:02Enfim, quando você quer realmente
5:10:03conferir, é, tem aquilo ali para você
5:10:04auditar e verificar o que o seu agente
5:10:06tá fazendo, ok? E os plugins quando você
5:10:08quer empocotar várias coisas para outras
5:10:11pessoas ou, por exemplo, para outros
5:10:13projetos, hooks, subagents, MCPs,
5:10:16skills, tudo isso num pacote só. E
5:10:19turma, eu quero aqui trazer para você a
5:10:21escada do estrategista de já. Inclusive,
5:10:22deixa eu tirar esse espaço aqui, né, que
5:10:24ficou feio, mas enfim, como é que é esse
5:10:26processo de de uso do cloud code que que
5:10:28a gente vai fazendo, tá? Então, no
5:10:29começo é aquele começo cego, você começa
5:10:32utilizando da forma que dá, da forma que
5:10:33você entende que poderia ser útil ali e
5:10:35vai testando, tá bom? Então você
5:10:37basicamente vai conversando com ele como
5:10:38se realmente fosse um copilot genérico,
5:10:40vai perguntando, vai utilizando ele como
5:10:42auxiliar e vai mandando alguns prompts
5:10:43secos, né? Então você manda o prompt,
5:10:45ele desenvolve e você vai seguindo
5:10:46assim, ok? Depois a gente tem o
5:10:48descobrimento, mas é quando você começa
5:10:49a entender melhor o cloud. MD, ou seja,
5:10:51você começa a entender como realmente um
5:10:53estrategista de a como um mestre aqui,
5:10:55quais skills customizadas repetitivas
5:10:56são úteis para você, quais hooks, qual
5:10:58mps, você começa a realmente utilizar
5:11:00isso daqui para obter os melhores
5:11:02resultados possíveis. Ou seja, você
5:11:03utiliza as ferramentas, utiliza o máximo
5:11:05do Cloud Code para obter o melhor
5:11:07resultado possível aqui com skills, com
5:11:09ferramentas, etc. OK? Depois você tem a
5:11:12descentralização, digamos aqui quando
5:11:13que é quando deve descansa. Então você
5:11:15começa a utilizar suagentes isolados
5:11:17para resolver alguns pepinos. Então, por
5:11:19exemplo, debugar uma tarefa, analisar
5:11:20log e analisar alguma parte do seu
5:11:22software, fazer code review, por
5:11:24exemplo, que pode ser utilizado, enfim,
5:11:25você vai descentralizando, você vai
5:11:27tirando a ação principal do seu agente
5:11:29principal, tá? você vai mandando ali, é,
5:11:31para outros agentes, delegando para que
5:11:33você tenha até um controle melhor do
5:11:34contexto e consiga às vezes até um
5:11:36resultado melhor com a descentralização,
5:11:38porque lembrando que nem sempre você
5:11:40precisa e às vezes nem sempre você obtém
5:11:41um resultado melhor. Às vezes você
5:11:43consegue obter o mesmo resultado, só que
5:11:44às vezes, por exemplo, gastando mais
5:11:45porque você tá invocando vários agentes,
5:11:47tá? Pode acontecer disso, tá bom? Por
5:11:50por quarto aqui a gente tem a maestria
5:11:52paralela, ou seja, a gente tem instins
5:11:54gigantes cuidando de sprints inteiras
5:11:56sob ordem dele. Ou seja, você tem aqui
5:11:58realmente, por exemplo, uma sprint
5:12:00definida pro seu projeto a adicionar uma
5:12:02nova feature de pagamento ou adicionar
5:12:03uma nova feature dentro do nosso SAS. E
5:12:06aí você tem aqui agent Teams, você manda
5:12:08aquela feature, o cara, o cara, né, o
5:12:10agente vai separar em várias tarefas ali
5:12:12e vai dividir em subagentes cada um,
5:12:14executando cada uma delas e conversando
5:12:16entre si de forma conectada, ok? E por
5:12:19último, a gente tem a escalabilidade
5:12:20devops, ou seja, distribuição de infra
5:12:22completa em plugins da equipe
5:12:24Enterprise. Então aqui é realmente
5:12:25quando você tá trabalhando em uma grande
5:12:26empresa ou você tá, por exemplo,
5:12:28crescendo a sua equipe, já tá pegando
5:12:30mais pessoas para te ajudar a
5:12:30desenvolver mais projetos ainda mais
5:12:32rápido. E aqui você já começa a ter aqui
5:12:33o seu kit de ferramentas, já começa a
5:12:35ter o seu padrão de criação de software,
5:12:37de código, de enfim, de skills, de MCP.
5:12:40Você começa ter os seus próprios
5:12:41padrões, começa a impactar isso em
5:12:43plugins para que a sua equipe possa já
5:12:45receber isso e utilizar e todo mundo
5:12:46seguir o mesmo padrão, ok? Então,
5:12:48basicamente assim, é assim que a gente
5:12:50vai evoluindo um pouco com o cloud code.
5:12:51Lembrando que não precisa ser exatamente
5:12:52nessa ordem, mas é mais ou menos a base
5:12:54que a gente utiliza aqui do que do que
5:12:56você pode fazer e tudo mais, ok? E
5:12:58lembrando que, cara, nunca vai ser
5:13:00sempre uma linha reta. Você vai ter
5:13:01aquios e baixos, vai ter momentos onde
5:13:03você vai se sentir voando, cara, eu tô
5:13:05lá em cima, tô conseguindo construir, tá
5:13:07dando tudo certo. E vai ter momentos
5:13:08também onde você vai se deparar com
5:13:09algum bug, algum erro, algum API um
5:13:11pouco diferente e ou senão alguma
5:13:13biblioteca, alguma funcionalidade meio
5:13:14esquisita. Vai te dar mais trabalho,
5:13:16você vai entorrar um pouco a cabeça, mas
5:13:17é normal, faz parte do processo, às
5:13:19vezes encontrar alguns erros, ficar
5:13:21tentando, tentando, tentando ajustar e é
5:13:23normal, acontece, é só ter paciência, ir
5:13:25desenvolvendo com calma, OK? acontece
5:13:27muito. Então, cara, aqui é basicamente
5:13:30isso, nosso curso gratuito, né? Eu acho
5:13:32que deve ter dado aqui pelo menos umas 4
5:13:33horas de conteúdo. O arquivo bruto ficou
5:13:35um pouco maior, porque tem os momentos
5:13:36aqui que, por exemplo, o cloud tá
5:13:37desenvolvendo, então eu fico esperando
5:13:38ele desenvolver. Mas enfim, eu acho que
5:13:41realmente eu consegui passar um conteúdo
5:13:42muito bom aqui para você. Eu espero que
5:13:43você tenham gostado, um conteúdo muito
5:13:45completo sobre cloud code, sobre skills,
5:13:47sobre MCP, sobre hooks, sobre
5:13:49subagentes, Teams e também o nosso
5:13:51projeto aqui, a skill que a gente criou
5:13:53e tudo mais. Eu acho que realmente a
5:13:54gente conseguiu criar um projeto muito
5:13:55bom, muito legal. Eh, enfim, obviamente
5:13:58não é um projeto 100% completo, né?
5:14:00Teria para fazer muita coisa ali dentro,
5:14:02como adicionar pagamento, eh, cara,
5:14:04várias coisas ali dentro, tá? Mas o
5:14:05objetivo aqui não é esse, tá? O objetivo
5:14:07era realmente desenvolver um projeto do
5:14:08zero, um projeto que pelo menos seja
5:14:09utilizável. E, cara, só com isso daqui
5:14:12você consegue fazer muita coisa, porque
5:14:13tem muita empresa que precisa de
5:14:15sistemas internos, tá? Por quê? Eu vou
5:14:17mostrar aqui para você um pouco de tudo
5:14:18que eu tô desenvolvendo aqui. Então, a
5:14:20primeira coisa que eu quero mostrar é o
5:14:21seguinte, cara. Olha isso daqui, por
5:14:23exemplo. Vou compartilhar a tela agora
5:14:24novamente, já que eu já abri. E o que
5:14:26acontece? Isso daqui basicamente é um
5:14:28sistema de cortes de vídeos. Eu tenho um
5:14:30amigo meu que ele tem uma empresa onde,
5:14:31basicamente eles pegam e fazem cortes de
5:14:33podcast. Eles realmente são contratados
5:14:35por grandes players do mercado. Então,
5:14:37cara, eles trabalham com Alfredo Soares
5:14:38e vários outros. E basicamente um
5:14:40trabalho que eles têm aqui é de assistir
5:14:42um podcast, assistir um vídeo longo e
5:14:44extrair os melhores cortes daquele vídeo
5:14:45com o maior potencial de viralizar, tá?
5:14:48E o que acontece? Eles vão lá, assistem
5:14:51todo o vídeo, o vídeo completo, tipo,
5:14:52cara, duas horas de conteúdo, três horas
5:14:54de conteúdo, eles assistem o vídeo
5:14:55completo e identificam os principais
5:14:58pontos e que podem rider bons cortes.
5:15:00Então, cara, do minuto 1 ao minuto 3, do
5:15:03minuto 10 ao minuto 11, por exemplo,
5:15:05sabe? Eles têm que fazer o download
5:15:06desse vídeo, tem que fazer o corte e
5:15:07tudo mais. E é um processo que, por
5:15:10natureza é um processo repetitivo e é um
5:15:12processo chato também, que acaba tomando
5:15:13um tempo que, cara, é desnecessário,
5:15:15sabe? Que tem como automatizar. E aí, o
5:15:17que que a gente fez? Ele chegou com essa
5:15:19dor para mim e perguntou: "Cara, tem
5:15:20como fazer alguma coisa nesse sentido?"
5:15:21Eu falei: "Cara, tem. Eu vou explorar
5:15:22aqui e vou te contando". A gente chegou
5:15:24nesse projeto aqui, a gente ainda tá
5:15:25testando, tá validando algumas coisas,
5:15:27mas basicamente, cara, resolvi isso
5:15:28daqui em questão de 1 hora, tá? E por
5:15:30que que eu demorei 1 hora? Poderia ser
5:15:32até mais rápido, mas demorei 1 hora ali,
5:15:341 hora e meia, porque envolve aqui,
5:15:35cara, conexão com Google Drive, conexão
5:15:37com YouTube. Então, essas partes são um
5:15:39pouquinho chatinhas. Então, sempre que
5:15:40envolve, por exemplo, uma plataforma
5:15:41externa, sempre que envolve uma API
5:15:43externa, vai ser um pouco mais
5:15:44complicado, tá? Mas já vou te avisando
5:15:46isso. Quando é, por exemplo, ah, um
5:15:47projeto que por si só ele é
5:15:48autossuficiente, como por exemplo,
5:15:50aquela plataforma que a gente fez de
5:15:51área de membros, ela por si só a
5:15:53suficiente, tá? Tá tudo meio que
5:15:55integrado ali dentro, então é muito mais
5:15:56fácil de fazer, mas quando é algo assim
5:15:58mais que envolve algo externo, sempre é
5:16:00um pouquinho mais complicado. Mas
5:16:01basicamente aqui eles podem selecionar
5:16:03um vídeo no computador, podem colocar um
5:16:05link do Google Drive ou por exemplo
5:16:07colocar um link do YouTube. A gente vai
5:16:09baixar o projeto, vai fazer todo o
5:16:10download dele e tudo mais. Aqui vai
5:16:12baixar o vídeo ali. Aqui eles definá
5:16:15teste. E aqui eles podem adicionar
5:16:17cortes. Então pode adicionar um corte,
5:16:19dois cortes. Aqui eles podem colocar
5:16:21aqui a minutagem do corte e pode
5:16:22adicionando segmentos. Então por
5:16:24exemplo, aqui eles podem juntar o minuto
5:16:2710 ao minuto 11 com o minuto 15 ao
5:16:29minuto 16, sabe? Vocês podem juntar
5:16:31várias partes do vídeo em um vídeo só.
5:16:33Podem fazer vários cortes aqui do vídeo,
5:16:35OK? E depois eles podem salvar
5:16:36localmente ou subir no drive. Eu levei 1
5:16:39hora meia para fazer isso daqui. Eu
5:16:40ajudei ele totalmente de graça, né?
5:16:42Realmente um amigo meu que eu queria
5:16:43ajudar. Só que, cara, isso daqui eu
5:16:45tenho certeza que eles pagariam aí pelo
5:16:46menos uns 1000, R$ 2.000 e é algo que
5:16:49paga totalmente a sua licença do Cloud
5:16:50Code e que você faz facilmente em duas 3
5:16:53horas ali muito tranquilamente. E eu
5:16:55falo um tempo a mais aqui, né? Porque
5:16:56até você entender o projeto, até você
5:16:58ter noção ali do que precisa ser feito e
5:17:00principalmente quando você não tem
5:17:00experiência, pode levar um pouco mais de
5:17:01tempo, mas enfim, é um projeto fácil de
5:17:04fazer, rápido e que para eles economiza
5:17:06muito tempo, porque eles não tm o
5:17:07trabalho de, cara, baixar o vídeo,
5:17:09porque isso daqui também é armaador
5:17:10deles, que é, pô, baixar um vídeo de
5:17:12alta qualidade no YouTube não é tão
5:17:13fácil, tá? E aqui quando você baixa um
5:17:15vídeo de no YouTube, ele vem com a maior
5:17:17qualidade possível, tá? É até surreal a
5:17:18qualidade que o vídeo vem quando você
5:17:20baixa por aqui. Então, ele baixa o
5:17:22vídeo, processa os cortes, já joga lá no
5:17:24drive de forma automática. Então,
5:17:25trabalho pros editores, por exemplo,
5:17:26fica muito mais fácil, muito mais ágil e
5:17:28economiza pelo menos aqui uns 30 minutos
5:17:30por vídeo aqui que eles têm que cortar,
5:17:32tá? Incluindo todo o processo de baixar
5:17:33o vídeo, de cortar, de subir no drive
5:17:35depois, enfim, realmente economiza
5:17:37muito, muito tempo deles. Então, cara, é
5:17:39algo que vale muito a pena ser feito e é
5:17:42algo que eles nunca encontrariam no
5:17:43mercado, algo que nunca ninguém olharia
5:17:45excessivamente para isso, falaria: "Não,
5:17:47eu vou criar um SAS só para resolver
5:17:48essa dor". Sabe, pode acontecer que nem
5:17:50aqui, o cara fez para resolver a dor
5:17:51dele, mas para criar um SAS disso daqui
5:17:53às vezes não vale a pena. é algo que é
5:17:55útil, mas que não tem um público tão
5:17:57grande, entende? Então isso daqui é algo
5:17:59que dá para construir. E aqui eu vou até
5:18:01compartilhar um pouco com você, cara.
5:18:02Isso daqui é algo que eu tô
5:18:03desenvolvendo aqui. Ainda tá totalmente
5:18:05em teste, tá? Eu investi mais ou menos
5:18:07umas duas horas nisso hoje. E
5:18:09basicamente o que eu tenho aqui é um
5:18:12menin chat meu, tá? Então aqui na
5:18:13verdade eu quero fazer toda uma central
5:18:15de gerenciamento do meu Instagram.
5:18:16Então, vou gerenciar tudo do meu
5:18:17Instagram por aqui. Eu vou poder
5:18:19publicar posts, vou poder criar posts
5:18:20aqui dentro, vou poder cara ver as
5:18:22métricas do meu Instagram, vou poder ter
5:18:24um menin chat aqui dentro. Então, vou
5:18:25ter de tudo um pouco aqui dentro. E
5:18:27basicamente o que eu fiz foi uma
5:18:28plataforma onde eu posso acessar e,
5:18:30cara, criar fluxos igual no Manhat.
5:18:32Então, aqui, por exemplo, em flows eu
5:18:34tenho aqui a os meus fluxos. Eu posso
5:18:36vir aqui criar o novo fluxo, OK? Aí eu
5:18:38configuro o nome do fluxo, o tipo de
5:18:40gatilho, eh o qual que vai ser o met do
5:18:44gatilho. Então a exato, contém eh cita
5:18:47erros ortográficos. Aqui eu vou
5:18:48colocando as palavraschaves que vão
5:18:50ativar aqui. E aqui eu posso colocar
5:18:51texto, posso colocar imagem, áudio,
5:18:53vídeo e resposta rápida, condição, tudo
5:18:57isso exatamente como no Manhat tá aqui
5:18:59não tá finalizado, tá não tá nem perto
5:19:01de ser finalizado, mas cara, isso daqui
5:19:03de algo que me toma, vai me economizar
5:19:05muito dinheiro, principalmente pelo
5:19:07ponto de cara o men chat atualmente para
5:19:09mim vai tá custando ele mais ou menos
5:19:10uns R$ 150 por ano, vai ser mais de R$
5:19:121.000 só com Manhat. Isso conforme eu
5:19:15vou escalando, né? Então pode ser que,
5:19:16por exemplo, hoje vai me custar R$ 1.000
5:19:18no ano, mas pode ser que daqui um tempo,
5:19:19conforme vai tendo mais contatos ali, eu
5:19:21vou crescendo no Instagram, vai me
5:19:22custar, sei lá, dois, R 3.000 por ano.
5:19:24E, cara, o tempo que eu invisto e a
5:19:26cintura do cloud code que eu uso não vai
5:19:28chegar nunca nisso, tá? Para fazer um
5:19:30main chat completo. Isso daqui assim,
5:19:32ele tá bem funcional, ele já funciona,
5:19:33por exemplo, aqui na parte de
5:19:34configuração, eu não posso entrar porque
5:19:36é toda a parte de configuração de token,
5:19:38etc., do meu aplicativo do Facebook para
5:19:40que eu consiga receber as mensagens e
5:19:41enviar. Mas essa parte aqui, por
5:19:43exemplo, desse fluxo aqui que eu tenho,
5:19:45eu já testei e tá 100% funcional, que é
5:19:47o quê? É o receber aqui um uma mensagem,
5:19:50né? Então, nesse caso, teste dois, ele
5:19:52executa aqui essa quick pie, que é o
5:19:54quê? Eu tenho uma mensagem e tem um
5:19:56botão, tá? A pessoa vem aqui, ela pode
5:19:58responder, é, ela recebe outra mensagem
5:20:01aqui, aguarda 5 segundos e depois ela
5:20:03recebe outra mensagem, tá? E tudo isso
5:20:05daqui tá funcionando automático, sem que
5:20:06eu tenha que fazer nada. Eu só pedi para
5:20:08ele configurar, criei lá meu aplicativo
5:20:10na Meta for Developers. Subir aqui na
5:20:12Highway e pronto, está rodando, tá
5:20:13funcionando, tá? Então assim, é o que eu
5:20:15fiz em pouquíssimo tempo. Tem alguns
5:20:17ajustes aqui. Quais são os principais
5:20:19ajustes que eu vejo, por exemplo, aqui?
5:20:20Tá, poderia melhorar a interface, mas
5:20:22isso daqui para mim é totalmente
5:20:23secundário. Mas aqui eu poderia melhorar
5:20:25aqui essa parte do, é, eu tenho que
5:20:28adicionar mais opções aqui, tá bom?
5:20:29Então, por exemplo, adicionar aqui a
5:20:30opção de colocar um botão com link, OK?
5:20:32Adicionar, por exemplo, ah, outras
5:20:34opções de condição. Então, por exemplo,
5:20:36se me segue ou não, que é algo que eu
5:20:37vou fazer aqui. É a parte de contatos.
5:20:39Então, por exemplo, aqui já tá
5:20:40aparecendo vários contatos. Acho que nem
5:20:41posso mostrar isso daqui, então vou
5:20:42remover. Eh, mas enfim, já apareceram os
5:20:44contatos. Porém, eu quero adicionar o
5:20:46link do Instagram da pessoa, quero
5:20:48adicionar o username dela e tudo mais.
5:20:49Quero ter mais informações para
5:20:51enriquecer ali o meu contexto sobre
5:20:52aquela pessoa. E, enfim, daqui acho que
5:20:54talvez uma semaninha, no máximo, fazendo
5:20:56isso aqui bem na manha, eu vou conseguir
5:20:57substituir o meu manhate aplicativo, que
5:21:00vai me custar menos de R$ 100 por mês,
5:21:02porque eu só vou subir ali na Highway.
5:21:03Talvez eu gaste ali uns R$ 20, R$ 25 com
5:21:05hospedagem, mas é só isso. Talvez nem
5:21:07isso eu chegue a gastar, tá bom? Então,
5:21:10cara, tem muita coisa que você pode
5:21:11fazer com cloud code, eh, e com uma
5:21:13velocidade assim absurda, tá bom? Se
5:21:15você se aprofundar mesmo, se você
5:21:16entender os fundamentos tanto no cloud
5:21:18code, quanto de software, quanto de a,
5:21:20você tem muita, muita coisa boa para
5:21:21construir. E eu quero te ajudar a fazer
5:21:23isso, tá bom? Aqui embaixo na descrição
5:21:25vai ter o link para você se inscrever
5:21:27numa aula completa, onde eu vou te
5:21:28ensinar como que você se pode se tornar
5:21:30um estrategista de A e vender soluções
5:21:32de inteligência artificial, como que
5:21:33você constrói soluções como essa daqui,
5:21:34como você identifica dentro de empresas
5:21:37quais soluções ele precisam e como que
5:21:38você pode realmente vender, impacultar
5:21:40essas soluções e vender e ser muito bem
5:21:42pago por isso, sendo um estrategista de
5:21:44a, tá bom? Então aqui o primeiro link da
5:21:45descrição vai ser esse link para você se
5:21:47inscrever, para você assistir essa aula
5:21:48comigo ao vivo no dia 30, tá bom? Vai
5:21:51ser numa segunda-feira às 8 horas da
5:21:52noite. Eu te espero lá para te mostrar
5:21:53todo esse conteúdo e te mostrar todo o
5:21:55caminho para que você realmente
5:21:56aproveite 2026 da melhor forma possível,
5:21:58utilizando cloud code, utilizando
5:22:00inteligência artificial de modo geral e
5:22:02a ferramenta que for melhor para cada
5:22:04caso, tá bom? Então é isso, muito
5:22:06obrigado por ter chegado até aqui. Não
5:22:07esquece de descer aqui embaixo na
5:22:08descrição, se inscrever lá, tá bom? Você
5:22:10só coloca ali seu nome, e-mail e o seu
5:22:12telefone. Eu vou te mandar todas as
5:22:14informações da aula, dos materiais que
5:22:15você que você receber, tá bom? Então tem
5:22:17muita coisa boa e você não vai se
5:22:19arrepender, ok? Então é isso, muito
5:22:21obrigado e estamos junto.