00:00:00(música animada)
00:00:02- Olá a todos, meu nome é Malte, sou o CTO da Vercel.
00:00:16Obrigado por se juntarem a nós hoje.
00:00:18No início de janeiro, demos a todos na nossa empresa um mandato:
00:00:21descubram como multiplicar sua produtividade.
00:00:24E ver o que as pessoas construíram continua a nos impressionar.
00:00:27Quase todas as equipes criaram um agente para lidar com tarefas complexas,
00:00:30e a maioria deles são bots do Slack que qualquer um pode usar.
00:00:34Mas encontramos um problema.
00:00:35Todos estavam fazendo o mesmo trabalho de integração
00:00:38repetidamente.
00:00:40Alguém construía um agente,
00:00:41e então você tinha que decifrar a complexidade do Slack,
00:00:43e isso é mais difícil do que parece.
00:00:45Você precisa entender threads e reações,
00:00:47como as menções ao bot funcionam e como gerenciar o estado.
00:00:50Então alguém perguntava:
00:00:51"Ei, você pode conectar o GitHub desse agente?"
00:00:53E o processo começava tudo de novo
00:00:55com as APIs do GitHub.
00:00:56Era a mesma lógica, mas com um código de plataforma diferente.
00:00:59Aprendemos rapidamente que as APIs de chat
00:01:01parecem semelhantes na superfície,
00:01:03mas são completamente diferentes nos bastidores.
00:01:05O Slack suporta streaming nativo.
00:01:06Você pode transmitir tokens diretamente em uma mensagem
00:01:09enquanto o LLM os gera.
00:01:10No Discord, você precisa postar, editar, postar e editar.
00:01:14No GitHub, não há streaming.
00:01:16O Slack tem modais, o Discord não.
00:01:18O Microsoft Teams oferece reações apenas de leitura.
00:01:21Essas não são meras peculiaridades, são diferenças fundamentais
00:01:23na forma como cada plataforma funciona.
00:01:26Portanto, mesmo para um único e simples agente,
00:01:28você acaba com uma enorme quantidade de lógica
00:01:31apenas para torná-lo utilizável em diferentes ferramentas.
00:01:33É um pesadelo.
00:01:34E não é apenas um problema da Vercel.
00:01:36Toda empresa terá que descobrir
00:01:38como entregar seus agentes nas interfaces
00:01:40onde o trabalho já acontece.
00:01:42Isso significa chat, revisão de código, rastreamento de problemas e muito mais.
00:01:45O AI SDK resolve um problema semelhante para provedores de modelos.
00:01:48Você escreve o código uma vez e ele gerencia
00:01:50todas as diferenças de API,
00:01:51esteja você chamando o GPT, o Claude ou o Gemini.
00:01:54O Chat SDK faz o mesmo para agentes interativos.
00:01:58É uma API única para interações de agentes em várias plataformas,
00:02:01como Slack, GitHub, Linear, Discord, Telegram,
00:02:04WhatsApp e muito mais.
00:02:06Você constrói o agente e o Chat SDK o entrega aos usuários
00:02:09nos aplicativos que eles já utilizam.
00:02:11O Fernando tem construído agentes de segundo plano do v0
00:02:15nas últimas semanas,
00:02:16e ele vai contar por que o Chat SDK
00:02:18foi uma parte crítica dessa arquitetura.
00:02:21(música animada)
00:02:24(a música animada continua)
00:02:28Quando comecei a construir os agentes de segundo plano do v0,
00:02:34meu objetivo era permitir que você marcasse o v0 no Slack
00:02:36para abrir pull requests.
00:02:38Eu queria um agente de codificação de propósito geral
00:02:40que pudesse rodar em segundo plano,
00:02:42em qualquer base de código, com qualquer linguagem.
00:02:45Então comecei a desenvolver,
00:02:47e enviei a primeira versão do app do v0 para Slack
00:02:49para os meus amigos.
00:02:51E a primeira coisa que eles perguntaram foi:
00:02:53"Também posso usar isso em problemas do Linear?
00:02:56E posso marcá-lo em um comentário de PR no GitHub?"
00:02:58Isso me lembrou a primeira vez que lancei um app móvel,
00:03:02quando as pessoas começaram a perguntar se também podiam usá-lo na web.
00:03:05Ficou claro que o v0 precisa funcionar em qualquer lugar.
00:03:09As expectativas mudaram.
00:03:11Então eu tive que fazer uma escolha.
00:03:14Construímos os agentes de segundo plano do v0 plataforma por plataforma?
00:03:18Ou poderíamos construí-lo uma vez com uma API unificada
00:03:22para todas as plataformas?
00:03:24Como um React Native para agentes de chat?
00:03:27Bem, acontece que passei anos
00:03:30construindo apps multiplataforma com React Native.
00:03:34Esse problema não é novidade para mim.
00:03:36E foi aí que o Chat SDK entrou.
00:03:39Com o Chat SDK,
00:03:40posso focar na construção dos agentes de segundo plano do v0,
00:03:43e gastar menos tempo
00:03:45me preocupando com as APIs exclusivas de cada plataforma.
00:03:48Então, como isso funciona nos bastidores?
00:03:50Aqui está o Matt para mostrar mais a vocês.
00:03:53(música animada)
00:03:55- Oi, pessoal.
00:04:11Assim como o Fernando, vamos começar pelo Slack.
00:04:14Eu menciono o meu bot,
00:04:16e recebo uma resposta "olá mundo" bem simples.
00:04:21Revolucionário, eu sei.
00:04:23E se você olhar o código,
00:04:24verá como foi fácil criar esse bot.
00:04:28Tudo o que eu tive que fazer foi criar uma nova instância de chat,
00:04:32adicionar um listener para menções,
00:04:35e postar "olá mundo" de volta na conversa.
00:04:38Só isso.
00:04:39Mas não queremos desenvolvedores criando bots de texto simples.
00:04:43Queremos experiências nativas ricas
00:04:45que aproveitem ao máximo cada plataforma.
00:04:48E os desenvolvedores amam JSX.
00:04:51Então trouxemos o JSX para o Chat SDK.
00:04:55Agora você constrói com componentes, exatamente como está acostumado.
00:04:58Vamos adicionar dois botões.
00:04:59Então, aqui embaixo, como podem ver,
00:05:03vou mudar nossa mensagem de "olá mundo"
00:05:05para um cartão de "olá mundo" com um botão de continuar
00:05:10e um botão de cancelar.
00:05:11Também vamos adicionar um listener de ação
00:05:14que dirá o nome completo do usuário e que ele
00:05:17clicou em continuar quando o botão for acionado.
00:05:19Voltando ao Slack, vou mencionar meu bot novamente.
00:05:24E, como esperado, temos exatamente o que construímos.
00:05:29Os componentes são renderizados nativamente.
00:05:32Eu clico em continuar, e o bot processa a ação instantaneamente.
00:05:36Mas agora as coisas ficam interessantes.
00:05:41E se eu quiser essa mesma experiência no Discord?
00:05:45Eu adiciono o adaptador do Discord.
00:05:47E é só isso.
00:05:48Agora, se eu voltar ao meu canal do Discord,
00:05:55posso mencionar meu bot,
00:05:57e a mesmíssima interface é renderizada nativamente no Discord.
00:06:02Zero alterações no código para suportar uma plataforma nova.
00:06:07Isso é legal.
00:06:08Mas vamos falar de agentes.
00:06:10Aqui está um agente simples que construí usando o AI SDK.
00:06:14E agentes precisam de streaming.
00:06:17Com o Chat SDK, o streaming é trivial.
00:06:20Eu crio um stream e o posto na conversa.
00:06:23Simples assim.
00:06:24Eu não precisei pesquisar como o Slack lida com streaming
00:06:27ou como o Discord lida com atualizações parciais.
00:06:30Usei uma única API.
00:06:32E no Slack, se eu mencionar o bot,
00:06:35veremos a resposta sendo transmitida de volta nativamente.
00:06:40Mas por que parar por aí?
00:06:42E se eu quiser enviar mensagens diretas para o meu agente
00:06:45em plataformas como WhatsApp ou Telegram?
00:06:49Com o Chat SDK, é fácil.
00:06:52Eu adiciono um listener de Mensagem Direta e o adaptador necessário.
00:06:56Agora, qualquer pessoa que mandar uma DM terá a mesma experiência.
00:07:02Se eu abrir o WhatsApp Web e disser,
00:07:06"Oi, como você vai?"
00:07:08Veremos o agente responder à nossa mensagem direta
00:07:12usando o agente que construímos.
00:07:14Agora que construímos um agente,
00:07:16por que não abrimos um pull request?
00:07:18Mas antes disso,
00:07:20e se o mesmo agente com quem conversei no WhatsApp
00:07:24pudesse revisar meu código?
00:07:25Basta usar o adaptador do GitHub.
00:07:28Eu venho aqui, adiciono o adaptador do GitHub,
00:07:32e levei meu agente para uma plataforma totalmente nova.
00:07:35Se eu abrir o GitHub e olhar este pull request,
00:07:39posso mencionar o agente nos comentários
00:07:42e ele responderá com o mesmo listener de mensagem direta
00:07:45que construímos antes.
00:07:46Slack, Discord, WhatsApp, Telegram, GitHub.
00:07:51Pense por um segundo em quão diferentes são essas APIs.
00:07:56Mas com um único arquivo e poucas linhas de código,
00:07:59levamos nosso agente para todas elas.
00:08:01Com o Chat SDK, você constrói experiências de agentes uma vez
00:08:06e as implementa em qualquer lugar com uma única API.
00:08:09Acesse chat-sdk.dev para conferir a documentação e os templates.
00:08:14Obrigado por ouvir.
00:08:15E estou ansioso para ver o que vocês vão construir.
00:08:17(música animada)