Pular para o conteúdo

Replay: Open Source Friday com Mastra

Ver no idioma original →

Autoria: GitHub · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: Replay: Open Source Friday with Mastra · Canal: GitHub · 1:11:11 · Assistir no YouTube

Tópicos: Agentes de IA, Avaliação e benchmarks de IA, Open source e ecossistemas de software

A equipe da Mastra conta como deixou para trás a ideia de criar um CRM com IA e passou a desenvolver um framework open source para engenharia de IA. Na demonstração, apresenta o Mastra Studio, agentes configuráveis com diferentes provedores de modelos, traces, evals e armazenamento extensível. O destaque é a observational memory, que usa agentes observadores e refletores para condensar conversas em eventos e preservar contexto ao longo de sessões. A conversa também mostra como criar agentes de programação com workspaces, sandbox e skills, além de abordar a comunidade e os próximos passos do projeto.

  • A Mastra nasceu da experiência da equipe com um protótipo de CRM com IA e da dificuldade de desenvolver aplicações de IA rapidamente em TypeScript.
  • O framework reúne primitives para agentes, workflows, memory, MCP e skills.
  • O Mastra Studio permite desenvolver, testar e conversar com agentes em uma interface interativa.
  • O model router permite escolher provedores e modelos, inclusive de forma dinâmica conforme o contexto da solicitação.
  • Traces e evals ajudam a inspecionar o comportamento dos agentes e testar mudanças com conjuntos de dados.
  • A arquitetura extensível aceita diferentes adaptadores de armazenamento e integrações com ferramentas externas de observabilidade.
  • A observational memory usa os agentes actor, observer e reflector para transformar históricos extensos em observações mais compactas.
  • Workspaces podem combinar sistema de arquivos, sandbox e skills para dar a agentes acesso controlado a tarefas de programação.
  • A Mastra pretende continuar investindo em memory, observabilidade e comunidade.
Início Capítulo Resumo
00:01 Abertura A transmissão começa com música antes da apresentação do programa.
01:39 Boas-vindas ao Open Source Friday A apresentadora dá as boas-vindas ao público e introduz a Mastra e seu convidado.
04:45 Da Gatsby ao nascimento da Mastra Avi conta a trajetória da equipe, a tentativa de criar um CRM com IA e a decisão de construir um framework open source.
11:33 Primeiros passos e criação de um agente A demonstração mostra a inicialização de um projeto Mastra e a proposta do Mastra Studio.
16:42 Studio, modelos e traces O agente de clima usa diferentes provedores, e a equipe examina os traces e as etapas de execução.
20:53 Evals e experimentação A demonstração explica scorers, evals ao vivo e offline, conjuntos de dados e experimentos para comparar agentes.
29:53 Extensibilidade e armazenamento Avi mostra como a Mastra permite integrar ferramentas de observabilidade e implementar adaptadores de armazenamento.
32:30 Memory e observational memory A conversa apresenta tipos de memória e explica como observer e reflector condensam o histórico em observações.
43:30 Memória persistente em sessões longas A equipe comenta a pesquisa sobre observational memory e o uso do sistema para manter sessões de programação por longos períodos.
46:39 Criando um agente de programação A demonstração transforma o agente de clima em um agente de programação com workspace, sandbox e acesso a arquivos.
53:54 Mastra Code e abstração de harness Avi apresenta o Mastra Code, explica sua abstração de harness e mostra como o agente pode explorar um repositório e criar outros agentes.
60:16 Comunidade e contribuições O convidado indica canais para aprender, acompanhar o projeto e contribuir com a comunidade.
64:58 Encerramento e próximos passos A apresentadora comenta o potencial da Mastra, incentiva o público a apoiar o projeto e encerra a conversa.
68:34 Demonstração do GitHub Copilot Um vídeo final apresenta maneiras de atribuir e acompanhar tarefas de coding agents no GitHub, no celular e no VS Code.

Algo que levou oito horas deveria levar uma hora para a próxima pessoa, ou até menos. — 08:57

A pontuação não é uma ciência exata. Com certeza são necessárias muitas iterações para acertar. — 24:36

O que você realmente quer é que o agente saiba e preserve o sinal. — 35:06

Como humanos, prosperamos com uma memória com perdas. — 37:46

Queríamos abrir a cortina e permitir que você construa o seu próprio. — 58:42

  • Mastra (ferramenta): Framework open source em TypeScript para construir aplicações e agentes de IA.
  • Avi Ayer (pessoa): Convidado da Mastra que apresenta a história do projeto e demonstra seus recursos.
  • GitHub (empresa): Empresa responsável pelo programa Open Source Friday.
  • Gatsby (ferramenta): Gerador de sites estáticos com React no qual os fundadores da Mastra trabalharam.
  • Mastra Studio (ferramenta): Ambiente interativo da Mastra para desenvolver, testar e conversar com agentes.
  • Mastra Code (ferramenta): Agente de programação open source da Mastra, construído sobre uma abstração de harness.
  • observational memory (conceito): Sistema de memória que comprime o histórico em observações e eventos para ajudar agentes a manter contexto.
  • MCP (conceito): Protocolo que a Mastra oferece tanto para conectar-se a servidores quanto para disponibilizar um servidor.
  • Skills.sh (ferramenta): Site mencionado na demonstração como catálogo de skills.
  • Langfuse (ferramenta): Produto de observabilidade que pode ser usado com a Mastra por meio de exportadores.
  • Braintrust (ferramenta): Produto de observabilidade e avaliação citado como compatível com a Mastra.
  • Y Combinator (empresa): Aceleradora na qual a equipe da Mastra entrou após o primeiro lançamento do projeto.

00:01 [música] [música] Calor. Calor. [música] >> [música]

00:34 >> Calor. Calor. [música] Calor. Calor. [música] [música] Calor. Calor. [música]

01:06 [música] [música] >> [música] >> Calor. Calor. [música]

01:39 >> [música] [música] [música] [música] >> Olá, pessoal. Bom dia, boa tarde, boa noite, onde quer que vocês estejam no mundo. Sejam bem-vindos ao

02:10 Open Source Friday. Obrigada por estarem aqui. Conseguimos. Conseguimos, equipe. Chegamos à sexta-feira. Não sei quanto a vocês, mas tive uma semana animada e intensa. [risadas] Cheia de acontecimentos, mas muito boa. Fizemos muito trabalho bom. Boas-vindas, Brandon. Obrigada por estar aqui. Boas-vindas, Zumi. Boas-vindas, Krepa. Boas-vindas, Mr. Landini. Agradeço muito a todos por participarem do Open Source Friday. E, para quem está acompanhando a transmissão pela primeira vez, sejam bem-vindos. Este

02:42 é o Open Source Friday. É um programa patrocinado pelo GitHub, produzido pelo GitHub e apresentado por uma equipe incrível das equipes de DevRel e open source do GitHub. Estamos aqui para apresentar projetos incríveis. Não só os projetos em si: também conversamos com os colaboradores, criadores, mantenedores e todas as pessoas que fazem o open source continuar avançando. E, nossa, sabemos o quanto dependemos do open source. Boas-vindas, Mr. Israim. Boas-vindas, boas-vindas, boas-vindas. Adoro saber de onde as pessoas estão acompanhando. Então, esta é minha

03:12 parte favorita. Obrigada por fazerem isso. Fico muito animada. Essa é minha coisa favorita de ler: saber de onde as pessoas estão acompanhando. Da Jamaica, Miss Roxan — estou com muita inveja. De Camarões, da Índia. Obrigada a todos por estarem aqui. Que maravilha. Temos uma ótima equipe acompanhando hoje. Estou ao vivo com vocês da costa oeste da Flórida, onde está muito quente. Então, um brinde e abraços calorosos para quem está em partes do

03:43 mundo onde ainda está muito frio. Mas, como mencionei, o Open Source Friday é um programa em que podemos destacar projetos incríveis. O projeto de hoje, em particular, tem uma história extraordinária, uma mudança de rumo realmente brilhante. Acho muito interessante quando as equipes começam a trabalhar em algo e depois fazem ajustes. Mas eles estão fazendo algo extremamente oportuno. E fico muito feliz em receber hoje o CTO da empresa. Para quem não conhece a Mastra, vocês estão prestes a aprender tudo o que

04:15 há para saber sobre ela. É um ótimo framework. E sejam bem-vindos a Avi Ayer, que é o CEO. Oi. >> Obrigado por me receber. Obrigada por tirar um tempo para estar aqui. Agradeço. A equipe vem tentando — nós estamos tentando — organizar isso há bastante tempo. Acho que conheci alguém da sua equipe numa conferência no ano passado. Talvez tenha sido a Render, ou… faz bastante tempo. Foi uma conversa longa. >> Estou no seu Discord. Tenho acompanhado de longe. Tenho usado ultimamente. Mas muito obrigada, Avi, por tirar um tempo para estar aqui. Estou muito animada para você contar sobre a Mastra. Sei que, de certa forma, ela veio da equipe do Gatsby, ou talvez alguns de vocês tenham feito parte do Gatsby em algum momento. Talvez eu esteja… >> Sim.

04:45 Então, se puder contar um pouco da história de origem — que problema vocês estavam tentando resolver e como tudo isso foi criado? >> Sim. Eu e meus cofundadores, Sam Bugwat, Shane Thomas e eu, trabalhamos

05:16 no Gatsby por bastante tempo. O Sam foi cofundador do Gatsby e, para quem não sabe, o Gatsby era um gerador de sites estáticos open source com React, um dos primeiros do tipo naquela época. Os sites estáticos estavam em alta durante a era do Jamstack da nossa carreira de desenvolvimento. E acabamos expandindo, deixando de fazer apenas sites estáticos para fazer outras coisas e, por fim, fomos adquiridos pela

05:48 Netlify, outra empresa importante no mundo do open source e do Jamstack. Quando chegamos à Netlify, foi preciso se acostumar a fazer parte de uma nova equipe e de um novo produto. Aos poucos, todos começamos a sair e a pensar no que viria a seguir. Surpreendentemente, fui a última pessoa a sair da Netlify. Na verdade, gostei do tempo que passei lá. E o Sam praticamente nos tirou da Netlify com essa ideia [risadas] de

06:21 “Quero criar um Salesforce melhor.” E, surpreendentemente, é assim que vamos chegar à Mastra; foi uma jornada bastante inesperada. Mas ele queria criar um Salesforce melhor e acho que tivemos a arrogância de pensar que éramos as pessoas certas para fazer um Salesforce melhor. Tentamos criar uma experiência parecida com a do Linear para usar como CRM e passamos muito tempo construindo um CRM que deveria ser um CRM com IA.

06:52 >> O motivo de não termos mexido nas partes de IA é que, na época, não havia muito movimento de IA em TypeScript. E estávamos ocupados demais focando nas coisas de que gostamos, como experiência do usuário, produto e coisas assim. Então, quando fomos buscar uma rodada seed, praticamente todos os investidores diziam: “Ei, isto é um CRM com IA, mas não estou vendo a parte de IA.” >> Cadê a IA? [risadas]

07:23 >> E nós dizíamos: “Ah, se você apertar um pouco os olhos, talvez consiga acreditar que ela está lá.” Então, depois de recebermos as rejeições, começamos a tentar integrar aquelas coisas de IA que eles esperavam, e descobrimos que era muito difícil avançar rápido quando se está tentando iterar e experimentar. Engraçado o bastante, eu estava visitando um amigo em Nova York. Fui ao escritório dele. Trabalhamos no distrito financeiro. Entrei; era para tomar umas cervejas

07:54 com ele, mas acabei entrando numa hackathon de IA que estava acontecendo no refeitório da WeWork. Acontece que ele não podia sair, porque estava participando da hackathon. Então pensei: vou participar também. Para isso, levamos oito horas — o dia inteiro — para criar um chatbot que consegue ler PDFs. Hoje, isso pode parecer bem artificial, mas [fungada] era muito difícil, principalmente

08:24 porque você está aprendendo pela primeira vez a fazer algo e, ao mesmo tempo, se submetendo à pressão do tempo. >> Então, fizemos. Conseguimos fazer funcionar. A maioria das pessoas estava enviando Google Colabs, Jupyter Notebooks. >> Isso. >> Se você já participou de uma hackathon, sabe que não era isso que ia vencer. Você precisa ter algo legal. Então, criamos um app em X.js e, felizmente, por já termos experiência com a web, o nosso projeto da hackathon ficou muito bom e conseguimos vencer. Isso realmente me fez

08:57 pensar: e se outras pessoas pudessem avançar rápido? Algo que me levou oito horas deveria levar uma hora para a próxima pessoa, ou até menos. >> Então, Sam, Shane e eu nos entreolhamos. Não queríamos voltar a fazer open source. Nada contra o open source; é que já tínhamos feito isso por tanto tempo que estávamos meio cansados. Mas, depois de passar por essa experiência, pensamos: precisamos fazer isso de novo, porque acho que falta uma biblioteca ou framework no mercado para ajudar as pessoas a criar IA. Então

09:28 [fungada] foi assim que, no dia seguinte, nasceu a Mastra e o CRM morreu. Desde então, começamos a criar o que gostamos de chamar de primitivos da engenharia de IA. Quando começamos, não havia tantos primitivos quanto há hoje. Começamos com LLMs, tool calls e um loop; depois, isso se expandiu para workflows, memória, MCP, skills e tudo mais. Estamos criando os

09:58 primitivos para fazer isso. Desculpe se esta é uma história longa, mas entramos na Y Combinator pouco depois do nosso primeiro lançamento, sabe? Conheci muitos construtores de agents em San Francisco. Isso ajudou a focar de verdade o que a Mastra deveria ser como framework open source. E, desde então, temos 22 mil estrelas no GitHub e mais de um milhão de downloads por mês. As pessoas estão realmente se identificando com o que estamos construindo. >> Sim, vocês estão arrasando. Vou

10:29 compartilhar o repositório aqui. E, para os meus amigos que estão me acompanhando no LinkedIn, fiquem por aqui; vou mandar o link por lá. Então, pessoal, acessem o link e comecem um projeto, por favor. Vamos fazer o projeto ficar em alta. Eu adoro Gatsby. Acho que uma das — quer dizer, várias das primeiras coisas que fiz, como minhas primeiras páginas na web, foram no Gatsby. E, curiosamente, depois virei fã da Netlify também, com aquela transição. Essa arte de mudar de rumo

11:00 >> é muito interessante para mim. Isso daria uma conversa inteira. Precisamos sentar e conversar sobre fundadores e como tomam essas decisões, porque é difícil sacrificar o que você ama quando pensa: “Mas eu adoro isso”. E então tomar a decisão de que open source é o caminho a seguir. Eu saúdo essa decisão. Sei que é exaustivo. E, tendo tido um projeto como Gatsby por tanto tempo e com tanto impacto na comunidade, sei que isso traz muita bagagem, trabalho, tempo, esforço, lágrimas e, às vezes, sangue. [risos] Então consigo entender totalmente a hesitação. Vocês entraram na Y Combinator e

11:33 então, com base nessa experiência no hackathon, vocês basicamente pensaram: “Certo, há uma oportunidade aqui para criar este framework; vamos fazer isso”. Aí escolheram a stack e construíram. Imagino que tenham usado… foi a Vercel? Ou não, com certeza o framework Next.js, certo? >> Sim. Para as partes de IA, começamos usando o AI SDK. >> Certo. >> Foi uma ótima maneira de dar o pontapé inicial em tudo, mas o AI SDK é uma ótima biblioteca. Só que há muitos outros

12:03 componentes necessários para criar um agent para produção. Então começamos a adicionar outras bibliotecas open source. Depois começamos a criar algumas das nossas próprias para complementar a parte do LLM nesse quebra-cabeça. >> Incrível. Então agora vocês… certo, na verdade há muito mais acontecendo. Se eu sou desenvolvedor e estou assistindo a isto, pensando: “Certo, quero criar um agent. Quero começar a fazer isso. Preciso de um framework que dê conta da escala, certo? Talvez isso vire um negócio e eu queira começar com Mastra.” Você pode nos mostrar um pouco do framework em ação? Acho que, enquanto vemos uma demonstração, poderemos explorar mais algumas perguntas. E, pessoal, se estiverem assistindo e tiverem perguntas, não hesitem em publicá-las no chat. Vou lê-las para vocês. E deem uma olhada no site da Mastra também. É muito bonito. Eu estava elogiando o trabalho de vocês com o designer. >> Sim. Vou fazer um exemplo canônico de agent de clima.

12:34 para virar um negócio, e eles querem começar com Mastra. Você pode mostrar um pouco do framework em ação? Acho que, enquanto vemos uma demonstração, vamos conseguir, sabe, explorar mais algumas perguntas. E, pessoal, se vocês estiverem assistindo e tiverem perguntas, não hesitem em mandá-las pelo chat. Vou me certificar de lê-las para vocês. Vão conferir também o site do Mastra. É muito bonito. Eu estava justamente elogiando seu designer, tipo, tirando o chapéu. >> Sim. Então, vou fazer um exemplo canônico, tipo, o exemplo canônico do agente de clima.

13:05 Preparei outros também para quando a conversa ficar um pouco mais aprofundada. >> Perfeito. >> Mas vou compartilhar minha tela e mostrar como as pessoas começam a usar a Mastra. Talvez eu precise parar de compartilhar para inserir uma ou duas API keys, mas podemos começar mesmo assim. >> Tudo bem. Enquanto você faz isso, vou compartilhar uma coisa também. Foi quando conheci… Meu Deus, estou esquecendo o nome, mas você — seu cofundador, ou talvez todos vocês — escreveram um livro, certo? Ou foi o Sam que escreveu? Sim, vou

13:36 compartilhá-lo porque, pessoal, eu tenho o livro. É uma ótima visão geral, bem completa, de como isso funciona. E é gratuito. Obrigada por isso. Adoro isso. Compartilhei o link no chat para que vocês possam pegar o livro. E, Mina, obrigada por estar aqui. E, para responder à sua pergunta: isso mesmo, é open source, é uma biblioteca open source. Pronto, agora estou vendo sua tela. >> Certo, ótimo. Para começar a usar a Mastra,

14:08 você pode executar npx create-mastra@latest. Vou aumentar o zoom para todo mundo. >> Obrigada. J, não sei o que está acontecendo com esse npm agora, mas é Open Source Friday, então vou escolher open source. Posso escolher um provedor. Vamos usar OpenAI. Tudo bem. E vamos pular a parte da API key. >> E este é mais ou menos meu primeiro

14:38 ponto para discussão. Quando começamos a Mastra, os LLMs não sabiam sobre nós. Então tivemos que descobrir outras maneiras de ajudar os usuários a usar suas próprias ferramentas para escrever código. Na época, o Windsurf era muito popular, o Cursor também, e o MCP era algo muito novo. Então, o que fizemos foi criar um servidor de documentação MCP. Assim, depois de instalar, o Cursor, o Claude Code e todos esses agentes de programação passavam a conhecer a Mastra por meio das perguntas que você fazia a eles. E agora

15:10 temos skills, claro. Podemos adicionar skills a isso, e temos várias skills da Mastra que permitem escrever código para a Mastra ou deixar seu agent escrever esse código. Quando começamos, há um ano, as pessoas ainda escreviam código à mão, mas, como sabemos, as coisas mudaram. Agora são nossos agents que escrevem código, então precisamos fazer um bom trabalho de engenharia de contexto para isso, e as skills são uma ótima maneira de fazer isso. Então, vamos seguir com essa opção e inicializar um novo repositório. Agora vamos instalar a CLI da Mastra. Um recurso muito

15:42 interessante da Mastra é o que chamamos de Mastra Studio. É um lugar completo para criar e testar seus agents. É um ótimo complemento ao código, e você pode conversar com seus agents por lá. Pode fazer experimentos e se divertir bastante. Muito legal. Agora temos o Open Source Friday. Deixe-me não… deixe-me não deixar minha key aparecer rapidinho. Então vou inserir a key da OpenAI e aí vamos começar. [risos]

16:12 >> Adoro isso. Então vocês têm sua própria interface interativa. O Studio permite visualizar tudo e fazer todos os testes. Isso é bem legal. >> Isso mesmo. Talvez eu pegue duas dessas keys e teste todas elas. >> Sim. >> Isso é bem legal. E uma coisa divertida… e obrigada por também oferecerem o MCP. O MCP não morreu, pessoal. [risos] >> É. >> Vou colocar isso numa camiseta. Mas vocês são um dos poucos frameworks open source — ou, melhor, frameworks de tipos — que oferecem os dois lados do MCP: tanto como cliente quanto como servidor

16:42 >> no framework. Isso mesmo. Então, sim, o MCP não morreu. Me avise quando estiver pronto para eu compartilhar. >> Certo. E então… talvez. Opa, estou pronto de novo. >> Aí está. Entramos. >> Então, estamos de volta ao nosso projeto. Vou executar npm run dev, que inicia o ambiente de desenvolvimento da Mastra.

17:14 E então você pode acessar localhost:4111. Agora verá que está no Mastra Studio. Incluímos este exemplo canônico de um agent de clima. Acho que o motivo pelo qual as pessoas fazem agents de clima, por exemplo, é que a chamada de ferramenta para obter a previsão do tempo usa uma API open source gratuita, certo? Então é uma coisa muito fácil para começar. Configurei a OpenAI, mas na Mastra temos algo chamado roteador de modelos

17:46 e permite escolher outros modelos. Então, enquanto eu estava fora da tela, adicionei chaves de API da Anthropic e da OpenRouter. E você pode ver aqui que oferecemos suporte a muitos modelos. Você só precisa trazer sua própria chave. Então, não está necessariamente vinculado a um provedor de modelos específico. Vamos perguntar: qual é a previsão do tempo em Miami, Flórida? >> Vamos ver. Então, chamar a ferramenta de previsão do tempo. Você tem estes

18:17 diagnósticos aqui. Sabe, em Miami está parcialmente nublado. Legal. E deve retornar em breve, ou estou com algum problema de internet. Mas, >> olha, é ao vivo. A gente sabe que isso acontece. Enquanto carrega, então, você adicionou dois provedores diferentes, certo? >> Então, você pode adicionar — quer dizer, pode adicionar qualquer provedor de modelos que quiser.

18:48 mas você consegue escolher qual provedor usa para cada tarefa? >> Sim. Então, tudo no Mastra é dinâmico. Vou abrir o código agora. Posso fazer… vou abrir o Cursor e, opa, vamos entrar em um agent aqui. Este é nosso agent de previsão do tempo. Vou mover isto para cá e falar um pouco sobre os componentes básicos enquanto construo um agent. Então, nossa classe Agent é o principal

19:19 componente básico de agent, e o que ela faz por baixo dos panos é executar ciclos agentic. Para configurá-la, primeiro você fornece instruções ou o system prompt. Depois, pode indicar o modelo aqui. Temos strings mágicas no nosso roteador de modelos, mas você também pode passar um modelo do AI SDK. Ou pode passar uma função e retornar isto. Temos algo chamado contexto da requisição, e você pode imaginar que, se

19:49 sabe, digamos que o contexto da requisição que o usuário… desculpe, se baseando nele, digamos que seja a Andrea, então vou retornar Anthropic ou algo assim. Então, esse contexto da requisição é onde você pode colocar esse tipo de informação contextual para fazer essas chamadas. Muitos desses parâmetros são configuráveis dinamicamente, e acho que isso é muito

20:21 necessário no cenário atual. As pessoas não estão usando um único modelo para tudo. >> Minha chance. >> Sim. Vou deixar isto como estava, por enquanto. E, se voltarmos à nossa demonstração, ele respondeu, o que é ótimo. A próxima coisa que o Mastra faz — porque aprendemos desde cedo que, se você está apenas conversando com um agent, realmente precisa entender o que está acontecendo nos bastidores — é mostrar os traces. Você pode ver aqui no canto superior esquerdo. Este é o que acabei de consultar: “Qual é a previsão do tempo em…?”. Posso abrir isso e agora tenho uma visão completa

20:53 de tracing de tudo o que aconteceu. Esta foi a entrada. Esta foi a saída, além de outros metadados e atributos do agent. Posso ver a própria chamada do LLM. Você pode ver quantos tokens foram enviados e recebidos. Também pode ver a entrada bruta e, depois, a saída bruta. Estou usando o GPT-5.1 mini. Então, ele tem estado de raciocínio. E isso é legal. Você consegue ver todas essas

21:24 coisas. E, por fim, você tem estas diferentes etapas do ciclo agentic. Então, isto está apenas retornando os dados brutos disso. A próxima coisa que aprendemos é que, com observabilidade e traces, você precisa poder iterar constantemente no seu agent. Foi aí que criamos os scorers. Scorers são uma forma de executar evals. E evals são muito importantes. Não muita gente os faz, porque, para ser sincero, são bem difíceis de fazer, mas você deveria fazê-los. E

21:58 se você estiver fazendo isso, pode calcular pontuações com base nas entradas e saídas que chegam ao seu agent. Por exemplo, esta é uma ferramenta chamada pontuação de precisão. Ela foi criada para verificar se, quando peço a previsão do tempo, ele chama a ferramenta de previsão do tempo. Deveria chamar. E é isso que essa pontuação tenta avaliar. Também temos outras pontuações, como completude. A resposta está completa? Essas são todas o que chamamos de pontuações baseadas em código. Elas não usam LLMs para

22:31 avaliar as coisas. Você pode escrever uma função para dar uma pontuação a qualquer coisa. Pode decidir o que isso significa para você. Pode usar bibliotecas de NLP etc. Mas existem alguns tipos de eval. No setor, chamamos isso de LLM as a judge. Então, esta avaliação de qualidade da tradução usa um LLM para pontuar a resposta do agent usando o próprio modelo. Esta recebeu nota um porque, geralmente, em evals, você

23:03 quer dar uma pontuação binária — aprovado ou reprovado, zero ou um — e quer deixar o mínimo possível de ambiguidade. >> Para comentar isso… Ah, sim, podemos parar para uma pergunta. Não, não. Sim, claro. Deixa eu olhar o chat. Mas estou pensando: você acabou de mencionar que evals são difíceis de fazer, certo? E pontuações como esta parecem bem simples, deixando o LLM meio que dizer: >> “O sinal foi bom ou não?” Quer dizer, fazer a própria avaliação. Mas você está vendo se as pessoas usam isso ativamente? É algo que as pessoas estão usando no próprio trabalho? E se

23:34 cometerem erros ao configurar as pontuações? Imagino que também haja muito ruído nisso. Aquilo pareceu ótimo, foi muito bom, mas não sei se isso está implementado na forma como as pontuações funcionam. Será que realmente ajudaria a manter informações mais limpas, a mostrar o que importa? >> Sim. Depende muito do tipo de empresa que está se aprofundando em evals. Temos muitas empresas grandes e clientes usando o Mastra agora. E o nível de adoção de evals varia bastante. Se você trabalha em um setor que exige

24:06 conformidade, como direito ou medicina — saúde —, os evals são feitos rigorosamente, principalmente porque há pessoas a quem prestar contas quando algo dá errado. Mas, no outro extremo, há muitas pessoas criando agentes de programação e assistentes pessoais, em que a avaliação depende do gosto do usuário. Certo? Se eu criasse um agent de e-mail para mim e ele fizesse algo errado, eu saberia que está errado porque é o meu e-mail.

24:36 >> Sabe, eu tenho uma relação com ele. >> Então, existe uma grande variedade. Pontuar não é uma ciência exata. Com certeza, são necessárias muitas iterações para acertar. Para construir o que gostamos de chamar de método científico, você formula uma hipótese sobre como melhorar seu agent, modifica sua pontuação para de fato coletar essa pontuação e, com o tempo, observa se ela está aumentando, de zero a um. E se você

25:09 estiver recebendo notas um de forma consistente, então está indo muito bem. >> Ótimo. Adorei. Então, você registra suas pontuações. Elas ficam na sua instância, e você também tem os dados históricos com os quais pode continuar executando as avaliações. Perfeito. Obrigada. >> Sim. Você configura as pontuações aqui, no agent. É bem parecido. Pode adicionar todas essas pontuações diferentes. Pode definir com que frequência quer executá-las. Chamamos isso de evals ao vivo. “Ao vivo” porque elas acontecem de forma assíncrona

25:41 depois de uma interação com um agent. Então, todas elas serão executadas 100% das vezes, porque definimos essa proporção dessa forma. Mas também dá para fazer offline, no sentido de que posso vir aqui e criar um conjunto de dados. Vou criar um fictício. >> Ah, legal. >> E, nele, posso adicionar itens que são as entradas e saídas. “Qual é a previsão do tempo em Paris?” “Está quente pra caramba.” Vamos só… [risos]

26:11 Isto deveria ser uma mensagem, acredito, e aqui vou dizer que deveria ser… não sei, um resultado. Vamos ver. Talvez ele valide essas coisas: elas precisam ser JSON válido. Sabe, quando é uma demonstração ao vivo, é sempre uma demonstração ao vivo. >> É assim que sabemos que falhou. [risos] >> Enfim, se isso funcionasse por

26:42 por qualquer motivo, você pode ter várias entradas e saídas que queira adicionar ou testar ao longo do tempo. Então, na verdade, posso ir para a visualização de rastros e adicionar isto ao nosso conjunto de dados. Vou adicionar isto ao conjunto de dados fictícios. E quer saber? Vamos adicionar mais algumas coisas ao nosso conjunto de dados. Então, qual é a previsão do tempo em Paris? Vamos usar um modelo diferente. Vamos usar o 40. Por que não? Descanse em paz.

27:16 >> Vamos ver. Está péssimo. >> Alguém no chat disse que ele não gostou do AF. [risos] Era isso. >> Certo, >> não está tão bom. E qual é a previsão do tempo em São Francisco? Então, enquanto vocês se comunicam com seus agents e os colocam em produção, vão reunir muitos rastros diferentes. E alguns rastros serão

27:46 marcados como bons e outros como ruins. Ou seja, um rastro marcado como bom significa: “Nossa, o agent respondeu muito bem. Devo usar isso como um item de teste daqui para a frente.” Assim, sei que, diante do mesmo cenário, ele sempre vai responder bem. Mas também há exemplos ruins em que ele não se saiu bem, e é importante mantê-los. Então, agora temos itens no nosso conjunto de dados. Podemos fazer experimentos com eles, e posso simplesmente executar este agent. Posso

28:17 selecionar meu agent de previsão do tempo e escolher a pontuação. Vamos usar a qualidade da tradução e executar. Agora ele vai pegar essas entradas e saídas — ou os itens de entrada —, executar o agent com elas e, talvez, eu mude algo no meu agent. Posso fazer iterações e começar a executar esses testes ao longo do tempo. Ele recebeu nota um. Provavelmente vai receber nota um em todos. Todos foram avaliados. Então,

28:49 isso é bem legal. E é o que as pessoas estão fazendo conosco agora. Acabamos de lançar esses recursos de experimentação, e as pessoas estão muito empolgadas para montar seus conjuntos de dados e envolver pessoas que não são engenheiras de software, >> porque, em muitas empresas, há equipes de engenharia de software que trabalham para empresas com especialistas em determinadas áreas. Por exemplo, se você tem uma clínica veterinária, seus engenheiros não são veterinários. Então, talvez os veterinários devam decidir o que é bom e ruim nos

29:23 conjuntos de dados e o que vale a pena testar e registrar. >> Nossa, isso é muito justo. Eu ia perguntar isso, e você acabou de responder à pergunta, porque há muitas ferramentas de terceiros que fazem evals, mas vocês incorporaram isso ao framework. Faz parte do framework. >> Sim. O motivo pelo qual quisemos fazer isso — e sem desmerecer nenhuma outra ferramenta — é que, quando você usa essas ferramentas, não fica tão perto do seu código quanto poderia. >> Tipo, digamos que você escreveu um

29:53 agent monstruoso, mas faz os evals em outro produto. Achamos que essas coisas deveriam estar conectadas, especialmente se você está executando o ciclo do agent no MRA. Os rastros, a observabilidade e os conjuntos de dados de evals também deveriam fazer parte desse ciclo. Foi essa a decisão que tomamos. Mas você pode usar produtos como Langfuse, Langmith e Brain Trust. Temos exportadores para tudo. E talvez esta seja uma pequena lição que aprendemos sobre open source: podemos querer criar nossas próprias ferramentas em

30:24 open source, mas precisamos atender os usuários onde eles estão. >> Por exemplo, quando começamos o MRA, só oferecíamos suporte a lib SQL como banco de dados, principalmente porque eu achava que lib SQL era legal — e ainda acho. Mas, quando alguém pede Postgress, você não pode dizer não. Muita gente usa Postgress. Precisamos atender os usuários onde eles estão. Nem todo mundo vai usar a observabilidade da Monster. Se quiserem usar Langfuse ou Brain Trust, devemos dar suporte total e garantir que consigam. Então, a forma como projetamos

30:56 o MRA — vou abrir uma visualização rápida. Este é o repositório monor do MRA. Vou dar um exemplo de como organizamos nosso código para que qualquer pessoa possa fazer um fork ou estendê-lo. Acho que a melhor forma de mostrar isso é falando do armazenamento. Masher oferece suporte a vários adaptadores de armazenamento, porque é preciso armazenar dados ao executar essas aplicações, sejam mensagens, rastros ou qualquer outra coisa.

31:26 E, no Ma, vamos à base. Projetamos tudo como classes base. Temos esses domínios-base de armazenamento; os workflows têm um domínio de armazenamento, as pontuações têm um nome de armazenamento, assim como a observabilidade, etc. Se eu abrir um deles, dá para ver que são todas interfaces de classes. São classes abstratas. Então, se você quiser usar seu próprio banco de dados, basta implementar o

31:58 armazenamento de workflows com a sua própria versão do que quiser fazer, e pronto. Projetamos praticamente todo o Merra para ser extensível por meio dessas interfaces de classes. >> Aprecio isso. Acho que é aí que muitas plataformas erram: tentam prender você às escolhas delas. Mas é preciso deixar os desenvolvedores escolherem o que querem fazer. Acho isso fantástico. Adoro. E vocês fazem isso com a observabilidade e o armazenamento, >> certo? >> Fantástico. >> Sim. Outra coisa que podemos destacar

32:30 é que nossos agents têm memória por padrão. Memória é a capacidade de… Pode parecer simples, mas o histórico de uma conversa é uma forma de memória de longo prazo. Como você pode ver, esta conversa contém todas as minhas mensagens. Temos uma seção de memória aqui, onde dá para adicionar diferentes tipos de memória: recordação semântica, que é a capacidade de usar embeddings vetoriais e pesquisar o histórico de mensagens. Temos a memória de trabalho, que é um tipo de memória

33:02 em que um agent pode usar uma string ou um objeto para escrever pequenas notas para si mesmo. E acabamos de lançar um novo tipo de memória chamado memória observacional. Vou adicioná-la agora. Memória observacional: true. E >> o que isso faz? O que é memória observacional? Isso é novidade para mim. Eu não conhecia isso. >> Então, memória observacional é um novo sistema de memória que lançamos há pouco mais de

33:34 um mês. E, na verdade, aprendemos algumas coisas. Eu me preparei para falar disso, mas, se quiser, há essa obsessão que temos agora por criar agents que nunca esquecem. >> Sim. E acho esse tema muito interessante. Não sou neurocientista nem nada, mas gosto muito de como o cérebro humano funciona. E, agora, antes de começarmos a trabalhar na memória observacional, todos usávamos o claude code. E, toda

34:04 vez que chegávamos à compactação no claude code, sentíamos como se o Claude tivesse sido lobotomizado. Ele simplesmente não sabia o que estava acontecendo. E temos essa context window de um milhão. Na época, era uma context window de 200 mil, e, depois da compactação, você sente que toda a jornada que teve com o Claude se perdeu, sabe? Porque é como se estivesse começando de novo. Muita gente pensava: “Vou começar uma nova sessão sempre que acontecer uma compactação; a sessão antiga não importa.” E nós ficamos pensando: “Está bem, isso é estranho.”

34:36 Esse é um problema estranho. Vamos pensar nisso. Sabemos que os LLMs conseguem processar muita informação, mas a memória ao longo de uma sessão longa é, na verdade, pior que a dos humanos, porque ainda consigo me lembrar do que aconteceu nesta semana, apesar de ter sido uma semana intensa. Provavelmente lembro mais do que meu agent de programação. >> E achamos que essas coisas estão relacionadas, sabe? >> Há tanta coisa que entra no contexto do agent, e há tanta

35:06 ruído, mas o que você realmente quer é que o agente saiba qual é o sinal e o mantenha. Talvez eu tenha várias chamadas de ferramentas para reservar voos ou pesquisar voos. Mas a principal observação aqui é que estou tentando ir para Nova York, e isso é realmente o que importa. Todo o resto só está poluindo a context window. >> Então, a solução comum para isso, que muitas pessoas usam, é extrair o sinal da mensagem do usuário. Certo? Eu digo que estou tentando ir para Nova York.

35:39 Ele vai pesquisar o histórico da conversa para encontrar as mensagens certas e construir a context window dinamicamente, e isso é legal. Mas isso invalida o cache do prompt. E sabe o que você quer, se quiser economizar dinheiro? Quer garantir que seus prompts possam ser armazenados em cache, para não pagar o mesmo preço. Há um preço diferente para tokens de prompt em cache em comparação com os tokens de entrada e saída — desculpe, de entrada. Então, percebemos que o LM nunca constrói imagens ricas…

36:10 e contínuas, especialmente se você fica iniciando novas sessões e está sempre injetando essas informações dinamicamente. Tudo fica situacional, em um único turno, para aquele momento, mas você quer ter uma visão holística de tudo. >> E, se você tem sinal demais, como decide o que já não importa mais? Para nós, humanos, uma das coisas que mais nos permite comprimir é o tempo, certo? Coisas que aconteceram cinco anos atrás, obviamente…

36:42 talvez já não importem mais. E o tempo é uma das formas de decidir o que não importa; também há a ênfase, suas emoções etc. Esse é um padrão típico de recuperação que as pessoas usam: você recebe uma mensagem do usuário, cria um embedding, coloca em um banco de dados vetorial, reordena os resultados, injeta ou rejeita o conteúdo e chama um LLM. É mais ou menos assim que funciona. Então, você só conversa com seu agente e, a cada vez, recupera…

37:14 o contexto do seu banco de dados e depois o injeta. Isso pode ser eficiente, mas não é econômico, especialmente se você está pagando tokens de entrada por tudo o que faz. Esse é um exemplo. Tyler Barnes, da nossa equipe, mergulhou de verdade nesse problema, e quero dar crédito a ele. Neste momento, sou só o porta-voz que está falando sobre isso. Ele teve essa sacada: sabe…

37:46 os humanos são muito bons em filtrar ruído, e o que podemos fazer é prosperar com uma memória com perdas. Nós, humanos, prosperamos assim. Não precisamos necessariamente de todos os dados para chegar a uma conclusão. Só precisamos de referências de alto nível ou de eventos claros que aconteceram. E, no momento, os agentes precisam de muita orientação nesse aspecto. Então pensamos: esquecer é um recurso, se você…

38:16 observar um dia comum seu, você faz todas essas coisas, mas o que fica são os eventos que importam, e o que você esquece são as coisas que não importam. Eu não me lembro de ter amarrado os sapatos hoje, embora provavelmente tenha feito isso. Simplesmente não é importante. >> Mas eu me lembro de que precisava participar deste podcast e vou me lembrar depois de que foi um ótimo podcast — ou transmissão ao vivo. Então, queríamos modelar esse tipo de coisa. Queríamos modelar os agentes dessa forma. Então…

38:47 construímos isso. Funciona muito bem. E funciona assim: temos três agentes. O agente principal, como aquele que mostrei no nosso Studio, é o agente principal; nós o chamamos de ator. E chamamos os outros dois agentes de observador e refletor. Acreditamos que eles formam a mente subconsciente do seu agente. São esses agentes, esses dois agentes, que estão sempre observando o histórico da conversa, fazendo observações e depois comprimindo as coisas…

39:19 em eventos. Assim, você não precisa necessariamente do contexto completo. É assim que funciona. Vou mostrar esta versão. >> E são três agentes separados, certo? Três agentes diferentes lidando com o mesmo problema de memória. Certo. >> Isso mesmo. E tudo roda em segundo plano. Como você pode ver, à medida que as mensagens chegam, essas observações vão sendo armazenadas em buffer. Assim que você atinge um limite de tokens — normalmente definimos em torno de 30 mil tokens, porque estamos tentando fazer mais com menos —, o sistema pega o…

39:50 histórico de mensagens, comprime em observações baseadas em eventos e, então, essa lista de observações fica no seu system prompt. Você só precisa incluir as mensagens que ainda não foram observadas. Isso nos permite ter algo que pode ser armazenado em cache com facilidade e que funciona muito bem em termos de recuperação. Para descobrir isso, fizemos um benchmark chamado LongMemEval. Ele tem 500 perguntas e uma quantidade enorme de dados, como 57 milhões de…

40:22 tokens de dados. Basicamente, é um esquema de perguntas e respostas com um agente. O modelo precisa encontrar todas as informações certas. Então, comparamos nosso sistema com outros produtos de memória disponíveis no mercado e fomos muito bem. Esse benchmark é bem antigo. Ele usa o GPT-4o como modelo-base. Eu até disse: “Descanse em paz, GPT-4o”, embora a gente tenha acabado de usá-lo. >> É. >> Pessoal, ele é uma boa referência, porque, se você consegue uma boa pontuação com um modelo ruim — entre aspas —, um modelo antigo, então o que você conseguiria fazer com um modelo novo?

40:52 >> Nos nossos resultados, chegamos a cerca de 84,2%, o que é bem sólido. Isso considerando todos os casos. >> Mas então pensamos: e se começarmos a adicionar modelos realmente bons? O GPT-5 mini marcou 94,9%; o Gemini 3 Pro também. E todos os modelos desta lista são bons. É só que nossa nova estratégia está ajudando em diferentes…

41:23 áreas. Aqui estão essas áreas. E, mais uma vez, faz sentido que sejam essas áreas, porque isso me parece mais humano. Raciocínio temporal é pensar nas coisas em relação ao tempo. Isso é tão próprio dos humanos, porque estamos sempre olhando para o relógio, certo? Achei muito interessante termos pontuado alto em atualização de conhecimento. Quando aprendemos coisas novas, devemos deixar de favorecer o que sabíamos antes e começar a favorecer o que sabemos agora. E depois há as várias sessões. Como você sabe, nós, humanos, temos…

41:55 várias sessões ao longo da vida. Estou conversando com você agora, depois converso com um amigo; não deixei de ser a mesma pessoa. Preciso manter o contexto entre essas sessões. Foi muito legal passar por tudo isso. E o Gemini 3 também se saiu bem nesse aspecto. >> É impressionante para perguntas. Foi bastante coisa. Não, isso é incrível, porque, sinceramente, o momento é muito oportuno: o problema da memória persistente está cada vez mais relevante, especialmente agora que há muito mais pessoas experimentando agentes para suas próprias necessidades e querendo poder…

42:28 descartar as coisas que não importam. Como no exemplo que você acabou de mostrar: “Não vou me lembrar da porta por onde entrei, mas sei que entrei no escritório”. É importante como entrei? Algo assim. Isso é muito, muito interessante. E então… >> Agora você tem três agentes trabalhando nessa tarefa. >> Você mencionou algo muito relevante para mim neste momento. Tenho lido bastante sobre isso e feito minhas próprias experiências com memória por causa do custo. >> Sim. >> E você mencionou algo sobre o…

42:59 custo dos tokens de entrada em cache. Acho que esse é o motivo pelo qual devemos pensar nesse problema, especialmente quando estamos criando agentes em escala. Você quer que seus agentes pareçam humanos, principalmente se forem um bot de suporte. Eu preferiria muito não ter que repetir para você que estou tentando encontrar um voo para Nova York — já tivemos essa conversa. [risos] Então, pensar no custo é obviamente uma aplicação enorme, mas o aspecto humano e pensar em como abordar isso do ponto de vista de como uma pessoa faz isso é muito…

43:30 Isso me fascina. O que você vê nas pessoas que estão experimentando isso? Há quanto tempo existe a memória observacional? Como você disse, ela tem cerca de um mês. >> Sim, lançamos em fevereiro, e este é nosso artigo de pesquisa. Vocês podem dar uma olhada. >> Sim, por favor. >> E ele é um mergulho profundo em como tudo funciona. E, sabe, as pessoas criaram suas próprias versões de memória observacional em Python. Vamos desenvolver uma biblioteca mais genérica, para que qualquer pessoa que use TypeScript possa utilizá-la. Você não precisa

44:01 ser usuário do MRA. É completamente open source. Que legal. >> E é muito divertido. Estou na mesma sessão de programação há um mês. Ah, acho que não quero me adiantar demais, mas, com isso, estou na mesma sessão de programação há um mês. >> Sério? >> Sim, é bem legal. >> Certo. Então, veja, estamos indo além da compactação e daquilo que você mencionou antes. Vou compartilhar no chat um link sobre como o Copilot lida com memória, porque isso também é algo novo para nós, pelo mesmo motivo: você não quer perder o contexto das sessões e quer poder retomá-las

44:32 e compactá-las, por causa dos custos ou seja lá qual for o motivo. Faz bastante sentido, mas você está programando na mesma sessão há um mês, usando memória observacional, e está funcionando. Pelo visto, você não está sentindo nenhum tipo de degradação, e continua trabalhando com a mesma disposição. Adoro isso. >> Sim. Eu costumava gostar muito de usar git worktrees. >> Sim. >> E ainda gosto. Só queria me testar e ver até onde isso pode chegar. Então, nem uso mais git worktrees. Tento concluir uma tarefa de cada

45:05 vez o mais rápido possível, depois troco de contexto dentro da mesma sessão, resolvo aquilo e, sabe, com o tempo, você acaba trabalhando em áreas de código sobrepostas, certo? E não perdi o ritmo em nenhum momento. Tem sido incrível usar isso. >> Agradeço por dizer isso. Acho que, se você tivesse me dito isso há seis meses, eu teria entrado numa sandbox e feito isso por conta própria, mas percebo que não as uso tanto

45:35 agora por causa disso, porque hoje temos essa possibilidade, e talvez o caminho linear seja o melhor. Isso é incrível. Deixe-me olhar o chat e ver se há alguma pergunta do pessoal. Houve perguntas sobre se é open source. Claro que sim. Durante a demonstração, o Studio faz parte do projeto. Sim, é open source. Então, quando estiver testando o Mastra, se quiser entrar e criar seus agents, sim, este é o framework. O que você está vendo aqui é aquilo com que vai trabalhar, e é gratuito.

46:06 Um comentário sobre sermos focados em TypeScript, e com certeza, porque os frameworks estão moldando a maneira como fazemos as coisas agora. Não acho que haja perguntas muito relevantes neste momento. Pessoal, se quiserem fazer uma pergunta à Abby, mandem no chat. Caso contrário, podemos continuar com a demonstração. Mas isso tem sido fantástico. >> Ótimo. Quero… certo, mudar de assunto agora. Quer dizer, é o mesmo assunto, mas vamos olhar por outra perspectiva. Hoje, os agents… sinto que estamos na era dos agents de programação. Quando entramos na Y Combinator, muitos agents que as pessoas estavam criando eram para humanos, para a força de trabalho, por exemplo, para substituir o setor administrativo de uma pequena empresa

46:39 ou tentar substituir contadores e coisas assim. E acho que, como mencionei antes, escrever evals é muito difícil. Para realmente substituir uma pessoa, é preciso acertar em cheio; não se pode cometer nenhum

47:09 erro, então é uma tarefa muito difícil. E acho que o que aconteceu é que os agents de programação não exigem o mesmo rigor, porque nós definimos os padrões daquilo que usamos. Além disso, podemos decidir não enviar o código nem fazer commit dele. >> E, por isso, vimos uma enorme expansão. É uma explosão cambriana de agents e produtos de programação. Copilot, obviamente, Claude Code, Open Code, Droid e todas essas maneiras diferentes de escrever

47:39 mais código. Então, quase parece que estão tentando nos substituir primeiro, pelo menos dá essa impressão. [risos] E, seja esse o caso ou não, no Mastra queremos que as pessoas possam fazer o que quiserem. Então, vou transformar este agent de clima em um agent de programação. Linhas de código. >> Sim, só algumas linhas de código, e vou transformá-lo em um agent de programação. Temos algumas primitivas para você se transformar em um agent de programação — ou transformar seu agent em um agent de programação — e

48:10 podemos fazer isso com um sistema de arquivos local e uma sandbox local. Também posso obter um workspace. No Mastra, os workspaces são um conjunto de um sistema de arquivos e uma sandbox, combinados para permitir que seu agent leia e grave arquivos, execute código não confiável e também use skills, certo? Skills do Cloud ou skills de agent. Então, vamos criar esse workspace.

48:42 Mais uma vez, workspace é uma interface. Você pode estendê-la. Vamos usar sandbox. E sistema de arquivos. Opa. Faz muito tempo que não uso a tecla Tab. O que é este caminho base do workspace? É simples assim. Posso

49:12 também definir um caminho para skills. Acho que isso é um array. Vamos dizer que é .agent/skills ou algo assim. Ou são diretórios de skills? Ótimo, porque posso ver o que tem lá. >> Isso mesmo. Obtenha as skills.

49:43 skills de agent. >> Legal. Era um array. Então, vou pegar esse workspace e passá-lo para o meu agent. >> Certo. >> E, como tenho um Studio… Pode continuar. >> Não, não, não. Só queria esclarecer: as primitivas já estavam lá. Você simplesmente deu a ele, dentro do workspace, as ferramentas de que precisava e depois forneceu a execução, certo? Eu perdi essa parte. Você deu a ele… tinha um… Deixe-me ver: sistema de arquivos, workspace. Certo. Certo.

50:14 Certo, certo, certo, certo. E, claro, uma sandbox. >> Sim. [risos] Eu poderia obter uma sandbox da E2B, da Daytona, da Modal ou de onde você quiser. E, para o sistema de arquivos, poderia montar um sistema de arquivos do Google Cloud Storage ou do S3, mas, para esta demonstração, vamos usar minha máquina local e deixar o agent fazer o que quiser. >> Perfeito. Então, passei o workspace para um agent. Legal. E, agora, se você olhar à direita, temos todas essas ferramentas de workspace. E elas simplesmente

50:47 são adicionadas automaticamente. Então, agora seu agent consegue ler e gravar arquivos. Vamos pedir: “Você pode salvar a previsão do tempo de Tóquio em um arquivo MD, por favor?” Chame a ferramenta de clima. Legal. >> Certo, >> agora ele vai gravar o arquivo. Então,

51:18 podemos ver aqui que ele salvou. Certo, legal. Quero dar uma olhada. Então, vou para a aba de workspaces. E aqui está: previsão do tempo de Tóquio. Que legal. Vamos adicionar algumas skills. No Mastra, damos suporte a skills. Depois de criar um workspace, você pode procurar as skills de que gostar. Por exemplo, estas são todas as skills que estão em um site

51:49 chamado skills.sh. E acho que existe algo chamado criador de skills. Podemos testar. Não sei se vai funcionar, mas aqui está um criador de skills. Você pode ver o que ele faz. Ele ajuda a criar uma skill. Vamos instalá-lo. Legal. Agora temos essa skill. Vamos voltar ao nosso agent de programação para clima. Você pode ver que agora temos skills à direita. Então, esta é a skill. Ajude-me a criar uma skill para informar a previsão do tempo.

52:20 Vamos manter a identidade da marca hoje. >> Certo. Então, o que você está fazendo agora é usando o agent de programação que acabou de criar para criar uma skill que faz o que ele acabou de fazer. >> Isso. >> É. >> O que é meio meta, acho. [risos] Mas… >> Adorei. Olha, se você me mostrar que publicou essa skill no Skills… Na verdade, ela é detectada automaticamente, certo? É uma coisa automática. É. Mas você deveria conseguir, né? Se tiver MCP aí, você…

52:52 deveria conseguir criar um Ripple, publicá-lo e enviá-lo por aqui. Olha só. >> E essa coisa está criando um script para buscar a previsão do tempo. Então, sabe, isso já é outro nível. É tipo: uau. Que loucura é essa? É incrível. Vamos voltar aqui. Vamos ver se temos nossas skills. Aqui está nossa skill. E isso está tudo certo. Só preciso dizer que você precisa…

53:24 escrevê-la no caminho das skills, agent skills. Opa, esqueci outro token de API. Mas, como dá para ver, essa memória observacional estava funcionando >> e dá para ver que estava tentando fazer umas coisas. Esqueci a chave de API, então a culpa é minha. Mas pelo menos dá para ver que está funcionando em segundo plano.

53:54 Legal. Está escrevendo um arquivo. Tudo certo. Acho que, se voltarmos ao nosso espaço de trabalho, deve estar em algum lugar. Ah, está bem aqui. Skill de previsão do tempo. >> Bem legal, né? >> É muito legal. >> Então, vamos levar isso um passo além. Certo. Como eu disse, sabe, se você quiser criar um agent de programação, deveria. Temos um agent de programação. E você pode obtê-lo pelo npm…

54:26 … Mastra Code. Pode dar algum problema, porque não uso npm com muita frequência. Uso pnpm. Então provavelmente vai fazer alguma bobagem. >> Vamos testar. >> Vamos testar. Vamos lá. >> Sabia. Só preciso apagar esse caminho. É, não sei. É por isso… Essa é a razão de eu não usar… Legal.

54:56 Legal. Agora vamos executar o Mastra Code. Legal. Agora você tem um agent de programação mais especializado do que aquele falso de previsão do tempo que acabei de criar, com system prompts reais sobre como ser um agent de programação, baseado na nossa memória observacional. Então, quando eu disse que estou numa sessão há um mês, estou em uma dessas sessões. Então…

55:28 posso perguntar o que está acontecendo. Na verdade, primeiro vamos configurar algumas coisas da memória observacional aqui. Você pode configurar os modelos de observador e refletor. Estou usando Haiku. Tranquilo. E então… >> O que são esses limites? Esses limites são para você. Tipo, qual é a sua expectativa? >> O limite é como se eu fosse esperar. Só vou começar a observar quando o histórico da conversa >> chegar a esse ponto. E, para comprimi-lo…

55:58 ainda mais, ele precisa chegar a 40 mil observações já feitas. Então você está constantemente tentando comprimir e, sabe, manter o context window sem deterioração. Então, o que eu geralmente gosto de fazer é dizer: “Por favor, pesquise este código a fundo. Entenda o que fizemos e, por fim, não cometa erros.” [risos]

56:36 >> Certo. Com uma conversa. Dá para ver que, quando instalei isso, instalei uma skill do Mastra que permite… Imagine que você estivesse trabalhando num projeto Mastra. Há aqui uma skill do Mastra que ensina o agent e o orienta para que saiba o que o framework faz e, sabe… Então, isso carregou o guia do framework e agora está lendo coisas, está lendo…

57:07 o package.json. Vai analisar tudo o que tem aqui. Está lendo vários arquivos e formando uma visão completa. Vai me passar essas informações, e acho que vou pedir para criar outro agent, só por diversão. >> Certo. Olha, mas… >> isso é muito interessante, porque você criou um espaço onde pode criar agents…

57:41 >> ou que está se tornando um agent por conta própria. Minha cabeça, minha mente, está explodindo. Não, isso é muito, muito interessante. Então, o que você me surpreendeu agora… Mas, certo… >> Surpreenda-me. E, como podem ver, criamos… O Mastra Code também é open source. >> Legal. Ele usa uma classe-base, e esse é o tema da conversa de hoje: classes-base e interfaces. Ele usa uma classe-base e uma interface do que chamamos de harness. E harness é uma palavra muito popular na engenharia de IA atualmente.

58:12 E, se você quiser criar seu próprio agent de programação ou algo como o Claude Code, pode estender esse harness, usar os agents do Mastra e, sabe, terá muitos desses recursos prontos para usar. Por exemplo, o harness permite ter uma lista de tarefas. Ele pode pedir que você… Sabe, você pode fazer perguntas. Toda essa experiência de usuário do Claude Code ou do Claude Cowork já vem integrada por padrão quando você cria algo usando essa abstração de harness.

58:42 E é muito legal levar o open source ao máximo, porque muitas dessas outras ferramentas são de código fechado. Queríamos meio que abrir a cortina e… >> Obrigado. Você pode criar o seu… >> próprio e caro. Com certeza. Mas este tem uma sensação muito agradável, bem fluida. Adoro. Adoro. É totalmente open source. E, basicamente, posso criar isso e criar quantos agents quiser. >> Isso.

59:12 >> No Mastra. Incrível. >> É. E você pode fazer deploy no seu provedor de hospedagem favorito. Como o Mastra pode funcionar como servidor, ou você pode usá-lo no Next.js ou em qualquer servidor que esteja tentando executar. Mas o próprio Mastra, sabe, aquilo que alimenta este Studio por trás dos panos, é um servidor Mastra. Então, se você quisesse ter um microsserviço de IA, digamos, poderia fazer deploy só do Mastra, por conta própria, e colocá-lo na AWS, no Next.js ou onde quiser. E aí você…

59:46 está no jogo. Todos esses agents estão na internet e você pode seguir em frente. >> Incrível. Incrível. E do que ele te surpreendeu, então? O que está fazendo? Que tipo de agent que viaja pelo mundo é esse? Acho que vamos ter que esperar para ver. [risos] >> É, acho que vai ajudar a planejar viagens. >> Certo, gostei. Você acha que essa foi uma dedução com base no contexto da conversa que você acabou de ter. Foi por isso que escolheu isso.

1:00:16 >> É. Com base no agent de previsão do tempo que já existia. É. >> É. Isso é muito interessante. Estamos chegando ao fim do nosso tempo. Quero garantir que contamos às pessoas como podem começar e quero compartilhar o Discord de vocês. Onde fica a comunidade? Sei que há um servidor do Discord muito ativo. Acho que todos vocês estão lá, conversando com as pessoas. Estou compartilhando o link agora nos comentários. Então, pessoal, entrem. Como as pessoas podem…

1:00:47 começar a contribuir com o projeto, se quiserem? Que tipo de contribuição vocês gostariam de ver? Isso é muita coisa. Eu não fazia ideia de que havia tanto no Mastra. Vai ser um fim de semana divertido para mim. [risos] >> É, já estamos nisso há um ano. Imagine o que podemos fazer em mais um ano. >> É loucura. >> Para nos encontrar, o Discord é muito ativo. Estamos todos lá conversando. Às segundas-feiras, fazemos uma transmissão ao vivo. Ela se chama AI Agents…

1:01:18 Hour. É ao meio-dia, horário do Pacífico. Você pode encontrá-la no YouTube procurando por Mastra AI. Às quintas-feiras, toda semana, fazemos um workshop em que ensinamos esses conceitos. Você pode encontrá-lo no Luma, procurando por Mastra AI. Nesta semana, falamos sobre harnesses. Na semana anterior, falamos sobre Mastra Code e memória. Na próxima semana, vamos falar sobre multi-agents. Então, se quiser aprender algo toda semana, venha nos acompanhar. E, por fim, você pode seguir…

1:01:50 Mastra no Twitter, no X. Quer dizer, vocês podem me seguir, assim como meu cofundador Shane e Sam. Sigam todos nós. Nós repostamos e publicamos um monte de coisas e não provocamos os outros com tanta frequência. [risos] >> Gostei do aviso. Não com tanta frequência. Perfeito. Bom, já tem gente entrando no Discord. Vou conferir suas transmissões. Parece muito, muito interessante. Com certeza. Escutem, pessoal: se vocês estão trabalhando com isso, entender o que é um harness vai levar vocês longe. Então, nós…

1:02:22 …não falamos muito sobre isso. Sinceramente, sei que eu definitivamente não falei muito sobre isso, mas… >> sobre as maneiras de fazer isso funcionar efetivamente para vocês. >> E você trouxe um ponto excelente sobre como, quando começamos a trabalhar nisso, há apenas três ou quatro meses, era um agent para ajudar a Abby. Quer dizer, eu estava criando um agent para que a Abby pudesse trabalhar com ele. Mas agora estamos avançando para um cenário em que precisamos criar agents para ajudar outros agents, e é uma situação completamente diferente. Isso é muito, muito interessante.

1:02:53 >> Pergunta muito oportuna. Como será o futuro da Mastra? O que está no roadmap? Em que vocês estão trabalhando que podem compartilhar? >> Temos três pilares nos quais vamos continuar trabalhando. Um deles é memória. Há tanta coisa para explorar, e estamos muito interessados nisso. Então, vamos continuar avançando na área de memória. Tenho certeza de que a memória observacional vai receber algumas melhorias. Isso é ótimo. Dois: observabilidade.

1:03:23 Embora as pessoas pensem que isso se resume a traces, evals e coisas do tipo, eu realmente quero que o método científico seja automatizado para os usuários. Talvez você não precise se preocupar em escrever evals e melhorar seu agent. Talvez outro agent fique responsável por isso. E, por fim, a comunidade. Tenho muito medo de que a comunidade desapareça. Então, vamos continuar investindo nela e fazendo dela a melhor possível. Temos uma conferência chegando em 9 de abril. >> Legal. >> Sim. Em San Francisco. Ela se chama TSAI Demo Days.

1:03:56 Vocês vão ver muitas empresas que levaram para produção não só a Mastra, mas qualquer agent. O evento também será transmitido ao vivo. Então, esperem mais eventos comunitários como esse. Agradeço esse apoio, e é isso que realmente faz o open source ser open source. Então, obrigado por manter o foco na comunidade e organizar todas essas iniciativas educativas, além de reservar um tempo para estar aqui. Pessoal, o CTO da empresa veio fazer uma demonstração para nós. Convenhamos! Obrigado. Foi uma conversa maravilhosa. Muito obrigado por reservar…

1:04:27 …um tempo para participar. Vou incluir na descrição todos os links que compartilharmos nos comentários. Para quem chegou um pouco mais tarde e talvez tenha perdido o começo da transmissão, vou publicar um link do YouTube para vocês assistirem. Na verdade, criei um link curto para isso: gh.io. Ele vai levar vocês à transmissão no YouTube, onde poderão assistir. Ela começa do início. Vocês definitivamente não vão querer perder tudo o que conversamos. Muito obrigado, Abby. Foi ótimo.

1:04:58 >> Claro. >> É, obrigado pelo convite. Me diverti muito. >> Volte sempre. Vou adorar, a qualquer momento. >> Incrível. Obrigado. Pessoal, vamos mandar uns brilhinhos para a Abby. Não deixem de seguir a Abby no Twitter. Ele prometeu não provocar a gente demais. Quer dizer, não o tempo todo. Mas vocês estão publicando conteúdo incrível. Este livro é uma pequena joia, é realmente muito bom. Então, obrigado por disponibilizar todos esses recursos de graça e de forma aberta, para que todos nós possamos…

1:05:28 …ter acesso a eles. Então, obrigado, Abby. Tenha um ótimo dia. >> Claro. É, obrigado. >> O que acharam? Eu, pelo menos, estou ansiosa para experimentar a memória observacional neste fim de semana. Tenho ficado dando voltas, tentando fazer coisas assim por conta própria, quando já existe um projeto open source brilhante fazendo isso. Adorei. Adoro a possibilidade de vocês criarem seus próprios agents e explorarem essa nova fronteira dos agents trabalhando com agents, o que ele acabou de mencionar nos últimos instantes da nossa…

1:05:59 …conversa: talvez não devêssemos, ou talvez chegue um momento em que os humanos não precisem se preocupar com os evals, porque haverá agents otimizando isso para nós. E eu acredito nisso 100%. Foi fantástico. Muito obrigada a todos por participarem do Open Source Friday. Obrigada por apoiarem o open source. Vamos ver, conferir se não estou deixando passar nenhum link. Estou passando para vocês o link do repositório. Não se esqueçam de acessar o repositório e deixar algumas estrelas. Deixem…

1:06:30 …um pouco de carinho para a Mastra com estrelas. É uma forma gratuita de apoiar esse projeto. Deixem uma estrela se ainda não fizeram isso. Entrem no servidor do Discord deles. Eu fico por lá, meio que só observando. Eles são muito ativos. Estão todos lá respondendo a perguntas e interagindo com a comunidade. E agradeço muito que essa empresa mantenha o foco na comunidade e em todos nós, disponibilizando todos esses recursos. Não se esqueçam de se inscrever no nosso canal do YouTube para não perder nenhuma notificação quando o Open…

1:07:00 …Source Friday estiver acontecendo. Foi um prazer estar aqui com vocês hoje. Vou compartilhar para vocês poderem tornar meu pequeno pedaço do inferno… [risos] Quer dizer, para melhorar minhas interações no Twitter, se eu puder conversar com todos vocês. Então, sigam-me por lá. [risos] E sim, o link do livro… deixa eu encontrá-lo rapidinho. É um livrinho fenomenal. Acho que agora me lembro onde estava. Foi no Render ATL, e acho que o CPO deles, ou alguém da empresa, estava lá e distribuía os livros. Ele…

1:07:32 …estava passando os livros para as pessoas, e acho que eles fizeram uma edição mais recente. Acho que a versão online está atualizada em relação à cópia impressa que tenho, mas é muito fácil de entender. E, se vocês estão chegando agora a esse novo paradigma, tentando descobrir como vão incorporar isso — voltando à pergunta anterior: posso adicionar um agent ao meu app? Claro que pode. Não há limites para o que vocês podem fazer agora. Mas será que devem? Essa é uma conversa para outro Open Source Friday. Talvez devêssemos explorar isso: quando é adequado usar um agent em vez de uma skill…

1:08:03 …ou de uma documentação? Enfim, muito obrigada a todos por estarem aqui. Publiquei o link do livro. Deem uma olhada. É realmente um ótimo livro. Sigam a Abby no X e vejo vocês na semana que vem para mais um Open Source Friday. Obrigada por estarem aqui. Vou encerrar com mais um… vamos encerrar com uma vinheta. Preciso consultar minha… minha lista de coisas. Ah, vou trazer um tema muito oportuno: a escolha dos desenvolvedores. Tenho orgulho de dizer que a GitHub está muito focada nisso. E este…

1:08:34 …vídeo a seguir é uma prova disso. Obrigada por estarem aqui. Até a próxima. >> Com o GitHub Copilot, você pode passar de tarefas de desenvolvimento sequenciais para simultâneas, usando o agent de sua escolha no agent HQ. A aba Agents no GitHub é onde você pode gerenciar todas as sessões dos seus agents na nuvem. A partir daqui, você pode atribuir tarefas pontuais ao Copilot, ao Claude da Anthropic, ao Codex ou a um agent personalizado. Também podemos usar essa ferramenta para monitorar nossas tarefas, tudo em um único local centralizado no GitHub. Agora…

1:09:04 …a maioria das solicitações de alteração chega por meio de issues, e você pode atribuí-las diretamente a um agent, como Copilot, Codex ou Claude. Escolha a branch que deseja usar como base, selecione novamente o agent desejado e deixe que ele faça o resto. A inspiração pode surgir em qualquer lugar, inclusive quando você está longe do computador. Podemos gerenciar agents e até atribuir tarefas diretamente pelo GitHub mobile. Como os desenvolvedores passam a maior parte do tempo em um IDE, é natural esperar ter acesso a…

1:09:35 A mesma funcionalidade a partir daí. No VS Code, você pode orquestrar todas as suas sessões de agent, locais e na nuvem, direto do seu IDE. Assim como antes, podemos atribuir tarefas ao Claude, ao Codex ou ao Copilot, usando um agent personalizado ou um modelo especificado. Essas ferramentas permitem atribuir e gerenciar sessões paralelas de agents de programação, tudo dentro do seu workflow existente.

1:10:07 [música] Ei, ei, ei. [música] [música] [música]

1:10:39 Ei, ei, ei. [música] [música] [música] [música] Calor.

1:11:11 [música] [música] Ei, Calor.

Transcrição original

[00:01] [music] [music] Heat. Heat. [music] >> [music]

[00:34] >> Heat. Heat. [music] Heat. Heat. [music] [music] Heat. Heat. [music]

[01:06] [music] [music] >> [music] >> Heat. Heat. [music]

[01:39] >> [music] [music] [music] [music] >> Hello everyone. Good morning, good afternoon, good evening, wherever in the world you’re joining us from. Welcome to

[02:10] Open Source Friday. Thank you for being here. We made it. We made it team. We made it to Friday. I don’t know about you all. I had a nice and spicy week. [laughter] Very eventful, but very good. Lots of good work done. Welcome Brandon. Thank you for being here. Welcome Zumi. Welcome Krepa. Welcome Mr. Landini. I appreciate you all so much for joining Open Source Friday. And for those of you who are just tuning in for the very first time to this stream, welcome. This

[02:42] is Open Source Friday. This is a show sponsored by GitHub, produced by GitHub, and hosted by an amazing team from the Devril and open source teams at GitHub. And we’re here just to bring you amazing projects. Not just the projects themselves, but we get to talk to the contributors, the creators, the maintainers, and all the folks who are making open source. Keep on going and boy do we know we depend and open source. Welcome Mr. Israim. Welcome, welcome, welcome. I love to know where people are joining from. So this is my

[03:12] favorite. Thank you for doing that. I’m prompted. That is my favorite thing to read when I see where folks are joining from. From Jamaica, Miss Roxan, I’m so jealous. From Cameroon, from India. Thank you everybody from joining. What an amazing. We got our great team watching today. So I am joining you live from the west coast of Florida where it’s very warm. So uh salute and warm hugs for those of you in parts of the

[03:43] world where it’s still very cold. But as I mentioned, Open Source Friday is a show where we get to highlight amazing projects. This project in particular that we have today has had an incredible story, a masterful pivot really. So, it’s like really interesting to me also when like teams get started, they get to work on things and then they they make adjustments. Um, but they’re doing something that is extremely timely. Um, and I’m delighted to have the CTO of the company joining us today. For those of you who are not familiar with Mastra, you’re about to learn everything that

[04:15] there is to learn about it. Uh, it’s a great framework. And welcome to Avi Ayer who is the CEO. Hi. >> Thanks for having me. Thank you for taking the time for being here. I I appreciate that the team has been trying we’ve been trying to put this together for quite some time. Um I think I met someone from your team at one at a conference last year. Maybe it was Render or it’s been it’s been a while. It’s been a long conversation. >> Um I’m in your Discord. I’ve been

[04:45] lurking. I’ve been using lately. But thank you so much Abby for taking the time to be here. I I cannot wait for you to share what master is about. So I know that it’s sort of it came from the Gatsby team or maybe some of y’all were from Gatsby at one point. Maybe I’m Yeah. Okay. So if you could tell us Yeah. a little bit of the origin story like what problem were you trying to solve and how did this all get put together? >> Yeah. So me and my co-founders Sam Bugwat, Shane Thomas, and myself, we all

[05:16] worked at Gatsby for quite a while. uh Sam being a co-founder of Gatsby and you know uh Gatsby was a for for those who don’t know Gatsby was an open-source uh static site generator uh with with React and one of the first of its kind back then. Um, static sites were all the rage during the Jamstack era of our development careers and you know we kind of expanded from static to doing other things and eventually got acquired by

[05:48] Netlefi another prominent uh company in the open source world and Jamstack world. Um once we got to Nellifi it was a little you know you take some getting used to joining a new team um being part of a new product and slowly uh we all started to fade out and tried to think of what was next. Surprisingly I was the one who left last from Nellifi. I actually enjoyed my time there. Um and uh Sam had pretty much stolen us out of Nellifi with this idea [laughter] of uh

[06:21] I want to build a better Salesforce. Um which is surprisingly how we’re going to get to MRA is a very surprising uh journey there. But he wanted to build a better salesforce and I guess we had the arrogance to think that we were the guys to to do a better salesforce. Um we tried um we tried building a linear like experience for doing a CRM and we spent a lot of time building a CRM when this CRM was supposed to be an AI powered

[06:52] CRM. >> The reason we kind of didn’t we didn’t want to touch the AI parts because there wasn’t any movement in Typescript in AI at the time. Um, and we were kind of too busy focusing on things that we like, user experience and product and things like that. So, when it came for us to go raise a seed round, um, pretty much all investors were like, “Hey, this is a AI CRM, but I don’t see the AI part.” >> Where is the AI? [laughter]

[07:23] >> We were like, oh, if you squint a little, you might believe that it’s there. Um so you know taking rejection on the uh we started trying to integrate those AI things that they expected and we found it to be very difficult to get far fast when you’re trying to iterate and like you know experiment. So um funny enough I was visiting a friend in New York City. I went to his office. We work in financial district. I walk in, I was supposed to have beers

[07:54] with the guy, but I walk into a hackathon, an AI hackathon that was happening in the Weiwork lunchroom. And so I, you know, turns out he can’t hang out. He’s participating in the hackathon. So I figure I’ll participate, too. Um, in doing so, it took us eight hours, the whole day to build a chatbot that can read PDFs. Now, that might seem so uh really contrived today, but it [snorts] was really hard to do mainly

[08:24] because you’re educating yourself for the first time how to do something as well as putting yourself under a time pressure to do it. >> Um, so we did it. We got it working. Pretty much most people were submitting Google Collabs, Jupyter Notebooks. >> Yep. >> If you ever been to hackathon, that’s not what was going to win a hackathon. You need to have something cool. So, we built like an X.js s app and thankfully having the web experience from before, you know, our our hackathon project looked very good and we were able to win. And that actually made me really

[08:57] think that what if other people could get far fast and something that took me eight hours should take the next person one hour or even less. >> So, uh, Sam, Shane, and I, we looked at each other. We didn’t want to do open source again. No offense to open source. we would just had done it for so long that it was kind of tiring. But then after going through this experience, we were like we have to do this again because I think there is a just a missing library or framework in the market uh to help people build AI. So

[09:28] [snorts] that next day Mashra was born and the CRM was dead. Um and since then uh we started you know from that moment we started building what we like to call the primitives of AI engineering. Um and when we started the primitives were not as much as they are today. It started with you know LLMs with tool calls and a loop and then it has expanded to workflows and memory and MCP and skills and you name it. We are building the

[09:58] primitives for doing that. Um I’m sorry if this is a long story but we got into Y Combinator shortly after you know our first release. Met so many agent builders in San Francisco. So it helped really focus what the like what MRA as a open source framework should be and you know since then we have you know our 22 cases GitHub stars we have over a million downloads a month like people are really resonating with what we’re building >> yes you have been on fire I’m going to

[10:29] share the repository here and for my friends that are joining me on LinkedIn hang with me I’m coming with the link that way so everyone go ahead and go to the link and start a project, please. Let’s get the project trending. I love Gatsby. I I think one of the I mean multiple of the very first things that I ever did like my first web pages were on Gatsby and then funny enough I became like a Netifi fan after too like obviously like that that that that transition. Um that art of the pivot

[11:00] >> is so interesting to me. That’s a whole conversation. we need to sit down and talk about founders and making those decisions because it’s hard to shoot the puppy when it’s like you’re like but no I love this thing. Um and then making the decision that open source is the way to go. Um I salute that. I know it’s exhausting and having had a project like Aspie that you know such a long time and so impactful in the community. I know that comes with a lot of baggage and work and and and time and effort and tears and sometimes blood. [laughter] So I can totally get the hesitation there. So you got into Y Combinator and

[11:33] then based on this hackathon experience you build basically you’re like okay there’s an opportunity here to build this framework we’re going to do it and then you pick your stack and you build it I guess you build it using um is it Versel or no the next definitely in the nextJS framework right uh >> yeah for the AI pieces we uh we started with using AI SDK >> okay >> and that was a really good way to jump start everything but AI SDK K is a great library. Um, but there’s a lot of other

[12:03] components that needed to build an agent for production. And so then we started layering other open- source libraries. Um, and then started building some of our own uh to to kind of complement the LLM piece of the the puzzle. >> Amazing. So now you’re Okay, so you’re you actually have a lot more going on now. Um, and so if I’m a developer and I’m watching this and I’m thinking, okay, I want to build an agent. I want to get started doing this. I need a framework that’s gonna support my scale, right? Like maybe this is going to grow

[12:34] into be a business and they want to start with Mastra. Um can you show us a little bit about the framework itself in action? Like I think as as we kind of see a demo, we’ll be able to, you know, dig into some more questions. And friends, if you’re watching this and you have questions, please don’t hesitate to post them on the on the chat. I’ll be sure to read them for you. Um go check out the master website, too. It’s so beautiful. I was just complimenting your designer like hazards. >> Yeah. So, let me I’ll do a canon like the canonical weather agent example.

[13:05] I’ve I’ve prepared some other ones as well as the conversation gets a little deeper. >> Perfect. >> But uh let me share my screen and I’m going to show just how people get started with Maestra. And I might have to like unshare to put a API key in or two, but uh we can get started anyway. >> That’s totally fine. While you’re doing that, I’m going to share actually and this is when I met and my gosh, I’m I’m spacing out the name, but because you’re you’re either your co-founder or maybe it was it was all of y’all wrote a book, right? Or Sam wrote a book. Yes, I’m

[13:36] going to share it because friends, I have it. It’s it’s it’s a fantastic little like it’s a good comprehensive look of how this works. Uh and it is free. Thank you for that. I love that. uh I shared it on the link uh on the chat so that your friends can go ahead and grab it and Mina thank you for being here and to answer your question correct this is open source is an open source library here we go so I got your screen now up >> okay great so to get started with MRA

[14:08] you can run MPX create MRA at latest I’ll zoom in for everybody >> thank you J I don’t know what this npm thing is about right now, but uh um opensource Friday and I’ll do in source. I could pick a my provider. Let’s use open AI. That’s fine. And we’ll skip the API thing. >> Um and this is kind of my first uh

[14:38] discussion point. When we first started MSRA, um LLMs did not know about us. So we had to figure out other ways to help users use their own tools to write it. And at the time Windsurf was very popular, cursor was very popular and MCP was a very new thing. >> And so what we did was we built an MCP doc server. So you know once installed cursor and cloud code and all these coding agents would know about MSRA via your questions to them. Um and then now

[15:10] we have skills of course. So we can add skills to this and we have different MRA skills that allow you to write MRA or let your agent write MRA because when we started a year ago people were still writing code by hand but as we know things have changed right so now our agents are writing code and so you need to be able to do a lot of good context engineering for that and skills are a great way to do that. So let’s just go with that and I’ll initialize a new repository. Now we’ll install the MRA CLI. One very

[15:42] interesting feature of MRA is we have what’s what we call the MRA studio. It is a all-in-one place to build and test your agents. Um it’s a nice companion to the code and you know you can go and chat with your agents there. You can go experiment and you know have a lot of fun. So cool. Now we have this source Friday. Now, let me not let me not leave my key real quick. So, I’ll go [laughter] open AI key in and we’ll be off to the

[16:12] races. >> I love this. So, you have your own interactive UI then. Studio actually allows you to like visualize this and do all the testing. That is pretty cool. >> Correct. And maybe I’ll take two of these keys and try all of them. >> Yeah, >> that is pretty cool. And something fun about and thank you for having the MCP also and like um MCP is not dead friends. [laughter] >> Yeah, >> I’m gonna put I’m gonna put it on a t-shirt. But you’re one of the few um

[16:42] open source or rather types frameworks that you ship both sides of MCP like you have it like both as a client and a server >> uh in the framework. Yeah. So yeah, MCP is not dead. All right. You tell me when you’re ready for me to share. >> All right. And then Maybe. Oops. I am I’m ready again. >> There we go. We’re in. >> So So we’re back in our project. I’ll run npm rundev, which starts the Maestra

[17:14] development environment. And you can then go to localhost 4111. And now you’ll see that you are in the MRA studio. And we ship with this very canonical example of a weather agent which I guess you know the reason why people do weather agents for example is the tool call to get weather is a open-source free API right so it’s a very much easy thing to get started with um I set up open AI but in Maestra we have this thing called the model router

[17:46] and it allows you to pick other models so while I was offcreen I added API keys for anthropic and open router And so you can see here that we support many models. You just got to bring your own key. So it’s not necessarily tied to a specific model provider. Um let’s ask what is the weather in Miami, Florida. >> Let’s see. So call the weather tool. You have this

[18:17] diagnostics here. You know, Miami, it’s partly cloudy. Um, cool. And it should return soon or I’m having some internet problems. But, uh, also >> listen, it’s live. That’s like we we know we know this happens. But while it’s coming up, so you charge, you picked up two different providers, right? >> U, so you can add I mean you can add any of your model providers that you want. Um

[18:48] but then are you able to pick what provider you use for what task? >> Yeah. So everything in Ma is dynamic. So I’m going to open up the code now. So I can do I’ll open up cursor and oops let’s go into an agent here. This is our weather agent. Let me move this here and I’ll talk about the primitives a bit um while building an agent. So our agent class is the main

[19:19] agent primitive and what it does under the hood is it runs agentic loops and how you configure it is one you give it instructions or the system prompt. Then you can give it the model here. I I we have magic strings in our model router but you could also pass an AISDK model or what you could do is you could pass a function and then return this. So you have we have this thing called request context and you can imagine that if you

[19:49] know let’s say if the request context that the user sorry get and based on you know let’s say if it’s Andrea I’m going to then return anthropic or that so like and this request context is where you can put this uh kind of uh contextual information to then make those calls a A lot of this a lot of these parameters are uh configurable um dynamically and I think that’s very much

[20:21] uh a necessary thing in today’s uh game. People are not using a single model for everything. >> My chance. >> Yeah. So I’ll go put this back for now. And if we go back to our demo, it did respond and that’s cool. The next thing that MSRA does because what we learned early on is if you’re just chatting with an agent, you really need to understand what’s going on behind the scenes. So you can see in the top left here we have traces. So this is what I just looked at. What is the weather in that? I can look this up and now I have a full

[20:53] tracing view of all the things that happened. So this was the input. This was the output other metadata that occurred and different attributes on the agent. I can look at, you know, the LLM call itself. You can see how many tokens it uh inputed and outputed. You can see the raw input and then the raw output. And I’m using BPT 5.1 mini. So it has reasoning state in it. And you know that’s cool. You can see all those

[21:24] things. And then finally you have these different steps of the agentic loop. So this is you know just returning the raw data from that. The next thing that we learned is with observability and traces you need to be able to constantly iterate on your agent. And so that’s when we built scorers. And scorers are a way to run evals. And evals are very important. Not a lot of people do them because I’ll be honest they’re very hard to do but you should be doing them. And

[21:58] if you are doing them, you can run scores based on the inputs and outputs that are going to your agent. So for example, this is a tool called accuracy score. Um it’s written so you know if I’m asking for the weather, does it call the weather tool? It should. And that’s what this score is trying to do. Then we also have other scores like completeness. Is the response complete? You know these are all we call codebased scores. They don’t use LLMs to to

[22:31] evaluate things. You can you know to score anything you can just write a function. You can decide what that means to you. You can use NLP libraries etc. But there are some types of eval. And we call this in the industry LLM as a judge. So [snorts] this translation quality uses an LLM to score the response from the agent using its own you know model itself. So this one scored one because usually in eval you

[23:03] want to score between you know either pass or fail zero or one and you want to leave less ambiguity to it. >> Um to take that oh yeah we can stop for a question. No, no. Yeah, for sure. And let me take a look at the chat. But I’m wondering because obviously you just mentioned like ealysis are hard to do, right? And like scores like this looks really simple and letting the LLM sort of be like >> the signal was this good or not? Uh doing like its own evaluation in a way. Uh but are you seeing like people is this something that people are using actively for their own like what if

[23:34] they’re making mistakes while they’re setting up scores because I would imagine like there’s a lot of noise too that comes with it. That looked beautiful though. That was like great, but I don’t know if that’s something that’s implemented in the way that scores work. Would it actually help you keep more clean information label like show you what matters? >> Yeah. So, it really depends on the type of company that is really going deep into evals. We have many big logos and customers using MOSA now. And the range of people doing eval is a spectrum. If you’re in an industry that requires

[24:06] compliance like law or med uh healthcare, evals are being written uh religiously >> mainly because you have people to answer to when things go wrong. But on the other end of the spectrum, you have many people building coding agents and personal assistants where the eval is the user’s taste. Right? If I built an email agent for myself and it did something wrong, I know that it’s wrong because it’s my email.

[24:36] >> You know, I have a relationship with it. >> Um, so there’s like a big spectrum. Scoring is not an exact science. It definitely takes many iterations to get right. And uh so to do to kind of build what we we like to call it the scientific method of you know having a hypothesis on how to change your agent for the better modifying your score to actually collect that that score and then over time seeing are you increasing score to from zero to one um and if you

[25:09] are consistently getting ones then you’re doing pretty good for yourself. >> Beautiful. I love that. Okay. So, you register your scores. They’re in your instance and then you also have like the historical data that you can continue to run it against. Perfect. Thank you. >> Yeah. So, scores here, you set them up on the agent. Very similar. You can put all these different scores. You can say, you know, at what rate do I want to do these? We consider these live evals. Live being they happen asynchronously

[25:41] after a turn with an agent. So all of these will run 100% of the time because we we ratioed that that way. Um and but you can also do offline in the sense that I can come here and I can create a data set. I’ll just make a fake one. >> Oh, that’s good. >> And within this I can just add items that are the inputs and outputs. Like what is the weather in Paris? It’s hot AF. Let’s just [laughter]

[26:11] uh this should be message I believe and this I’ll say should be I don’t know result let’s see and it might validate these things must be valid JSON you know it’s always a live demo when it’s a live demo >> this is how we know it’s it’s fail. [laughter] >> Um, in any case, if that worked for

[26:42] whatever reason, um, you could have a bunch of inputs and outputs that, uh, you want to add or you want to test over time. So, actually, I can go to our trace view and I can add this to our data set here. And I will add this to the fake data set. And, and you know what? Let’s let’s go add some more things to our data set. So, what is the weather in Paris? Let’s use a different model. Let’s just use 40. Why not? RIP.

[27:16] >> Let’s see. It’s stinking. >> Someone in the chat say he didn’t like AF. [laughter] That was it. >> Okay, >> that’s not too hot. And then what’s the weather in San Francisco? So, you know, as you’re, you know, you’re communicating with your agents, you’re shipping them into production, you’re going to gather a lot of different traces. And some traces will

[27:46] be signaled good and signal bad. Aka signal good means, wow, the agent really responded well. I should use that for a test item um going forward. So I know that given the same scenario, it’s always going to respond well in that scenario. But then there’s also some example bads where it did not do well and you want to make sure you have those. So here now we have items in our data set. We can run experiments on them and I can just run this agent. I can

[28:17] select my weather agent and I can select the score. Let’s just use a translation quality and I can run that. And so now it’s going to take those inputs and output or input items and then run the agent on them and then maybe I I change something in my agent. I can iterate on it and then I can just start running these over time. So it scored one. It’ll probably score one on all of them. You know, all of them were scored. So

[28:49] that’s kind of cool. And this is what people are doing now um with us. It’s like we just released these these these experimentation features and so people are getting really excited about building their data sets up getting non software engineers involved >> because a lot of companies are you know there’s software engineering teams for a subject subject matter expert company. So for example if you’re a vet clinic your engineers are not veterinarians. So maybe the veterinarians should be the ones deciding what is good and bad in uh

[29:23] the data sets and what is worth testing and what is worth noting. >> Wow, that is very fair. I was going to ask you and you actually just answered that question because there is a lot of like third party tools that do evals but you made it part of the framework like it’s in the framework. >> Yeah. the reason we wanted to and you know no hate on any other tool >> but when you’re using those tools you’re not actually as close to your code as you as possible >> um like you’re let’s say you wrote a

[29:53] monster agent but then you’re doing eval in a different product well we thought you know these things should be connected especially if you know you’re running the agent loop in MRA well the traces and the observability and the eval data sets should all be part of that loop as well and so that the decision we made. But you can use products like Langfuse, Langmith, Brain Trust. We have exporters to everything. And this might be a good little thing we learned about open source. We may want to build our own things in

[30:24] open source, but we have to meet users where they are. >> And so, for example, when we first started MRA, we only supported lib SQL as a database, mainly because I thought lib SQL was cool, and I still do. But when someone asks you for Postgress, you can’t say no. A lot of people are using Postgress. You want to meet users where they are. Not everyone’s going to use monster observability. If they want to use Langfuse or brain trust, we should be 100% in support of that and make sure that they can. So the way we designed

[30:56] MRA, I can go just do a little quick view here. This is the MRA uh monor repo. And I’ll just give you an example of how we do our code in a way that it is available for anyone to fork or extend. And the best way I think to show that off is storage. Masher supports many storage adapters because you need to store data when you’re running these applications whether that’s messages or traces or what have you.

[31:26] And so in Ma we have let me go to the base. We’ve designed everything as base classes. So we have these base storage domains and so workflows has a storage domain, scores have a storage name, even observability, etc. And if I go to one of these, you can see that it’s all class interfaces. They’re abstract classes. So if you wanted to bring your own database, you just implement the

[31:58] workflow storage with your own flavor of whatever the heck you want to do and then you’re off to the races. So we designed kind of all of Merra to be extendable via these class interfaces. >> I appreciate that. I think that that’s where a lot of platforms go wrong trying to lock you into your choices, but you gota you got to let developers choose what they want to do. I that’s fantastic. I love that. And you’re doing that with ewability with storage, >> correct? >> Fantastic. >> Yeah. Um, some other things we can note

[32:30] is our agents have memory by default. So memory is the ability to, you know, may seem kind of simple, but a conversation history is one way of to do long-term memory. So as you can see, this conversation has all my messages. We have like a memory section here where you can add different types of memory. Semantic recall which is the ability to use vector embeddings and search through the message history. We have working memory which is a you know a memory type

[33:02] where an agent can use uh either a string or an object to write little notes for itself. And then we just shipped a new memory uh which is called observational memory. And I’ll go and add that right now. observational memory true and >> what does that do? What is observational memory? This is new to me. I have not I wasn’t familiar with that. >> So observational memory is a new memory system we just released over a little

[33:34] bit over a month ago. And so couple things we learned actually was prepared for this but uh if you want we have this like this obsession right now with building agents that never forget. >> Yes. And I just think it’s such an interesting topic. I’m no neuroscientist or anything, but I really love how the human brain works. And right now, before we were working on observational memory, we were all using claude code. And every

[34:04] time we hit compaction in claude code, we felt like claude got lobotomized. It just did not know what was going on. And we have this million context window. And at the time it was a 200k context window and you just feel like after compaction the journey you went on with claude it’s always all for loss you know because you’re kind of starting over and many people had the I’m just going to start a new session every time compaction happens the old session doesn’t matter and we’re just like okay this is a weird

[34:36] this is a weird problem let’s like think about it so we know that LLMs can process so much information but like the memory over the long session is actually worse than a humans because I can still remember what happened this week even though it was a spicy week like you know I probably remember it more than my coding agent does >> and so we think that these things are kind of related you know >> like there’s so much stuff that goes into agent context and there’s so much

[35:06] noise but what you really want is the agent to make sure it knows and keeps the signal right I may have a bunch of tool calls to book flights or search for flights. But the main observation here is I’m trying to go to New York City and that’s really what matters. All this other stuff is just polluting the context window. >> And so our the common solution to this which many people do is you extract the signal from the user message. Right? I say I’m trying to go to New York City.

[35:39] it’s going to go search the conversation history to find the right messages to build the context window dynamically and that’s cool. Um, but it invalidates the prompt cache. And you know what we what you want when you’re well, if you want to save some money, um, you want to make sure that your your c your prompts are cachable. So you’re not paying uh the same price. There’s a different price for prompt uh promp or cache tokens versus input and output sorry input. So we figured like LM never build rich

[36:10] continuous pictures especially if you keep like uh starting new sessions and if you’re always dynamically injecting uh this information it’s always like in a single turn situational for that one moment but you kind of want like a like a holistic view of everything. >> And so and then if you have too much signal how do you decide what doesn’t matter anymore? you know for humans a lot of biggest uh thing that allows us to compress is that time right things that happened five years ago obviously

[36:42] maybe not don’t matter anymore um and you know time is one way you can decide what doesn’t matter emphasis you know your emotion etc so like this is like a typical retrieval pattern that people will use you know you get a user message you embed it you get it put it into a vector database you rerank it you inject reject it and you hit an LLM and you know this is kind of how it works. So you’re just chatting with your agent every time you are just retrieving

[37:14] context from your database and then you’re injecting it and you know pretty much this may be efficient but it does not it’s not cost effective right especially if you’re paying input tokens for every everything you’re doing. So that’s one example. So Tyler Barnes on our team, he really do dove into this problem and it’s honestly shout out to him. I’m just a figurehead for talking about it right now. Um we had he had this insight like you know

[37:46] humans are really good at like filtering out noise and what we can do is we can thrive like as humans we thrive with lossy memory. um we don’t necessarily need all all of the data to then figure something out. We just need you know highlevel pointers or clear events that have happened and agents right now they need a lot of like handholding there. So we thought you know it’s forgetting a feature if you

[38:16] look at your common day you do all these things but the things that stay are the events that matter and the things that you forget are things that don’t right I don’t really remember tying my shoes uh today you know I probably did or you know it just it’s not important >> but I do remember I had to come on this podcast and I’m going to remember later that it was a great podcast right or live stream. So those are the kind of things that we wanted to model it. So we wanted to model agents this way. So we

[38:47] built it. It works pretty well. And how it works uh is uh we have three agents. So your main agent like the one that I showed in our studio. This is the main agent we call it the actor. And these other two agents are the we call the observer and the reflector. And we think it’s the subconscious mind of your agent. It is this agents, these two agents that are always watching the conversation history, making observations and then compressing things

[39:19] into events. So you don’t necessarily need full context. So this is how it works. I’ll just show this version of it. And >> and this is three separate agents, right? Three different agents tackling the same memory problem. Okay. >> Correct. And it’s all running in the background. So, as you can see, as messages come in, these observations get buffered up. As soon as you hit a token threshold, usually we set it around 30k tokens because we’re trying to do more with less. Um, it will then take the

[39:50] message history, compress it into these eventbased observations, and then now this observation list is in your system prompt, and you only need need to take messages that you have not observed yet. And so what this allows us to do is you have something that’s very cachable and it actually works very well in terms of recall. Um and how we kind of figured that out is we did a benchmark called the long mem eval. It’s a 500 questions and it has tons of data like 57 million

[40:22] tokens of data and essentially it’s like a question answer with an agent. Um, and the model has to find all the right information and so we benchmarked it against other memory products that are on the market and we did really well. This benchmark is quite old. It uses GPT40 as the base model which I did say RIP GPT40 even though we just used it. >> Yeah, >> people. It’s like a nice baseline though because if you can score well on a bad

[40:52] quote unquote bad model old model then what what would you be able to do in a new one? >> So in our results we got around 84.2% 2% which is like you know pretty solid. This is across the board. >> But then we thought okay what if you start adding really good models. So we did GPT5 mini scored like 94.9% Gemini 3 Pro and everyone in this list is good. It’s just we were you know our new strategy is kind of helping out in different uh

[41:23] areas. So these are the areas and once again it makes sense that these are the areas because this feels more human to me. Temporal reasoning is thinking about things in the aspect of [clears throat] time. That’s such a human thing to do because we’re always we’re looking at the clock, right? So, I think that was really interesting that how we scored high knowledge update. When we learn new things, we should unbias the old things we know and start biasing new things we know. And then multiple sessions like you are, you know, as a human, we are

[41:55] multi-session in our lives. Talking to you right now, talking to a friend, I didn’t change as a person. I have to maintain context between these sessions. So, it was really cool to go through all of this and uh yeah, and Gemini 3 did pretty well there as well. >> That’s impressive for questions. That was a lot. No, that was that’s super because honestly this is so timely because that the problem of persistent memory like especially now there’s a lot more people tinkering with agents for their own things and they want to be able to

[42:28] offload the things that don’t matter like what the exercise you just showed us of like I’m not going to remember the door that came through but I know I came in into the office like is it important how I walked in kind of thing. Uh that’s super super interesting. And so >> you have three agents on this job now. >> Um you mentioned something that is super relevant to me right now. I’ve been reading a lot about this and doing my own experimentations with memory because of cost. >> Yes. >> And you mentioned something about the

[42:59] cost of cash precious input for tokens. And I guess that is the reason why we should be thinking about this problem especially when we’re building agents for scale. Like you want your agents to feel human when they’re especially like a support bot. I much rather not have to repeat to you I’m trying to find a flight to New York [laughter] like we had this conversation already. Um so thinking about cost obviously like what’s one massive application but the human angle of it and thinking about approaching it like from the point of view of how a person does it is super

[43:30] fascinating to me. What do you see in people experimenting with this? How old is observational memory? Like you say it’s about a month old. >> Yeah, we released it in February and uh this is our research post. You all can uh take a look. >> Yes, please. >> Um and it’s all deep dive on how it works and everything. And you know people have built their own versions of observational memory in like Python. Um we’re going to be building out a more generic library so like anyone in Typescript can use it. You don’t have to

[44:01] be a MRA user. Um it’s completely open source. beautiful >> and it’s super fun like uh I’ve been in the same Oh, I guess I don’t want to get too far of ahead of myself, but like with this I’ve been in the same coding session for a month. >> No way. >> Yeah, it’s pretty cool. >> Okay. So because see you we’re moving beyond compacting and like what you mentioned earlier and I’m gonna drop a link on the chat about how copilot handles memory because it’s a new thing for us as well like because of the same reason like you don’t want to lose their context of sessions being able to resume

[44:32] sessions and compact them for expenses for whatever reason. Uh, it makes a lot of sense, but you’ve been coding the same session for a month using observational memory and >> it’s working out. Obviously, you’re not feeling any kind of degradation and you’re you’re still you’re still coming out fresh. I love that. >> Yeah. I used to be so into doing get work trees. >> Yeah. >> And I still am. I just wanted to test myself and see how far this can go. So, I don’t even use git work trees anymore. I just try to accomplish one task at a

[45:05] time as fast as possible, then switch contexts within the same uh session, fix that, and then you know over time you’re overlapping in code areas, right? Um and I have not missed a beat. Um so it’s been it’s been pretty pretty amazing to use. >> I appreciate that. I think if you would have said that to me six months ago, I would have >> hopping in a so box works myself, but I find myself not using them as much

[45:35] anymore because of this because now we have the possibility and like the linear path might be the best path. This is awesome. Let me take a look at the chat and see >> um if there are any questions uh from folks. There were questions about whether it’s open source. Of course, it is. When you were doing the demo, uh the studio is is is part of the project. Yes, that is open source. So when you’re testing out Mastra, if you want to go in and and create your agents like yes, this is this is the framework. What you’re seeing here is what you’re working uh with and it is free to use.

[46:06] Um a comment about being Typescript first and definitely because frameworks are for sure shaping the way that we’re we’re doing things now. Uh I don’t think there’s any questions that are super relevant right now. friends, if you want to ask a question of Abby, please drop it in the chat. Uh, otherwise, we can carry on with the demo. But this has been fantastic. >> Awesome. So, I want to Okay, switch gears now. I mean, it’s the same gear, but we’re going to go into a different perspective. Now, agents today, we’re I

[46:39] feel like we’re in a coding agent era right now. Um when we got into Y Combinator many agents that were people were building were for human human for workforce for example replacing the back of office of a small business >> or trying to replace accountants and these things and I think you know as I mentioned earlier writing evals is very hard to truly replace a human you have to come correct you cannot have any

[47:09] mistakes and so it’s a very hard task And what I think has happened is coding agents do not require the same rigor because we are the taste makers of the thing that we’re using. Plus, we can decide not to push the code or commit the code. >> And so we’ve seen this huge expansion. It’s a Cambrian explosion of coding agents and coding products. Copilot obviously, Claude Code, Open Code, Droid, all these different ways to write

[47:39] more code. So, it almost feels like they’re trying to replace us first, it [laughter] feels like. And whether that be the case or not, um, in Ma, we want people to be able to do whatever they want to do. So, I’m going to turn this weather agent into a coding agent. Um, lines of code. >> Yeah, just a couple lines of code and I’ll turn this into a coding agent. So we have some primitives to turn your to turn yourself into a coding agent or your your agent into a coding agent and

[48:10] we can do that with a local file system and a local sandbox and I can also get a workspace. So workspaces in Maestra are a collection of a file system and a sandbox put together to allow your agent to read and write files, execute untrusted code as well as leverage skills, right? Uh cloud skills or agent skills. Um so let’s make this workspace

[48:42] happen. Once again, workspace is an interface. You can extend it. And let’s do sandbox. And let’s do file system. Oops. I haven’t tabbed in a long time. Um, what is this base path workspace? So simple as that. Um, I can

[49:12] also have a skills path. I think this is an array. Let’s just say it’s dot agent skills or something. Or is it skills dur’s great because I can just uh see what’s in there. >> There you go. Get the skills

[49:43] agent skills. >> Cool. It was an array. So take this workspace and I’m going to pass it to my agent. >> Okay. >> And because I have a studio Oh, go ahead. >> No, no, no. I just wanted to clarify like the primaries were there. You just gave it within the workspace the tools that it needed and then you gave it the execution, right? Like I missed that bit. If you gave it the was there a uh let me see file space work. Okay. Okay.

[50:14] Okay. Okay. Okay. Okay. Okay. And then of course sandbox. >> Yeah. [laughter] I could get a sandbox from E2B or Daytona or you name it modal etc. And file system. I could mount a file system from Google Cloud Storage S3 but you know for the sake of the demo we’ll just use my local machine and let it yolo. >> Perfect. So I passed the agent uh workspace to an agent. Cool. And now if you see on the right here, we have all these workspace tools. Um and these just

[50:47] magically get added. So now your your agent is is able to read and write files. So let’s actually say, can you write the Tokyo weather to an MD file for me, please? call the weather tool. Fun. >> Okay, >> now it’s going to write the file. So, we

[51:18] can see here and it saved it. Okay, that’s cool. Well, I want to go look at this. So, let me go to the workspaces tab. And here we are. Tokyo weather. That’s awesome. Um, why don’t we add some skills? Huh? So, in MRA, we support skills. Once you have a workspace, you can go and find skills that you like. Um, for example, this is all the skills that are on a website

[51:49] called skills.sh. And I believe there’s like something called a skill creator. We can try it out. I don’t know if it’ll work, but here’s a skill creator. You can see what it does. It helps creating a skill. Let’s install it. Cool. Now we have that skill and let’s go back to our weather coding agent thing. You can see now we have skills here on the right. So this is the signal >> um help me write a skill for telling the weather.

[52:20] Let’s keep on brand here today. >> Okay. So what you’re doing now is you’re using the coding agent that you just created to create a skill to do the thing that it just did. >> Yeah. >> Yeah. >> Which uh [laughter] bit meta I think. But uh >> I love it. I listen if you show me that you publish that skill to skills. Well actually it’s picked up automatically, right? Like it’s it’s like an automatic thing. Yeah. Um, but you should be able to, right, if you have MCP in there, you

[52:52] should be able to like create a ripple, publish it, send it on this way. Look at that. >> And this thing is making it’s making like a a script to fetch the weather. So now like, you know, this is just like next level. It’s like whoa. Like how crazy is that? That’s just amazing. Let’s go back here. Let’s see if we have our skills. Here’s like our skill there. And uh that’s all all cool. I should say you need

[53:24] to write it to the skills path agent skills. Oops, I forgot another API token. But as you can see, this observational memory was running >> and you can see it was trying to do um stuff. I forgot the API key, so that’s my bad. But at least you can see that it’s it is running in the background.

[53:54] Cool. It’s writing a file. It’s all good. I think if we go back to our workspace, should be somewhere. Oh, it’s right here. Weather skill. >> Pretty cool, huh? >> That is very cool. >> So, let’s take it a step further than this. Okay. So, um as I said, you know, if you want to build a coding agent, you should. Um we have a coding agent. Um and you can get that from mpmi

[54:26] uh master code. This might have some problem because I don’t really use mpm that often. I use pmpp. So, it’ll probably do something stupid. >> We’ll try it out. >> Try it out. Let’s try it out. >> Knew it. Um, I just have to delete this path. Yeah, I don’t know. That’s This is why this is the reason I don’t use um Cool.

[54:56] Cool. And now let’s just run MOS for code. Cool. So now you have a coding agent that’s more focused than the weather the fake one I just made with real system prompts on how to be a coding agent powered by our observational memory. So like when I was saying that I’ve been in a session for a month, I’m in one of these sessions. Um so

[55:28] I can say what’s up. Actually, first let’s set up some observational memory things here. You can set up your observer and reflector models. I’m using haiku. That’s chill. And then >> what are those thresholds? Those thresholds are for you. Like what your expect is or >> the threshold is like I’m going to wait. I’m only going to start observing if the conversation history >> reaches that >> reaches that. And then to compress it

[55:58] even more um it has to hit 40k of observations already made. So you’re constantly trying to compress down um and then you know uh keep the context window uh like without rot. Um, so then what I usually like to do is like please deep research this codebase. Um, understand what we did and finally make no mistakes. [laughter]

[56:36] >> All right. With a thread. So you can see you can see that when I installed this I installed a master skill which allows so this is imagine if you were working on a master project yourself there’s a master skill here that’s teaches the agent and steers it in a way to know what the framework does and you know um so this loaded the framework guide and now it’s reading stuff it’s reading

[57:07] the package JSON. It’s going to go and understand what all is in this. Just reading a bunch of files and it has a complete picture. It’s going to give me this information and I think I’m going to have it build me another agent for fun. >> Okay. Listen, but >> this is very interesting though because you’re like you created a space where you can build the agents

[57:41] >> or becoming an agent itself. I my my brain my mind is blown. No, this is very very interesting. So what surprise me you just gave but okay >> surprise me. Um and so as you can see like we’ve built so this master code is open source as well. >> Nice. It uses a base class and that’s the theme of the talk today. Base classes and interfaces. It uses a base class interface of what we call a harness. And harness is a very popular

[58:12] word in AI engineering right now. Um, and so if you want to build your own coding agent or cloud code, you could extend that harness, use Monstra agents, and you know, you’ll get a lot of this out of the box stuff. For example, the harness allows you to have a task list. It’ll ask you to, you know, you can ask questions. This whole cloud code or cloud co-work UX gets built in by default when you’re building with this harness abstraction.

[58:42] Um, and uh, yeah, it’s just been really cool to like take open source to its fullest because, you know, a lot of these other tools are closed source. Um, and we just kind of wanted to like pull back the curtain and >> Thank you. You can build your >> own and expensive. Yeah, for sure. But this has a really nice buttery feel to it. I love it. I love So completely open source. And basically when I I can create this and create as many agents as I want. >> Yep.

[59:12] >> In master. Amazing. >> Yeah. And you can deploy it to your favorite hosting provider. >> Um because MRA can run as a server or you could use it in, you know, Nex.js or whatever server that you’re trying to to run. Um but MSRA itself you know the thing that powers this studio behind it is a MRA server. So if you wanted to have a let’s call it AI micros service you could deploy just master stuff by itself and you can put that on AWS or NexJS or whatever and then now you are

[59:46] you’re in the game. All these agents are on the internet and you’re off to the races. >> Amazing. Amazing. What what did it surprise you with then? What is what’s making what’s a glove throer agent? I guess we’ll have to wait and see. [laughter] >> Yeah, I guess it it’ll help uh plan trips, I guess. >> Okay, I like it. You think and that that that was a deduction from the having the context of the conversation you just had. That’s why I chose that.

[1:00:16] >> Yeah. Based on the weather agent that already existed. Yeah. >> Yeah. That’s very very interested. Um, we’re coming up on time. I want to make sure that we tell people how they can get started and I want to share the Discord you have. Where is your community at? I know there’s a Discord instance which is very active. I think all of you are in there >> um chatting with folks. So, I’m sharing that right now on the comments. So, folks go ahead and join. How can people

[1:00:47] get started contributing to the project if they want to? What kind of contributions would you like to see? Uh this is a lot though. Like I had no idea there was so much in Mastra. Like it’s gonna be a fun weekend for me. [laughter] >> Yeah. I mean been around for a year so imagine what we can do in another year. >> It’s wild. >> In terms of finding us Discord very active. Uh we’re all there chatting. Um on Mondays we do a live stream ourselves. It’s called the AI agents

[1:01:18] hour. It’s at 12:00 pm PST. You can find it on YouTube if you look on MRA AI. Um on Thursdays, every Thursday we do a workshop where we teach these concepts. Um you can find that on luma for master AI that you know we have we took we talked about harnesses this week. Uh previous week we talked about master code and memory. Next week we’re talking about multi- aents. So if you want to learn something every week, come see us there. And then finally, you can follow

[1:01:50] MRA on Twitter for X. I mean, you can follow me, my co-founder Shane and Sam. Uh, just follow all of us. We retweet and post a bunch of stuff and we don’t troll that often. [laughter] >> I like the disclaimer. Not that often. Beautiful. Well, we got folks already joining the Discord. Um, I’m going to check out your streams. It sounds super super interesting. Definitely. Listen, friends, if you’re working with this, like understanding what a harness is is going to take you a long way. So, we

[1:02:22] haven’t talked about this a lot. Honestly, I know I definitely haven’t like um >> but the ways that you can make this effectively work for you. >> Um and you brought up a super excellent point about how when we first started working even three months ago, four months ago, it was agent to help Abby. Like it was I was building an agent so that Abby could work with it. But now we’re moving to a spectrum that we need to build agents to help other agents and it’s it’s a completely different uh scenario. So that’s super super interesting.

[1:02:53] >> Very timely question. What is the future of Mastra look like? What’s in the road map? What are you working on that you can share? >> Um so we will we have like three pillars that we’re going to be continuing to work on. One is memory. Uh there’s just so much to explore and we’re so interested in it. So we’re going to keep going down the memory path. I’m sure observational memory is going to get some powerups. So that’s cool. Two, observability.

[1:03:23] While people think it’s just traces and evals and things, I really want the scientific method to be automated for users. Maybe you don’t have to care about writing evals and improving your agent. Maybe another agent is responsible for that. And then lastly, community. I am so paranoid that the community will go away. So, we will continue investing in it and making it the best. Uh we have a conference coming up in uh April 9th. >> Nice. >> Yes. In San Francisco. It’s called TSAI

[1:03:56] demo days. Uh you’re going to see a lot of companies who have taken not just MSRA, could be any agent into production. That’ll be live streamed as well. So, more community events like that. Expect those to come. I appreciate that support and that’s really what makes open source open source. So, thank you for keeping the emphasis on community and putting on all these educational things, taking the time to be here. Like friends, we had the CTO of the company demoing it for us. Come on now. Thank you. I mean, this has been delightful. Thank you so much for taking

[1:04:27] the time to come by. I’ll be sure to add all of the links that we share in the comments to the description. For the folks who join a little bit later and maybe missed the beginning of the transmission, I’m going to post a YouTube link for where you’ll be able to see it, but it’s I actually made a short link for it. So, it’s gh.io and that’s going to take you to the YouTube uh stream and you’ll be able to see it there. It started from the beginning. You definitely do not want to miss everything that we talked about. Thank you so much, Abby. This was great.

[1:04:58] >> Of course. >> Yeah. Thanks for having me. I had so much fun. >> Come back. I would love to anytime. >> Amazing. Thank you. Uh friends, we let’s give some sparkles to Abby. Be sure to follow Abby on Twitter. He promised not to uh troll us too much. Not all not all the time anyways. Uh but you guys are putting out such amazing content. Like this book is is such a good gem of a little book honestly. So thank you for putting out all those resources and do it free and open and for all of us to

[1:05:28] have access to it. So thank you Abby. Have a great day. >> Of course. Yeah. Thank you. >> How good was that? I for one look forward to experimenting with observational memory this weekend. I’ve been going round and round in circles trying to do things like this myself when there is a brilliant open-source project that’s doing it already. Love that. Love the possibility of you creating your own agents and sort of examining that new frontier of like the agent to agent agent. what he just mentioned at the very last bits of our

[1:05:59] conversation, how maybe you shouldn’t or it will reach a point where the humans don’t need to be concerned with the evals and there will be agents that will be optimizing that for us and I I I 100% believe in that. This has been fantastic. Thank you all so much for joining open source Friday. Thank you for supporting open source. Uh let’s see let’s make sure that I’m not missing any links. I giving you the links to the repository. Please don’t forget to go by the repository and drop some stars. Drop

[1:06:30] some love to Mastra via stars. It is a free way that you can support this project. Go drop a star if you haven’t yet. Join their Discord server. I been in it kind of like lurking. They are very active. They are all in there answering questions and interacting with the community. And I really appreciate that this company is keeping the focus on community and all of us giving us all these resources. Please don’t forget to subscribe to our YouTube channel so you never miss a notification for when Open

[1:07:00] Source Friday is on. It’s been my pleasure to be here with you today. I’m going to share so you can make my little slice of hell. [laughter] I mean, make the my interactions on Twitter better if I get to talk to all of you. So, please follow me there. [laughter] Um, and yes, the link to the book, let me find it quickly. It’s a phenomenal little book. I think I remember now where it was. It was a render ATL and I think it was their CPO or someone from their company uh was there and he was

[1:07:32] passing them around and I think they actually done a newer edition. I think this version online is an update from what I have in hard copy, but it’s very easy to digest and if you are coming into this new paragma like you’re figuring out the way that you’re going to incorporate earlier I s question like can I add an agent to my app? Of course you can like there’s it’s unlimited what you can do now. Um should you that’s a conversation for another open source Friday. Um maybe we should dig into that like when when is a good time for something to be an agent versus a skill

[1:08:03] versus a documentation. Anyways, thank you all so much for being here. I posted the link to the book. Check it out. It’s really a great book. Go on and give a follow to Abby on X and I’ll see you next week for another open source Friday. Thank you for being here. Let me leave you with another let’s leave you with a jingle. You know, I got to look through my through my scroll of things. Oh, I’ll bring you in the very timely topic of developer choice. I am proud to say that GitHub is very focused on that. And this

[1:08:34] video that follows is proof of that. Thank you for being here. Catch you next time. >> With GitHub Copilot, you can shift your development tasks from sequential to simultaneous with the agent of your choice in agent HQ. The agents tab on GitHub is where you can manage all your cloud agent sessions. From here, you can assign ad hoc tasks to copilot to claude by anthropic to codeex or to a custom agent. We can also use this tool to monitor our tasks all from one centralized location on GitHub. Now,

[1:09:04] most change requests come via issues and you can assign issues directly to an agent like Copilot, Codeex or Claude. Choose the branch you wish to use as the base and again the agent you want and let the agent do the rest. Inspiration can strike from anywhere including away from your desktop. We can manage agents and even assign tasks right from GitHub mobile. Given that developers spend the bulk of their time in an IDE, it’s natural to expect to have access to the

[1:09:35] same functionality from there. In VS Code, you can orchestrate all your agent sessions, local and cloud, from your IDE. Just like before, we can assign to claude or codeex or to copilot using a custom agent or specified model. These tools allow you to assign and manage parallel coding agent sessions all within your existing workflow.

[1:10:07] [music] Hey, hey, hey. [music] [music] [music]

[1:10:39] Hey, hey, hey. [music] [music] [music] [music] Heat.

[1:11:11] [music] [music] Hey, Heat.