Free YouTube Transcribe

Video transcript

Claude Code: Curso Completo do Zero ao Avançado (5 Horas)

Lucas · 72,729 words · 331 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

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.

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.