00:00:00O Google Workspace ficou muito melhor para agentes de IA, pois eles lançaram uma
00:00:04ferramenta de CLI robusta que permite ao seu agente interagir com qualquer API do Google Workspace.
00:00:09Seja ler arquivos do Drive, enviar e-mails ou até criar slides, tudo foi construído do zero
00:00:14para agentes de IA, o que significa que usam o mínimo de tokens possível e criam comandos dinamicamente
00:00:19em tempo de execução para as APIs estarem sempre atualizadas. Mas agora, com uma empresa gigante como o Google
00:00:24criando um CLI para o que antes era (e ainda é) um servidor MCP, o que isso significa
00:00:29para o futuro do MCP? Se inscreva no canal e vamos descobrir.
00:00:33No mês passado, fiz um vídeo sobre a Playwright criando um CLI para o que antes era um servidor MCP.
00:00:42Agora, parece que o Google Workspace fez a mesma coisa e o pessoal no Twitter está ficando
00:00:46louco por isso. É uma ferramenta de CLI feita pelo Justin, que escreveu um post no blog detalhando tudo o que fez
00:00:52para torná-la específica para agentes, o que discutiremos depois. Mas ela já tem mais de 100
00:00:57habilidades que você pode baixar no skills.sh, o que obviamente deixou o "g-man" muito feliz.
00:01:01Mas antes de vermos o que ela faz, precisamos passar pela configuração, porque se sabemos algo
00:01:06sobre ferramentas do Google Cloud, é que não é tão simples. Deixe-me mostrar.
00:01:10Primeiro e mais importante, você precisará de acesso ao console do Google Cloud. Você pode criar um novo
00:01:15projeto ou usar um já existente. Eu criei um novo. Depois, você precisará instalar o gcloud CLI,
00:01:21o que pode ser feito com o Brew se estiver no Mac. Com o CLI do Google Workspace instalado,
00:01:26você terá que rodar este comando para iniciar a configuração, que é bem autoexplicativa.
00:01:31Use seu e-mail para autenticação, selecione um projeto GCP ou configure um e escolha as APIs desejadas.
00:01:37Terminada esta fase, você precisará ir em "Credenciais de APIs e Serviços"
00:01:42e criar um novo ID de cliente OAuth, que acredito que possa ser para qualquer tipo de aplicação. Usei "Web",
00:01:48mas tenho certeza de que funcionará com "Desktop", pois tudo o que você precisa é deste ID de cliente e do segredo.
00:01:53Depois disso, a próxima etapa é onde as coisas ficam um pouco complicadas, pois após
00:01:57rodar este comando, você terá que selecionar o escopo de autenticação. Para este demo, selecionei tudo,
00:02:02o que não é o ideal, mas eu estava apenas testando a API. Então você receberá uma URL enorme para autenticar
00:02:08no seu navegador. Primeiro, certifique-se de que não há erros de digitação, senão poderá haver falhas,
00:02:12mas você precisará anotar a porta após o "localhost", que no meu caso é 51065.
00:02:18Voltando ao console do Cloud, clique em "Tela de consentimento OAuth" em APIs e Serviços,
00:02:23depois clique em clientes e escolha seu cliente web. Lá embaixo, onde diz "URIs de redirecionamento
00:02:28autorizados", mude para aquele número da porta. No caso, 51065. E ainda não terminamos.
00:02:33Vá em audiência, role a página e adicione seu endereço de e-mail aqui, caso ainda não esteja.
00:02:37Se você já tiver um app publicado, não terá esse problema,
00:02:40mas como estou apenas testando a API, estou usando o modo de teste.
00:02:44Então preciso adicionar meu e-mail e o de todos os usuários que queiram usar este CLI aqui.
00:02:48Feito isso, você pode copiar esta URL e seguir os passos para configurar o CLI.
00:02:52E quando terminar, você deve ver um status de sucesso. Se não vir essa tela,
00:02:56espere alguns segundos e tente novamente, pois demora um pouco para registrar a URI de redirecionamento.
00:03:01Todo este processo, apenas a configuração, foi o que mais me tomou tempo para entender,
00:03:06o que mostra que não uso as ferramentas do Google Cloud com frequência, mas assim que terminar,
00:03:11você verá seus detalhes aqui, o que significa que a diversão pode realmente começar. Veja só.
00:03:15Vou começar de forma simples e pedir ao Claude para me dar informações sobre meus últimos 10 e-mails.
00:03:19Espero que não tenha nada sensível lá. Usando o CLI GWS,
00:03:24ele me deu informações sobre cada e-mail, com remetente, assunto, data e marcadores.
00:03:28Podemos ver que, para essa tarefa, ele usou apenas 9% do contexto total, puramente porque não há
00:03:33ferramentas MCP aqui. A maior parte do contexto foi consumida pelas mensagens. Ok, vamos tentar outra coisa.
00:03:38Vou pedir ao Claude para escrever um rascunho de e-mail com o assunto "Eu amo o Claude" e um corpo
00:03:44com um belo poema. Novamente, ele usa o CLI GWS, escreve um pouco de Python via bash. E agora que terminou,
00:03:50podemos ver que tenho um novo rascunho de e-mail aqui escrito pelo Claude. Deixe-me dar um zoom.
00:03:56Ele contém um poema dizendo o quanto eu amo o Claude. Agora, há algo muito interessante sobre
00:04:00a maneira como o Claude usa o CLI GWS. Se olharmos para os comandos que ele executou no passado,
00:04:05podemos ver que há muitos subcomandos e uma flag de parâmetros com JSON dentro.
00:04:11O curioso é que, se eu, como humano, quisesse fazer a mesma coisa
00:04:16digitando "gws help" para ver todos os subcomandos, eu não veria todos. Veria apenas alguns.
00:04:23E se eu quisesse aprofundar em um comando específico, teria que usar "help" repetidamente
00:04:28para obter mais informações. Mas o agente consegue obter
00:04:32essas informações muito rapidamente e até saber os parâmetros exatos para obter os dados corretos.
00:04:37Olha só: eu digitei o prompt aqui, ele usou o "help" uma vez e conseguiu deduzir
00:04:43tudo isso só com aquilo. Vamos detalhar mais como ele faz isso,
00:04:48mas vemos aqui que a seção de ajuda do CLI descreve o uso e menciona o recurso de serviço
00:04:53e o sub-recurso. Podemos ver o serviço aqui embaixo. E se quisermos mais informações,
00:04:57também poderíamos olhar o esquema gws com o recurso e método do serviço. Ok, vamos tentar só mais uma
00:05:03coisa. Vou pedir ao Claude para criar um novo documento de Slides com um slide contendo o
00:05:08título "Gato do Claude" e outros quatro slides contendo imagens de gatos. Novamente, ele usa o CLI GWS pedindo
00:05:15ajuda, depois mergulha no help para os comandos de slides e apresentações. E agora ele terminou de criar
00:05:20nossa apresentação. Vamos dar uma olhada no navegador. Aqui está. Vocês podem ver que eu já tinha feito
00:05:24um teste com "Cães do Claude", mas vamos tentar este. E temos o título "Gatos do Claude" com um subtítulo,
00:05:30"uma coleção purr-feita", com cinco slides contendo imagens de gatos. Isso é muito legal. E usamos
00:05:36apenas 15% do contexto. Poderíamos continuar fazendo coisas diferentes. Como aqui,
00:05:42onde criei uma planilha do Google contendo a população de cada estado dos EUA com um
00:05:47total no final e até agendei eventos no meu calendário. Você deve ter notado que fiz tudo isso
00:05:52sem instalar nenhuma habilidade específica do Google Workspace, mas o projeto tem muitas
00:05:58habilidades disponíveis contendo auxiliares, personas e receitas para ações mais complexas,
00:06:05como bloquear tempo de foco e reagendar uma reunião. Como o Justin fez isso funcionar tão bem? Primeiro, ele
00:06:10priorizou o JSON aninhado, que é difícil para humanos lerem, mas muito mais fácil para agentes. Ele também
00:06:16tornou a documentação consultável em tempo de execução, o que vimos antes, mas esta seção
00:06:21de esquema garante que, se algo for atualizado ou o agente inserir um parâmetro errado,
00:06:26ele saiba exatamente onde verificar qual é o correto sem confusão. Os
00:06:31parâmetros ou campos também podem ser usados para reduzir a quantidade de informações que a API retorna.
00:06:36Assim, o agente pode limitar os dados apenas ao necessário, em vez de receber informações extras
00:06:42que não precisa, o que reduz o consumo de tokens. E, claro, ele usa habilidades para
00:06:47orientação específica do agente, que não usei na demonstração, mas que fornecem mais informações do que o
00:06:53agente conseguiria apenas com a flag de help. Então, está claro que servidores MCP já eram e CLIs são o futuro,
00:06:59certo? Bem, nem tanto, porque com MCPs, o agente pode simplesmente chamar funções diretamente em vez
00:07:06de ter que construir comandos de shell e passar JSON, que é o que o CLI faz. Ferramentas MCP também
00:07:11são melhores para encadear etapas complexas. E, claro, você não precisa de um terminal para rodá-las,
00:07:16por isso o CLI do Google Workspace tem uma opção de MCP. No entanto, CLIs usam muito menos tokens,
00:07:24mesmo com a ferramenta de busca de ferramentas ativada. São portáteis, ou seja, funcionam com qualquer
00:07:28estrutura de agente ou mesmo sem uma, se você preferir. E é fácil reproduzir os
00:07:34comandos de forma independente para depuração. Então, acho que depende realmente do seu caso de uso, mas tive
00:07:40alguns problemas ao usar o CLI, como URLs geradas com erros de digitação, o que não faço ideia de como
00:07:47aconteceu. Toda aquela coisa de URL de redirecionamento na porta do localhost demorou para eu entender. Não
00:07:52sei se é específico das ferramentas do Google Cloud ou apenas do CLI, mas não foi divertido. E tive
00:07:59um problema com os tokens não atualizando corretamente, tanto que até criei uma issue no GitHub. Bem,
00:08:05o Claude a escreveu para mim. Na verdade, eu não escrevi nada, mas para um projeto com menos de uma
00:08:10semana de vida e mais de 10 mil estrelas no GitHub, ele já tem um futuro promissor pela frente.
00:08:16E por falar em futuro promissor, se você quiser criar um app Electron alimentado pelo Bun,
00:08:21para ter velocidade e um pacote de tamanho reduzido, confira este vídeo que fiz sobre
00:08:26o Electrobahn, que mostra como usá-lo para um projeto simples com Vite.