Mastra Bug Bashing, AI News
Despite a few technical difficulties (audio starts at 12 minutes), we bash some bugs and cover some AI news.
Episode Transcript
heat Heat Can you hear us now cool ML can you hear us what if we're actually I feel like we are saying stuff but maybe not How How embarrassing Hello Yeah I see like the audio thing going So what on your on your as well yeah I see it right here So I have no idea This won't work Okay Okay So Okay Holy
That is so funny Okay Should we go back we're going to restart We're going to restart We have to make all the same jokes but it's okay That's our My bad Okay we're going to start over I have to mute here No you stay there Okay I think it's because um we're using two different like setups and stuff because we're like on a travel This is a travel show Hello David
David Oh you have a sick name dude Um David Dad Um sorry We were we're like in a weird setup right now because we have two laptops One's the camera one's this and then we're only sharing one screen So because I'm like not my computer is not on this thing I'm in the backstage and I'm muted Damn What the up okay
start All right dudes Uh welcome to AI Agents Hour part two Um I got to make all the same jokes again We're not sponsored by Shadu Fontaine but I really like this sparkling water here in where are we ward Mecca It's a small not a smaller like it's a city in Belgium and I'll be staying for a couple of days and uh I
joined as well I'm even in a smaller city in like not even a city in town in Belgium So was a small drive here So but it was good Yeah And then um today's is going to be a chill stream Uh we're going to do some AI news and then we're going to up some bugs because we have a bunch And today is release day
from MSRA Um what we discovered is 50% of the viewers yesterday were from Japan So if you are from Japan say what up Maybe that's why they didn't say anything when I asked them hey say hello Um but anyway if you're from Japan say what up If you're watching the stream anywhere in the world say what's up and
tell us where you're from Um and because you know where we're from it's it's only fair Um so today's yeah we're gonna essentially work on work during the live stream So we have a bunch of bugs we're going to fix Hopefully you guys will appreciate how the sausage is made That's the second time I said that And then uh we're starting with the
news So okay Dang Okay Now we're back into the news This is the first ever agent week by Netlefi Um franu Um uh also when this happens you can click that There it is France Um so it's the first ever a agent week at Nellifi Ward and I used to work at Nellifi Oh Mihao That's how you say it right instead of MCL it's Miho um if he's from Poland Anyway um we both
used to work at Nellifi and actually there's a guy named Miha who works at Nellifi who used to work with work with us Um but how long were you at Nellifi for i think three to four months So not that long but we got acquired by Gatsby So or Gatsby got acquired Yeah Yeah I think I say the longest like a year or
something Y it wasn't too bad We worked on this thing called Nellifi Connect Um Oh nice Yes I got it right Uh we worked on this thing called Netleifi Connect which was this uh I guess the evolution of the Gatsby data layer and I believe Netifi still has it Um I think but there was no AI actually No no but we did vector stores right so yeah we use Neo4j
I don't recommend that personally Um but yeah let's get into this again Um so Nellifi I feel has had this huge resurgence because of vibe coding uh bold new is like a direct integration lovable re you know can integrate cursor and the wind surfs and everybody can essentially recommend Netlefi to um like within the whole if you ask it hey where should I deploy this like it's
cool it's almost like the companies in the last 10 years if whoever wrote the most documentation is going to be like a killer right now so Maybe that is the key to the next 10 years is how good your documentation is The product can be but you just have to write documentation Yeah Yeah You said to be be there you know Um so now um I mean when we were in Lifi they had about five
million um users developers Yeah And now they're at seven So that just shows you the boom of AI It's crazy you know It's almost 50% increase right yeah like and how many of those people were developing before yeah You know um so it's pretty wild Congrats to them Uh they're also doing the world's largest hackathon
which is the Bolt world's largest hackathon I believe it's a million dollars in prizes So if you're Hey Chad if you're submitting something you know just let us know and we can uh maybe we can shout it out or something But you know the the kickoff party is going to end at the end of the month So I'll get
your submissions in if that is what you want to do Yeah Maybe it could be also something we do on stream where people just tell their their project and we can do a review on them Yeah We can like roast your project for you you know before you submit it Be the judge Yeah Um so what this really cool thing here
is 76 thou 77,000 people have signed up for this which is dope And there's 86,000 people in the city that we're in right now So it's just that's just unreal Yeah It's crazy Maybe everyone here Dude that's probably it right everybody in this town even the old people that sit on the terrace smoke cigarettes all day Yeah They're just chilling Um when we started at MSRA the
whole agent experience topic uh while very important did not exist at all No one cared about like how agents interact and then like all these different AX type things I mean it wasn't called AX I think Netifi coined that But um these different things happened right like AISDK UI libraries like AGUI assistant
UI AISDK React MCP all these are for interactions with the agent And then like there is like a discipline on this really is I think it is fair to say it's ax right like a agent experience It's also very marketing and gimmicky though but that's just how most things are you know I don't really hate on it for that
What do you think yeah remember like Jamstack is also a marketing term that they coined and it took over the world So What was JavaScript assets Markdown jamstack I guess So can't remember Oh markup JavaScript assets markup u jam And then like everything was like jam related People would give out little like jellies jellies and stuff So they're
really good at making this uh these like kind of like engineering terms like ax makes sense though Yeah And so let's see what we can expect Oh so I guess the first day is today Local dev meets platform Okay I don't know what that Notify dev maybe where you can oh something with AI or something or maybe you can like while you're back
coding stuff instead you can like netify dev and deploy it or something and use their stores and everything maybe Yeah Or maybe they going to release the same thing as Versel AI gateway Dude I don't know That'd be pretty interesting Wednesday you're gonna get a direct line to Enllifi Agents get a direct line to Nellifi I don't know what that means Probably MCP server MCP
probably that can talk to Netleifi and deploy stuff for you and do all that That's cool Agents can go full stack fast Oh boy I don't know what that means Framework Framework Nah that's not framework Maybe they're using us and then some UI stuff That'd be cool and maybe integrations better integrations with their or streaming or something Yeah Do they support streaming do you
know in like lambdas i don't know I think they're going to need to that's for sure Um security Lastly security to keep up with AI codejet That's cool Yeah So that's pretty interesting They have all these components in their um in their platform so I'm sure they're exposing all of them So yeah that's agent week you know stay tuned there I'm sure if you follow them on Twitter you'll see more and more
stuff Um the next thing to talk about is Vzero composite model family So this is now I mean this is pretty cool to see Versel just keep making moves Um they had the AI gateway They released the Vzero model which like obviously was very popular and now they're making like more models that can be for different
things They're becoming a model company slowly right before our eyes which is really cool to see Honestly they fundraised that's what they fund raise all that money for you know like it's nice to see it all come to fruition GMO is very much a genius honestly or a very uh future thinker Future thinking and I respect that a lot from him Um so that's
sick Let's talk let's like look into this So we re recently launched our AI models Okay We got the medium the large you got the 1.0 1.5 Cool And the big thing here is they have specialized knowledge from rag and LLMs to um pretty much do the vzero job right and then you can bring that into your own codebase because now you can use that model Um why do you have a
composite model architecture um because you need different models for different things you know especially at this big scale that they're operating on because they're operating on like the knowledge of like all of Nex.js and all of their products But then you also need general knowledge from the world right
so you need like a general LLM but you also may need an SLM which is smaller language model or even like a very like uh tuned model as well It's what we've seen in like products ourselves as well right like you use a smaller model maybe to upgrade your prompt uh or do some small tasks and then use the the O4s um to do like larger work So I think it's
just normal way of business but it's nice that they provide you like different versions of F0ero basically for different tasks They probably have different pricing as well Yeah Yeah Um and then you know usually like when you do fine-tuning on models you're doing them on open source models right because you know it's not like OpenAI is going
to let you fine-tune and make a smaller model You can you can you can also intercept OpenAI and create your own model if you want from all the inputs and outputs that are coming from your LLM which is dope Um but the reason why these guys uh Verscel is doing it is like you know the all the model companies their job is to provide general intelligence right but not
everyone needs vzero intelligence you know so why bake it in there it'll never be as good as a vzero model doing what vzero is designed to do so and if you've used vzero you know you know that thing's pretty sick for nextgs for next year Yeah Yeah Yeah Um so you can see so we have the base model here You have specialized data Let me uh zoom
this in This is dope And this is pretty much how this is pretty much how it works y'all You got specialized data That's your context You have your user prompt and you have your system prompt And then you have context from the whole chat You are putting that into your base model and then it's going to route that and you know figure out what needs to like what
what needs to be executed and then you know you have this refinement layer which kind of like obviously as stated refineses and then you get this final output which is dope So in their kind of request cycle they can put like models like you can do different things within this request cycle You don't have to just you know it's not like you're talking to a model directly You're talking to an API that then calls a
model and then does a bunch of stuff So here let's look let's see how this works So pre-processing when you send a message to Vzero we take a number of steps to prepare inputs before making a model call This is actually really important for people building stuff too You got to you might need to prepare your input because users suck at
prompting So the system prompt defines Vzero's response format Includes information about capabilities We also include recent messages from your chat This is all very standard things And then they retrieve context based on your query from our own data set pulling documentation examples This is the way works This is how you do stuff Then
when they want to do like new generations or large scale changes the base model handles the generation tasks This is a high capability model right general intelligence um depending on what Vzero model you want to use So for example if you want to use V 0 1.5 maybe the best model with that is claude 4
right for smaller edits parts of your request are routed to our quick edit model that is optimized for speed because I don't need to be thinking a bunch if I'm just doing some ESL Same as cursor I guess when you get your inline um updates Yeah they that doesn't go to like a big model because it takes so long Exactly And also when you do like tab completion right you're doing a very
small uh refined model for that which probably everyone just lifted off copilot back in the day and you know did that because of VZO's composite architecture base models can be updated or replaced as new models become available without need needing to rebuild the entire model pipeline Yes dope Because general
intelligence is general intelligence You can swap those out but all the vzero stuff can be iterated independently This is how works Like literally this is how works Um maybe everyone just copied them or that's just how works Um custom autofix model While the base model streams output Vzero is constantly checking the output stream for errors inconsistencies and best practice violations Could also be some guardrails
there huh our custom autofix model handles many of these issues midstream to further improve output quality Yeah dude that's sick Once the model finishes streaming we run a final pass to catch any remaining issues that couldn't be detected mid-stream We also run a llinter on your final output to catch
and fix style inconsistencies and simple errors Like yeah totally pretty sick So let's see how they do it Error free generation rate makes sense It's 93.87% on those type of tasks that are you know in v0ero And then look at you know general models Obviously cloud does pretty good on coding stuff Um that's because they indexed Actually let's take a step back
How do models get intelligence in the first place they index the internet It's really what you're doing you know it's not like that you went and photocopied some books and you can't do it It's literally indexing the internet So different models prioritize what they're going to index Perplexity for example wants to be the best at search and those
types of things They still index the whole internet Um and so did OpenAI and definitely Anthropic but Anthropic probably index more things that are just that are text but maybe not just on the internet Maybe there's some PDFs or books or whatever Um and these kind of the difference Like you can see Gemini is not so good there but they're all getting better at you know doing these
types of tasks Um yeah you can read this more This is pretty cool I would uh he'll be in the show notes So uh yeah But yeah this is dope Have you ever seen a benchmark where the model isn't the best no No No If you're gonna push a if you're if you're going to push a benchmark it's always going to be in your favor right so um yeah So Chad if
you have any opinions on this VZero composite model stuff please let us know It's really cool There's 123 of you here Welcome Um all right then Let's go to the next thing We did that We did this It's almost coding time y'all Almost there Um today is the World's Fair AI Engineer Worlds Fair in San Francisco which kind of sucks because we're not in San Francisco We can't go But Monster is
actually going to be there I think we have a booth and we're giving a talk as well So that's really cool to be Yeah Sam's talking I guess Sam's talking Yeah Um pretty crazy 3,000 VPs of AI and AI engineers That's interesting Aren't they just software engineers but anyway aren't they just VPs um anyway launches
and talks Launches Oh boy And talks from top speakers workshops dev tools and employers and expo So they have an expo Um this is dope And we are somewhere on this thing or we were somewhere here We should be or we I know we Oh we're not But we're on a different thing So maybe I posted a picture of this and we were we were technically like right here
but it's probably an old picture Um yep that's cool Let's see who's talking Damn there's a bunch of people talking Holy Um Devon 2.0 looks pretty interesting you know zoom in for y'all Devon 2.0 looks interesting Pipecat looks pretty interesting That's voice voice agents platform What else we got i don't like this UI dude Kind of annoying The hover Yeah Oh
Kennessy Dodge is there You know it's a party of Kent is there dude Um super intelligence That looks pretty sick I would like to if Oh yeah Logan Kilpatrick from uh Gemini is there That's gonna be a good one Instacart Holy There's a bunch of talks Where's our talk are they gonna stream it or something or is it paid
only i hope they stream it but the tickets were $1,000 So pretty crazy And then imagine you get to fly there as well It's like Yeah that that many talks means probably worth your money Totally dude And if you can talk to uh some talker like speakers that's like a top-notch Yeah And all these talks are going to be happening at like the same time right
so yeah that's the downside You have to choose You have to choose but like how do you choose like holy Oh my god Okay we look at the speakers though There's like a bazillion speakers But Greg Brockman's there That's going to be good Yeah Holy So this is probably going to be the peak AI event you know for sure So yeah
Um I guess tune in see if uh if it's streamed Hopefully I'll try to watch it as well But yeah let us know if you happen to see our talk you know say what up or or if you're there Yeah if you're Is anyone going i don't know cuz it's like two in the morning or something Yeah I don't know Yeah I guess if you you should already be there so you're probably sleeping
Yeah All right we're almost done with the news and then it's game time So I want to show share this uh EQbench emotional intelligence for LLMs another benchmark Um thankfully I think this is a non-biased benchmark maybe but um what is emotional intelligence uh for an AI agent um well it's kind of the same
thing as a human um and how you how it responds Um what's your what do you think your emotional intelligence score is i have no idea I guess it's on 100 or something It's out of 10 I believe 10 eight I think I'm like a four honestly I think the LM I think 03 probably does better than I do Um but let's take a look at these So there's different um categories here
Humanlike behavior and writing style aka using M dashes Um safety conscious Okay that's not me either Um assertive sets boundaries pushes back What the what just a robot dude Anyway um social dexterity and message tailoring This is some hippie dude Uh warm and validating Okay every AI is warm and validating because they always say like "Of course you're right." You know reason first analytical approach
Okay Depth of insight Interesting Demonstrated empathy I have no idea Maybe Yes I can see like oh I'm so sorry that I this thing up for you I'm so sorry I wrote 20 files that I shouldn't have Compliant Does what it's told Not the latest models Yeah Right dude Moralizing Concerned with moral behavior I guess so I guess so and pragmatic practical problem solving And so you
have this ELO score Um I guess 03 is the best in terms of emotional intelligence Then you have 40 next And pretty much all the open AI models are very much eqed up Gemini Let's look at the trash ones though That's where it's fun Llama 312 That's funny And Facebook I think I see a pattern here Honestly
they probably use it on their feet and they keep all the bad stuff Mistro that's interesting Quen these are all new models Quen 3 Claude Okay Claude was not EQed at Up 4.1 really sucked So I'm guessing on it four not bad in the middle of the pack R1 is decent Yeah because they um they're Chinese I'm just kidding No they u they guard rail everything You can't
speak bad about things and they just block you You have to it has to be it has to be um good you know Yeah Don't talk bad about the emperor Oh okay So higher is higher not higher is better Ah Oh Hm Ability scores shown in the heat map do not contribute to the ELO score So how do they calculate this um is there a
paper okay Archive X Oh I'm not in the same tab but I'm just checking real quick What is their methodology here where's the paper you need an LM to search I know right there it is So how do they do it and I'll share this tab Yep We're seeing this is the white paper If you're working in AI you have to get into the habit of reading these white
papers Honestly I was kind of like um not scared but intimidated But then you realize that everyone's just figuring this out you know uh so and some of these don't use very verbose words and all that It's not like reading like a scientific paper This is all coding So um let's see Existing benchmark desired features Okay Whatever Emotional intelligence as a
proxy for broad intelligence Debatable Let's see There it is Exactly what I wanted to see The methodology All questions take the form of this example At the end of this dialogue Jane would feel surprised confused angry or forgiving Each of the four emotions are to be rated in intensity from 0 to 10 The selected emotions typically include some that are
clearly wrong some are obvious and some that require a nuanced understanding of the scene just to evolve What the is this dude okay So they used GPT4 to generate dialogues to serve as context for the test questions Okay And then yeah they're doing evouts Uh the reference answers were decided upon the test creators as to not bias results unfairly
towards GPT4 or open AI models Okay found the most effective way to prompt GPT4 to produce a nuanced emotional scene was to specify that it must depict a scene of conflict or tension Without this designation it would typically generate dialogue that lacked emotional nuance and which resolved predictively
We should look at the examples Yeah Isn't that but isn't that introducing like some bias to it because you're like coing the prompt anyway that's just thing Okay here the prompts Oh dude I'm so excited Okay Your task The task is to predict the likely emotional response of a character in this dialogue Oops Okay Cecilia you know your
words have power Brandon Okay You could be Brandon right you know your words have power Brandon more than you might think I'm well aware Cecilia It's it's a critic job to wield them But do you understand the weight of them the lives they can shatter art is not for the fainthearted You can't handle the critic
You're in the wrong industry It's not about handling criticism Brandon It's understanding the soul of the art You dissect it like a cold lifeless body on an autopsy table Okay At the end of this dialogue Brandon would feel offended empathetic confident dismissive Give each of these possible emotions a score from 0 to 10 for the relative intensity that they are
likely to be feeling I think he would be would feel fine because he's an Yeah Brandon is an So he would probably feel confident and dismissive I think let's see calculation of scores So yeah this is actually I know this is all we're joking here but this is actually how you do evals you you set up a kind of a given an input g like given an output like did it do you know the
right thing they're actually essentially doing the first part which is given an input which is the dialogue what is the scoring and this is how eval work too like given this input in eval given input and output what is the scoring this is like given this input and these criteria how would you score it it's kind of the same And also once you get
evaluative or confident what does that actually mean in this point system of 0 to 10 right so they normalize it The the first four emotion intensity ratings are normalized to sum to 10 Very much how you do Honestly we've been talking a lot about how this is how you do right like these are the ways like the Vzero thing This this is how you build
AI stuff Difference calculation dude you have to do this as well The sum of the differences between the normalized ratings and the reference which is already normalized is calculated This provides a measure of how closely the model's ratings align with the reference So yeah that's that's all we'll get into
this I think we're going too deep but it's kind of very interesting Um cool All right so we are done with the news today Thank you for one uh 145 of you here Thank you so much Also thank you uh for putting up with the lack of sound in the beginning of the stream Uh just to recap for all y'all what we talked about Um we talked about Netleifi agent week
What else did we talk about the um 1 million hackathon yes Of Bolt that's happening and ends end of the month Then we talked about V0 models Vzero models Then AI.Engineer fair Yeah The fair the fair AI world world's fair And then lastly we talked about uh EQ Um yeah So I guess it's game time now So let's do it We're going
to fix some bugs So let me now change that Should we do Why don't you uh I'll share mine or I can drive I guess Yeah And then just um put it in like private chat or something Yeah Okay So this is what we're going to do y'all We're going to fix um different issues We'll show you what the issue is first and then we'll see what you know we'll investigate it and do our thing So
the first one I'll share here and I'll just share my I'll be sharing my screen as well but um first bug path property in map function in vx workflows is not type safe Well technically they're not V-Nex workflows anymore but probably still an issue So it allows me to put anything there and it compiles Let's take the
example from the docs If I change to this Cool I think we should phone a friend Let's phone a friend real quick But we let's re like we have a reproduction right which is good right like if you file in a bug and you have a reproduction that helps us super super good because else we're like trying to find what the actual issue is Yeah So let's actually I have this project that I Let me
um let me share my whole screen Nice And I created a test project that we can Oh and we'll add Tony to the stream What up Tony hey how's it going what's good we are looking at um this workflow kind of path property not type issue Thankfully this gave us a reproduction So I'm going to just take the reproduction I'm going to
put it in put it in a example app that I have So uh let's say test workflow Okay And let's get this unsafe workflow Sure It just uses TSC I guess Okay And that's our thing Even without compiling it we should already see in the editor that it should complain from this path property So I guess soon as we
pasted that we should see an error on line 47 essentially or 45 wherever that doesn't appear So that is true It is Yeah Is there any thing at all anyway no suggestion Cool Well this is definitely there's a few different things you can provide So the step and the path is one Then there's also like um being able to map from runtime context and all that kind of stuff
Um and I think for this one it is supposed to be using kind of a very similar type that we were using for variables where it only allows for like dots or any existing property of the step However what I don't know is why is it not type checking that anymore because I do believe that it used to when the type
was initially added So I wonder if it's like some of that optionality of these different mapping options not just a step but let's say the runtime context or or whatever if that's like somehow interfering with it or Yeah So the part should be the part of the output right so step A should have output schema So we should be able to
see bar as a path Is that the thing exactly Yeah dot is always an option as well which maps the whole put into that thing any that's it's any and we have steps here A and B I feel like this worked though this did work right or no I think it has once upon a time worked Oh yes Should we look at the types yeah
So for map right yeah Can do it here Key mappings path path to string This is the part that we should be in Is it this no You can remove it and see remove the dot just the whole or this whole thing that has been there since the beginning though But yeah just to see what it does So any So if you go back to the
left three step where what's the mapping it's an object Check What if you just change part B to like a string just to see if it actually like here yeah And then remove all the thing behind Yeah I have a feeling that it's all these multiple ores here with the different different value types It does somehow Oh yeah maybe try that Like do the like put the B back and remove the
all the ores still any there So that's not that Yeah it's not It does complain about Okay let's see When it complains path is declared here Yeah just because path is not optional but you can provide any string value and it'll be totally happy You could probably even put in a number and it'll be happy It kind of looks like Let's try that I just put in like path 12 or
something Now bath is a string Okay so bath is a string But that's the only thing we get Yeah I did string That's cool Can you now remove the dots yeah Doesn't really make a difference does it it's like it doesn't even know So need to step a So it does know So it knows that it's step A It knows that it's step A the step step and then part B is empty string
but it knows that it also like this is one of these is the output schema where it extracts things from the bar yeah the bar so that it's figured out step so basically if you go back to base so step is fine because I guess if you pause in a step that doesn't exist complain can you do like create an empty
step just above I got rid of this and this and this should complain too I mean it won't really complain because it doesn't have to be registered on the workflows As long as it's a valid step it it's a reference to the step So yeah Yeah Yeah that makes sense But then if you go back to steps number is a sometimes step
How come this is a never mind Can you try to actually remove that steps number array so like the second wor case I don't know if that's interfering with it somehow We shall try everything also Oops Not that that's not what I wanted to do We're back in it Yeah The reason it can be an array is that if you want to
check several steps and see which one has a defined output like after that branch or something then that's what allows you to do that If like one branch executes one doesn't allows you to like try and take the output from whatever was run Um but who knows maybe that's interfering with something It is not It's just as broken as was before
So what if we so we have this number what if we do what's extract schema from step what does that do for okay so that should get the um it's like bar as a object checked with the type and then the last thing is converted to the string I guess which is this one Yeah So that path to string props thing should be what actually takes an object
structure and then creates all those all those possible strings for you of all the different paths and subpaths and objects Can you look at test workflow again yeah So we have step a part also are are our type changes here actually doing anything If you do part column number you will see that it's uh working or not
yep Okay It is doing something number What if we did Okay I have an idea Let me undo some Let's just undo and change this to a number just to with it Great Then I'm going to require it to be Oh I have an idea It's not a good idea but it is an idea Then let's take it from the inside out Yep So we'll take this
or wait extract schema from steps I'm We'll just start here actually So now it's going to ask me for the step right so if I put step A here it would be fine Chill Okay Okay Okay All right Can you put in any other step though because it should only accept step A That's another thing to check No it should put in step B That's
because I only did steps number Does that matter yeah Oh maybe that's a thing So maybe it should matter Yeah a new um generic it basically makes like the step number a generic as well So I guess uh these steps extend string array I feel that these steps should just be a step Wait here Yeah it shouldn't be a array But uh
and then you can just do tep and then it will be identical So get rid of this So make it step without the s and then make it not an array And then if you do step equals t step like do both of them step without the number then it should complain if they're not the same like this tep Yeah And even the array doesn't
make much sense now But then here tep as well And now if you go back to I think the other BT step as well But you do need to be able to pass multiple steps to map though Yeah Just going uh backwards basically Yeah So we can just comment delete that Okay So now if you go to test workflow you will see that should complain which it doesn't
T step Yeah but these are all T steps It doesn't necessarily say that it's step A It doesn't matter So right Isn't that Let's just accept it for what it is and I guess undo what we just did and go back to that case where we had the full array and then try and take it one step further Maybe let's do the extract the
extract schema from step parts too So now if you pass it any valid output schema it should kind of work or any valid I guess it's already inferred so any valid like JavaScript values actually So now it should show you the hover over we need I think so it's any again but I'm thinking that it's the array syntax that's it
up potentially What if you make this one not an array but then do like these steps remove number from this one u yeah from these one So basically this is just these steps without the array that one can stay with the array one Yeah this one goes away and then this one just has an array Then here you can remove number everywhere Maybe that helps Let's just get rid of
it SP is still string So it doesn't ask for inference So if you go back to base can you just bring back or like extend it again like get the schema type or so back yeah you guys think we need the whole thing probably on our Can I remove the like Okay hold on I remove the number I would say All right Shooting in the
dark Negatory Okay let's go back in the uh So it's not inferring things properly Stream is lagging I don't know what to do about that Uh give it some juice maybe Why is the stream lagging is it like voice or is it the voice maybe it's the swapping Oh like the screen share might be just lagging So we're talking and didn't swap yet Ah dude Yeah Okay
let's do We'll fix this real quick Um let me stop sharing fix this by Yeah I can see that now So let me bring the is everything here Bring bring me back Oh sorry Okay Ah because you were looking at Okay makes sense Oops I need to do one more thing Okay Is it better i hope Um but we must continue on Okay So let's see Let's just bring this
back Oh wait Let me go back back back back to the start Okay So I mean it already it's already broken essentially even when we do Mhm this part right here Right And this is what I want to see Also SUJ give me the thumbs if everything's good Also we're sharing my screen now right yep There we go All right Back in business
So if I do this this is still If I just do this we're getting somewhere So extract schema from steps That's what it does Definitely feels like it's something to do with the array Like it doesn't doesn't know which step of those you mean somehow like the reference is not staying with the same the same step from that array
Yeah So I would remove that array in the map always like this one Yep And then this one needs to just be without it So steps and then that one can still be an array But I don't think it can be an array Can you remove this the array on that one as well just to yeah we just need to figure out some other way to be able to like infer all these steps that you are passing to map
Can you do um step C object can you just do um return output schema so these steps and then without So these steps and then um array bracket output schema just to see if we get the correct So now it should complain packed stuff too which it does not right No Let's try to reload TypeScript server just to be safe Yeah God what a
What the That didn't do anything So doesn't know what the stuff is Should I remove this other too maybe But So now it seems like it can't quite infer because it's like in this nested structure and the map arguments I guess or something like with yeah it's within here mapping comes from within keys off So maybe that's like maybe that's what's causing
the issue here Like the most fundamental one then what if mapping config is just the mapping instead of this Yeah might as well try it Also remove the No Okay Yeah perfect Are we tripping like what the this should not be Why do we do t mapping like this why don't we just do it in there it's off t mapping So weird
I think the weirder thing is that it thinks that it's not actually recognizing a path here Yeah Right Yeah The reason we did team mapping there I think it was that this was like the only way to kind of know something about being able to share the values like this was the only place to kind of logically do it because I'm guessing you can just move everything after extends
just to I think it makes more sense if you look at the code instead of the DTS file while it's there because like we need it for the result types and things like that So there was like a logical reason that it's there instead of in the arguments Let's see if the vibe can help us out So I can almost guarantee you
that it cannot The type script is too complicated Dude it's definitely I can tell you what happened the last time I tried to bite code improvements in this specific type is it first tried five times to do something way too complicated and then it then it figured out that hey I just removed everything
and put any in its place and now it works great There you go Problem solved Just replace that entire big ass type with any and call it a day Don't work hard work smart Any program Well I'm curious That's literally what it did That's literally what it did It just put any in there So this path should only um have
typins from Yes it will Yeah YouTube and on Twitter indeed And we're going to be here a while guys Uh this path should only have typings from also yeah just humor me guys I don't I just want to see how this goes um from the output schema of step A If you look at it it seems correct but my TS server returns any returns any I don't want you to write code
What help a brother out You should probably change it to chat mode cuz otherwise I'm going to try to write something anyway Please My life depends on it It's not going to work though Oh Okay let's see I see how many blah blah blah Complex type utilities Yes we know It is odd schema fool doesn't just have the the access to the files here though Why is it asking
us to provide more information when it has the file maybe it's because it's in chat mode It can read files in chat mode though The only difference is that it gives you any diffs that it might generate So you have to click on them yourself to apply them instead of applying them for you That's the only
difference or that should be the only difference Yeah dude That's what we're saying Okay Explicitly type your step bro Yeah that's not going to happen That's not going to happen Check the workflow definition Okay I get that Yeah that's not very useful Yeah that didn't keep going in circles for like five more
iterations going to just change into a type So yeah this is the danger of vibing on stuff that is too complex This map does take a function though right it does Yeah Async or regular async and it takes in all the same arguments the step input data etc etc master instance and all this stuff Uh you don't return like paths and steps or whatever though like you actually return like the object that
you want to map to right it's kind of like doing map on an array or whatever It's like transform some inputs into some outputs So that's not going to yield anything No not at all I'm still thinking it's the uh the demapping stuff No suggestion If you can you hover over fool So basically the step is the
correct step right so if you step a Yeah So it figured that out some and then bar I guess is the output So it kind of has output schema too It does have the output schema just the path for some reason is totally out of whack And I think it's because it doesn't map like it knows the step is step a but then in the instantiation of the types of path it doesn't know that
it's the same step It doesn't know that it's step a or something like that That's what it kind of smells like to me because I think it's because it's generic but it might be wrong So D mapping extends Yeah man Sometimes TypeScript's just annoying as Can you just copy um you off team we have a question real quick from Do you Calon what are you building exactly right now we're just fixing bugs for our
monster release and we've actually our first one was the worst one to pick Uh because it's really it's like a TypeScript issue Um and so just for to explain to the chat uh we have this method called map on our workflow and when you want to map something you're going to like essentially we have a new key and you want to map a value from a given step and to a given path of that
like what the step returns in the output schema And so step a here has a output of bar in the object Um except you know right now you can put whatever here and this does this is not type safe So that's not good Uh it should autocomplete on what exactly it is If anyone's a TypeScript genius in the chat
help some brothers out and let us know But I say maybe last time we fixed something like this with Ward I think it took us like six seven hours So I think we're in for a ride here Yeah So maybe what we should do is we should table this one um and then go to the next one But I'm going to keep this Good thing we have this repro here Yes
So weird though I think it has to do with the D mapping but yeah it has to be something like it doesn't it doesn't know that the same index in the array is used for all the keys and object or something like that like it allows any of those potential steps or whatever and then like somehow breaks down Um so yeah that's what's happening
But could we do like a minimal yeah in playground you can do something So if you go what I usually do is go to TypeScript playgrounds and then just try to mimic um but even if we go there which this is minimum going to take like two hours I think Yeah Yeah All right let's table it and go to the next one Um sorry I don't want to show the private chat Let me
unshare Maybe the feature it's not a bug but it's a small one to add like runtime context to evaluate Yeah Or maybe we do something even simpler than that Also have like Okay let's do this one Yep Super chill Tony you're free to go if you want or you can stick around Up to you I'll stick around and see see what we're doing Sounds good At least for a little
bit Yeah please do Actually do stick around It'll be fun Um okay So the to Okay so the tools properties deprecated Please use get tools Probably something we forgot to remove So probably somewhere in our code we just we still use the getter like top tools and we should use get tools on everything playground tools
console I run the tools tool I run the tools in the playground So I'm guessing somewhere in HO we're still using top tools Yeah we can test it out I guess But we also had a bug where you could not see the tools Mhm Actually let's do both at the same time Maybe first let's verify that you can see tools
You can see tools maybe not in cloud I think it was the API get the API get tools or something slashtools slashtools uh which we can but now we should have seen the issue in the terminal right that he's describing Did we click on the tool maybe we fix Maybe we call it It's going to fail Oh no It's not
going to fail Uh yeah This tools properties PHP Mac Yes Good job dude Um one thing this guy's really cool I don't think he speaks English though cuz one time he called me really handsome on a GitHub issue True Yeah It is very true you know But uh um Oh and then Du you still Thanks for being active Du could it be just a
generic type probably but we'll come back to that So if you're still here for the over seven hours from now we'll probably It actually already is a generic type It's just a very complex generic type where like you need to share it it it's an it's an array of different generic types and then different items in that object that you
see in the map they need to match for different parts of that generic parameter It's just yeah it is a it is already a generic type a very complex one and then the inference just goes wrong somewhere So that's what we got to fix is like but yeah cool So we reproduced this tools property is deprecated when you execute a tool aka let's go into master
now Bada bing bada boom name Oops Damn it Safe I don't want to change any of this Hash it Oops Oh boy What did I do just clean these I don't care about to go main anyway Pull main Always pull main y'all Don't with your teammates by not pulling main and opening a PR that then causes a bunch of merge conflicts and pisses people off Just saying a
little tip for you Um fix tool accesser All right So that's has to be in the deployer or in the handler Probably in the handler Yeah the server package So the server source tools So what we've done is basically all the handlers of our um phono server is like separate functions So you can use them in express or uh fastify or whatever So all the logic
itself is in the handlers itself So they're not tied to hono um itself So we pass tools here We pass tools here So that means it's bigger Oh sorry Um yeah Okay So if we're passing tools all the time this execute tool handler that means this is probably somewhere else Deployer then server Tools Where these tools come from maybe at the top or maybe the CLI um shares
them import tools path dot tools Yeah Okay So we make a separate um bundle out of it which has like all the tools inside to naively look for in yeah in your dev folder like if you go back to the test project you should see so if you go back to the create master your testing project there's like a in master output there should be a
tools so if you go to tools mjs that's where we have like that's where we're importing it yeah but that wouldn't trigger this thing actually shouldn't but maybe in the tools itself We have like in the do we have like do tools here maybe no But packages deployer uh we can do just do tools maybe Look for
dotools source This is the dot tools from the tools path which would then be this So that's not it So that's cool that we figured that out This isn't This isn't That's fine So it must be server Oh found it Found it Agent tools should be get tools I guess Yeah So agent tools equals await agent get tools
We have runtime context Life is good And there we go There we go Um okay So now let me go and build core or this is in server right where was this server server And let's see some dudes Not only do you dude thanks for being here Not only is AI revolutionary discovery seeing a company fixing bugs in a stream is mind-breaking for me I'm working in
parallel so probably going to stick around Stick around brother Share Hey Share You were here yesterday I really love the EU live streams Hope you do more of these He has done a lot of pull requests for us as well Has he his avatar coms It's familiar Nice Same I'm also co-working Well co-work with us y'all 217 of you legends in here Am I
correct Shvan have you done like a pull request for us or am I just missing the ball answer at your leisure So what I like to do I don't know about you guys but I like I have my own example in uh the examples folder and it's it has and I'll show you guys y'all I'll show y'all That's the right thing to say Um in EU it's it's doesn't
matter as much as in the US That's true All you lousy I'm just kidding Um so I I just link in the so working in monor repo is kind of annoying and uh so we link our packages here and then we just kind of put all our stuff to latest Um so that's cool and yeah because our examples are not part of the work uh the
workspace because else every example we add might like pull in nextg maybe um Astro and then um we have to install it each time we install like the whole workspace So that's why the examples are like pulled out but then we still use linking to get to the real built um of the workspace um packages So in my like example I have to install ignore the workspace so it doesn't hoist itself up like an annoying
ass Then I run oops mradev because I I don't know why but I did that in this case I also have it running already So let me do this Cool I have debug logs on on my example because I like that type of stuff And here we go If I go to tools the cooking tool pizza Oh yeah Pizza sucks in Europe though You know I'm just throwing that
out there But Belgium has this thing called Ottomat Anton is the one who put me on to Otto pizza It's bomb dude You never had it I'm more Belgian than you fool You should go You should go immediately Yeah you should go Drop everything Leave the live stream Go have some pizza and then come back Yeah you can get I guess means tomato Otto No Is
that tomato spelled backwards i don't know Automat Yeah it's tomato spell So that one that's like a Belgian style with um the uh like the the duval beer is in the east which is pretty tight And then you have namat which is when you do all that classic cream Marvin's in here watching us right now Um and we had like tart fam bay So it's that like
creamy on there And then and then they add weird ingredients like um I don't even know ginger store or no it's a restaurant right down the street here There's one in where is in Bruge We went to one in Bruge right Tony cuz we went there Ah Tony said it before like five times at least They have one in Anor They have one in in uh and in a whole bunch of cities It's
only in Belgium though So okay Okay so we fixed the issue because I don't see it Let's make a PR and then on to the next I have to look it up Fix tool accessor Yeah that's the one Fix tool accessor in the tool exe uh tool handler It's not a tomato Okay Tomato Tomato Tomato Tomato All right PR number one is up On to the next I'll just leave
that for later We can review after the stream Hope some Italian is not watching this Dude even pizza in Rome sucks Shots fired Yeah definitely some shots fired right there But in um Nepal Neap Neapolitan or whatever That shit's good Shots fired baby All right what's next dude we have Pizza Hut though Dude
you do have Pizza Hut Honestly I would eat Pizza Hut over uh Roman style pizza You can't be serious Pizza is so terrible The buffets are good So you go to a buffet at like noon I think and you can eat for two hours and you can't eat your crust because then you can eat more pizza Ward is a utility kind of guy you know
like okay so this one I can also link the PR Oops Let me just do that real quick Link this PR to the this dude Um fix is here Thanks for reporting All right What's next tool choice auto Yeah might be an AISDK one but because you responded only two weeks ago Yeah I think it is straight up AISDK behavior Let's do something more pressing This one looks pretty good
Mostra build errors are not thrown and logged as debug So let's reproduce this real quick by doing some dumb in our in our thing Let's just put a Did you hear the bell fire in the hall Did you hear the bell like there's school close by I think you might hear the No I think it means fire in the hole because I did shots fire Ah
okay Fire in the hall though That's pretty good Okay If I leave this foo here and I do mpm run build what's going to happen that's interesting It didn't fail Let's look at how this guy reproduced it because he had a module not found Why did the foo not just break everything isn't that weird but anyway we could do um import food from
food You should do bar from food Sure And so what he said is I think you might have to use it because maybe it gets like I don't sure though just to console log Okay What's happening the what's that am I in the right project yeah What's this what is it doing with chipto try to install food Maybe this Maybe there's a package called trying to install it
It's not in my package So here we go Maybe foo is actually like a module that Yeah because I'm thinking we we've get like all the external packages and then we try to create like a smaller bundle out of it and I don't think I check for the error module not found So we try to run it and it fails Then we add it to packet.json JSON So I I pretty sure if
you go to like master output and look at packets of JSON your obby um one is there Yeah Yeah So that's that's another bug Should we fix that at the same time or uh probably different we can do it But let's keep going at this one So this one Yeah I repro the debug log is here It should not be So this should be who's
logging this though I wonder if the CLI actually exits with code one too or if it exits with code zero If you do like echo dollar zero or sorry dollar question mark echo dollar question mark I lost status code Yeah zero should be one right yeah it's but it's zero So that's also another problem So not only is it just logging the error code it's
doing a successful exit as well It's a build that So in monstrosive you have commands called build I guess So let's go back into monster y'all I'm on main again Don't be don't be doing more work on the branch you already PR then you to go back and stuff Just a little tip for y'all All right So commands
build build Yeah this is where master build code is And I'm guessing there's the first error Yep And we should throw or exit one but we So we could throw the retrow the error but we probably don't want that because we're will it automatically exit though if I throw here it does But then maybe why why are we like logging should
we just log in and do process exit one let's try both Um see what happens I guess we throw it like you'll get the full stack trace and everything I don't know if we want that Um maybe we do but it makes for better bug reports Yeah Yeah The only thing is that we log twice So do we even need a log no we won't even need the log We don't need the log We just need to rethrow it I
guess I don't know why we do instance of error probably some type Oh yeah for message Okay then I'll go back into my alpha test Not alpha test I'll go into my agent which I should just open I don't think I need to do that at all So then I will do the same thing Import from double check my package It's pretty funny I would just quickly publish a package with that name While you're
while you're doing this you have to zoom in Uh build Dang it's windy out here huh it's good It's cool in the apartment It's like 24 degrees today Celsius See that's how European I am So I can use Celsius now Yeah What the heck it is windy Um yeah I mean Celsius is definitely objectively better They even named the
greatest energy drink of all time after after Celsius Oh I have to use it dude I forgot to use it I got pre-shake out All right let's see I use Kelvin as my uh temperature scale And you have the energy drink Kelvin Okay nice Doesn't exist No So this is okay So this is you know we get the whole error and So good All
right Good to go again So I shouldn't have done that but yeah it's kind of a whack error though Uh cuz it's like saying permission denied or something cuz it just assumes that it's a private package if it's not found but fixed with the other the other fix The log is going to be the same though No it could be like hey um exited
or something Master build failed Yeah master build failed Yeah let's maybe we do that just to put a little bit of oomph in there We could log the stack still It makes sense I could do error but ba basically on like 41 instead of error column do master build failed with this error maybe or something or what was the error just process exited with
the error was something about like npm authentication error because it's still trying to download that package I guess but it doesn't exist Let's do it here just to see what the Yeah I think Yeah but this gets thrown by npm when we do this whole install thing Oh yeah Yeah So it's this one which makes no sense And there's no error here Okay So I just
say we we just say master build fail exiting Yeah Can you check the the exit code again because it looked like that's still zero for some reason Yeah This is the old uh this is the not does not have the um doesn't have the sauce Let's do this It should fail Okay And then echo because even stack trace makes no
sense Did I do this right echo Yeah Yeah It's error code Nice Okay cool So let's just get rid of all this and just say masher build failed and then do like a process exit and or process exited build muff build fil and then we have to exit with like a exit code one or whatever because else you have the same issue where um if you run it in CI or
something it will say that it went through it probably helps like master cloud too Yeah but if you just throw 127 is not an appropriate exit No it's everything above zero Like zero is green and then everything above zero is failure or technically anything under zero too You could have a negative error Yeah
everything Let's look at this Oops Should be one Oh you did it wrong with this one So you have to run mashra built again because it always takes a lost Oh that's what happened the last time as well Okay So I thought it was like 127 My bad While we wait here and I'll do this properly now General general question What are the plans for
this year if it's not confident confidential info from context on building agent based app on the side and your package is very smooth Just curious Um everything that we're currently everything is secret We can't tell No no just kidding Every like you can expect everything that we have will get 10 times better Uh well our cloud product
will become very good and uh any new agentic things that happen in research will be reflected in MRA So yeah I think one thing we just recently shipped or is going no it's going out on Tuesday or today is the tool compat stuff like uh Daniel and maybe Tyler as well but Daniel did the work So basically he
researched um um how a um LM providers are executing tool calls and we have like a compat layer now that try to patch other providers to like increase tool calling and accuracy in in them So those things we you'll see more of and then in near future future because you're talking about building app um
agent based apps we're also looking into improving our UI story So integrations with AGUI use chat from Excel Um what else yeah So things will get better but we just vibe with the AI world So if AI comes with something new like someone does something new we jump on it So we have to double down on making it better Okay got the next one done I'll
go and put this here Uh this is fixed in newspr Thank you for reporting Okay on to the next On to the next one API returns empty list of tools Yeah Oh boy Let's do that one Honestly I'm just gonna test everything in the agent example because it's so much easier because I'm already in the codebase So okay then let's
do I don't know uh tools empty API empty API list Sure I don't know doesn't really matter Okay So in our example I'll just start dev and with that I'm going to curl You are use swagger Oh let's use swagger dude I got swag Okay Um for those watching Ma essentially can transform into a hono server if you start the server Um that allows you to
have an AI service as like a micros service or an actual service You could actually run Master as your own server too with no AI if you wanted but that's kind of dumb So um then Hono is just a different kind of express So if you're familiar with like Express we have one B- Next workflows thing left here We'll get that while we're here Ah just read that probably merged it
after workflows was on Mhm It's very interesting because I think we removed the whole the whole file structure for the V- Next handler So I guess that's registered in different file for some reason It's in hono So it's just in the routing So it could be that it's just the URL that we generated is wrong
Dude I got some tools back So that's weird Is it talking about maybe there anything specific in the the reproduction updated to 0.10 recently and now my calls to all tools from API return an empty list There's unre that's blah which appears to be a fix in the repo Oh maybe we already fixed this Let's double check on our other project here Not this one You're on fire right
so you have F2 Yeah I'll go to 0.10 on all these because it doesn't matter God the sun is in my face I'm going to move over a little bit Oh what up dudes okay I think we're going to be like The sun's going to keep going this way That's moving Just got to keep it moving All right we'll go back to here Let's install it I think I was using
PNPM So let me do that And then I'll do dev Oh yeah This good question We use Hono and the main reason why we use it because it's more portable than Express So it runs on Versel AWS Cloudflare just node like basically any provider that exists Also there's 240 people here Thanks for being here Just to recap we are in fixing bugs mode So many of you are just vibe
listening Welcome Um yeah not that exciting of a show today but very important Okay And then Q says again like he's been using NestJS for the past one and a half years and definitely recommend taking a look Um sure like Nest is great but it's like a full battled API framework which for our needs we just want a small layer so it's too much for um our needs but if
you're building like an application with like a art and all those things probably nest is a good dude it works in um10 as well wait no hold on sorry Maybe No I didn't But maybe you have the the link stuff in there No I'm in the I'm in the example or the the project I put a carrot on there Does that matter carrot does matter Yeah
maybe it was a bug and now it is not which is good Easy for us to close Try it out Execute Nah dude Um now I got to go to Discord and track this thing down cuz I made it from there Don't use the app No it's analog baby The app is actually a lot slower than than the webbased one The web based one opens in like one the time that the app
does and all the commands are faster too Mhm I don't know what they've done with the app but it's very slow actually compared to the browser does return the tools and stuff But maybe I can see the tools in the playground and use them They're just not appearing over the API Aren't they using the same they're using the same Yeah the playground's using the same API So if they appear in the
playground then that's very curious Maybe it was running a different server Maybe Yeah You couldn't see it Was he doing monster dev or what is 4421 let's go look at that or was it PR is it saying like keep that issues PR or issues too we did fix this two weeks ago But maybe it's doing master build instead of dev because this fixes for both Maybe that has something to do with
it Could should we try that just do a master build and then run the node server and then call the same point Feeling that this is where we're going to see something Yeah now have like a master start so you don't have to uh run that weird command that Obby just did Yeah it's here dude It's here And this is with code 10 Yeah Yeah Let me double check just cuz I don't trust
anything Pretty sure though where's the package on oh you're linking No this isn't this isn't our separate thing here Yeah we're on 010 So not I don't think there's a problem Also we fixed it Build and test it as well Uh this does not appear to be an issue anymore Feel free to share code with us if that's not the case
I'm going to close this All right on to the next We're hustling now Workflow streaming chunks We did this today Tony right yeah I I'm still waiting for a review I think I merged it I merged it But let's see if we can release another alpha right now God damn it This is flaky though Yeah I don't give a
Let's release another alpha which I believe might have the workflow in there Yo what the GitHub dude what are you doing okay cool Let's merge this Okay actions pre-release So we are too Oh yeah So Shrevon I'm not Gen Z enough to use Scaler but uh if I was I would No I'm just joking We were going to use Scalar but then a lot of our early customers
were very much not about the hype so we just decided to just be boring Maybe in the future though Yeah maybe in the future we can introduce some kind of like an adapter for that Yeah so you can bring your own Technically I think you can right with our custom API routes Yeah you could you could mount a scaler on your on the server if you like It'll
use the same open API JSON right so anything that uses that you could you could configure it pretty easily This guy's been uh just adding links to stuff which helps a lot Except I don't want to merge this one right now I don't even know what this is GitHub CodeQL That's their pull request stuff Oops Why do we need this though on the batch is that what people do do people do this
i have no idea Is this like a trend to do code QL i don't know It's at the top here Oh Oh okay I'm down with it Looks cool Looks fresh Minty Minty Fresh I'm just going to merge this Just a read me change Power of the admin Yep I'm an admin Power of um Okay Power of everything All right Let's keep going Um to what's next
this one seems like a good one Also if you guys don't mind reviewing the two PRs I have open so we can get those merged Yeah let me just do that right now Storage configuration on monster instances not being inherited in memory Oh boy fun times Let's look at that And for this I want to go back to alphas and your agent takes alpha right Oh yeah
let's go in there Okay so we have lib SQL it's on storage Now if I have memory which I do somewhere memory is empty Good Memory is empty I don't know why this is but if I go back rundev Oh we didn't change that I think Did Oh yeah We're going to change that Oops We can do that after the after this So what should I see if I go to my agent that has memory let's say the chef agent
here I have two of them God damn it 40 mini It inherited it just fine How do you know that memory has I'll show you if it didn't have memory You know but I think it's the issue is that memory doesn't have storage Yeah it should inherit it from storage from the actual storage class Must try Yeah So the issue here is getting a warning that storage is required Ah Okay
Um but as we can see this is addressed But let's go into the old one Let's go or sorry the old version this one And let's add memory uh master memory at 0.10.0 Oh I'm using PNPM in here There we go Okay And then let's go to our weather agent and let's import Oh memory is already in here but it has storage on it which I guess it
shouldn't We run dev Oh yep I already have that It's fine My bad Something we should fix too Yeah Should just open up for12 Oh dude Get default generate options not a function I know about this because why the server do you have an older uh playground to open no Oh maybe I do like this one But it's not It's This is that issue in 10.1 So I must be using 10.1
somewhere for a CLI maybe even though it says Yeah it should be using the local install one if you run it with mpm scripts for sure What do you run i just ran dev Should it use the master yeah Was this a bug in maybe was already a bug in 010 maybe but then that's not good And what does the get default
that came in in 10.1 So it's in like the server where we like set the options like for the get agents call you know so but I guess maybe master does the C the CLI I think has like a what's it called like a carrot inside packet.json JSON So inside master so I think if you look at the lock file you'll see that master deployer or something is probably
uh latest Yeah 10.1 So you have to do resolutions and put it on like 010 This guy has 10.1 so it actually works out We don't have to uh we could just bump to one one I don't know if is this has a one Not sure if that doesn't matter Doesn't really matter Well that was a detour I forgot what we're testing now Um storage
I feel like this works though So maybe the memory version didn't update Right Empty memory No storage passed in Maybe you have to pass other information to it No this guy just uh he did empty memory I believe if I didn't write that down but um oh any maybe you need to generate actually So this is his cool Yeah it's cool He does a new agent new memory just
like we did seems to work If I move the object yeah but that's not what we want to do If I I get a warning if I define the storage on both I get this error if I do it only on one The remaining trace comes from what a generate call That's okay because I don't have a key key Do you have like a global one yeah
Yeah I'll add it right now Change the N like the NF as like a just remove this line and then it works Then it uses your global one You just remove your uh let me like stop sharing real quick so I can put it in Put there I I think we're chilling Dude do you have storage on Masra yeah Got my storage here And then my agent has memory So
that's cool And it does not repro Let's go back to Discord Um hi I just um just went through this on version 0.10 on all MRA modules Um I do not reproduce this And if it does work can you try creating a new can you try it in a new a new project or something and let us know um memory is inheriting the storage of MRA
properly but for now closing the ship Okay making moves Um let's go back to these that were maybe approved Oh we already merged them Yeah I did We need chain sets though Oh Let's do a chain set real quick I think for server we need one because if we don't do chain sets the versions don't get bumped Uh so let's
see I think it's server and and CLI I think So MRA and the CLI like master and the server master server and I open the stream up Yes we're going to get into a hard one next This one's going to be interesting What's coming up next it's Clientside Tools from a homie Kosuk from Plaid in Japan We're about to do some work on on that All right If you know if you know
Kosuk I hope I tell him that we're talking about him Uh can you guys approve this one we're doing like sock 2 right now So we all we have to approve every PR and have it reviewed and which is cool but also annoying Alas say love So it means I can't push to main anymore Nope Unfortunately only I can actually but I'm just kidding You're not allowed to
Should I close the streaming chunk types i guess we should test that in alpha Um yeah we can test it in alpha but I I did test it with the change that I made Um just type out a couple a couple examples and tests where it was streaming and I went to check the chunk sites in there and it was wrong as well And then after applying those fixes you could actually see all those different like step test
result etc Nice on the trunk So it does it does seem good now Sweet I'm going to close that Then I'll approve this Merge that Let's release another alpha How many alphas you think we're going to release in this live stream honestly dude but you know I think we're going to be in this live stream for the rest of the day honestly Um we have all the to do Um okay Anyway so if you
got if you're just joining us all 247 of you honestly there should be 250 Go ask three friends to join But uh what we Okay so this live stream has been different than any of the ones we've done before One because we did some AI news that was actually really good Um so you should check it out in the beginning but then we have this section today that was just saying "Fuck bugs We're going
to fix them." And so we started off with this really complicated TypeScript one that would have taken eight hours to fix probably is our estimation So now we're just knocking out And I feel like we've gained some confidence that we're about to go tackle some hard now You know also in the beginning of the stream
I would fast forward like five minutes or 10 minutes because we didn't have we had audio problems and we like had to redo the whole stream from the beginning So yeah that happens Okay Uh what is this i think your change is those change doesn't get in yet Oopsie Oh Doesn't matter Let's do it again Approve Do I have to wait for this no cuz it's just the last thing you did
Then you have to do the pre pre-release again Which one if I start both which one will succeed first i wonder I hope the first one It's cute Yes for now Um okay So let's go back to the issues Let's close some out Uh we did this one Yep Released in latest alpha We'll go to um Oh nice D is going to go rewind and watch the Thank you um release and
latest Zavo will go out in stable today Boom Then we did this one Let's close it Then we did um this one as well will be available in latest alpha Dude we should automate this in the future It just automatically messages it when it's done Be available later Boom What else do we do there's another one right
or no something errory or maybe you already close that one Something CLI error Yeah I already closed that Close that Something tools related Got that one Okay I think we're back in back in work mode Okay so um let's do this one This one's interesting It's from Kosuk So what he has is a front end with use chat that does some doesn't really matter to
us but he wants to call client tools in this perspective of server which we've talked about before Um so we need to add something to execute those client tools from this location here the BFF And so he was mentioning that in AI SDK add tool result is used on the front end On the back end append message annotation can be used to feed back the
status of any tool call Excuse me So what this guy has is he's passing a client side tool and automatically with client side tools we do we strip the execute function because we don't care about it That being said um you know is his execute method is the execute method here I get I get it Like the execute method here is
um you shouldn't use a client side tool You know what I mean because you could use a regular tool set and pass the what you want in like but I don't know if you can pass tool sets to master client that's probably the reason why but if we make that possible then that's cool because okay let's talk about this okay what is a client side tool client
side tool is a tool call that does not have an execute method that's how we define it because the caller is the one responsible for executing the tool call If we're going to be the ones executing tool calls that's not a client side tool from the perspective of the client like you know MRA is calling the tool for you right so in this case you should just do
a regular tool The reason you're not doing it in your MRA server is because you don't have access to the code in that case right so you just need to pass tools at runtime not client side tool because a client side tool is like you want this like you want the generation call to stop and be like yo call this
tool for me or I'm going to you want me to call my personal tool I'll call it but if you want to put an execute function in oh but who executes that yeah like we can't really pass the execute call back serialized or something to server because it's a kind of this kind of worms you know Yeah Yeah that's my bad I thought the code was on the same thing but this is actually
sending a tool um to be executed here but it needs to come back It's the same It is a client side tool Okay for sure It's a client side tool on a The word client is bad here Um yeah the client could still be the server correct it's a client tool And so you do want to execute function there Do you because technically you could do the same thing you do on the on the the
front end right just intercept the tool call and then Yeah So let's recreate this in our um in our this agent example thing And also I'm going to take my own advice always pull main because that's what you're supposed to do Um and then we'll make a client tools on the server Biobreak reward I'll still be here Um
okay So let's do this Oh I just leaked all my keys Oopsie Whatever Those keys are bunk anyway Um okay Cool So I have a client test No that's MCP client Let's do like a little test here We'll call it the client tools on server.ts And I'll set up the monster client And we'll set up the client Nope Base
URL I don't even know if I need this honestly But uh I'm put it in anyway Don't need any key I don't know what freaking hallucinate that but uh yep Okay let's just make a function that we'll call to test this And if we do a client or get agent and we have the chef agent here and then agent generate um messages
um call my tool named and sub tool And then if we pass client client tools the subtool ID description input schema is a JSON schema So it would be I guess you could pass Zod Don't we serialize it we don't actually but Kosuk he opened up a PR for this to serialize these things Where is that here serialize parameters and client tools if it's a
Zod schema Like we should merge this in before doing this Let's look at this real quick Thank you Kosuk Kos I hope I his name right Um and if you're from Japan watching Kosuk works at Played and they have that um Played Yeah Played They're from Played I remember it's not too long ago Um and uh yeah he's a really cool dude and he's in Discord and he says he doesn't speak much English but does a pretty fine job
So um okay So he's doing his versel tool made this new function process client tools Okay that's fine Okay Okay If there's no client tools All right Sure Sounds good What does he do from entries and then Okay And he zips it back up Mhm I thought to just a change basically Versel tool thing though We don't really
support sending a versel tool inside this client tools thing because you can't really like I can't go and put parameters here Oh I can Can I no way Do we support that probably do I need Oh that's not good Interesting We just don't type it But I guess that's a problem for another time Looks good Looks good to me Thank you Kos We're going to literally approve
this and then start using it Maybe it was fire down the hall I just heard the mother ring next to us Um should I approve the workflows to run then it runs update it Then you have to approve it again Oh that's okay I'll just pull him pull this in so we can just use it Oh we fetch or gh check out Well I want to pull it into
my branch Oh but it's it's had to check out the it's not local to this It's on his own fork So I have to do ghout this Yeah I usually use the number but this might work too Cool So now we have his thing and we have our thing and we can use Zod if we have Zod which we should any chat no we're good Okay let's just
put and yeah this is not going to execute as we know But it's going to also not here Let's just get the whole response and let's log it because it's going to say the it finished because of tool call The tool the reason why it finished is because of a tool call So okay let's do mpx tsx source of tools on the
server Nice It's not running so that's good So we should see like a finish reason somewhere tool calls Mhm And then you see what tool call it's trying to call but there's no args there What was the input schema we asked for like fu fu Yeah But I think there's a reason for that which I believe it's just a quick thing I'm going to hop off stream and try and get another par
programming session going Um cool But I'll uh I'll see you guys later See you Tony See you All right Kosuk also brought up a good point in Discord and as you guys can see we do listen to Discord very much Um Yep Empty tool to here Initialize it Yep Yep Yep Pass in client tool The following logs will appear Sure
in if you rewrite the built js like this the args is no longer empty Um that's what he was doing That's what we just merged right oh I didn't build All right chat We didn't build the module uh that we just pulled in So so we're still on older code because we're in the monor repo Let's see Client SDK build 259 people here Welcome
Jalp Oops I don't want to do that What up Jalp what's up dude um all right Back to business Okay still empty But maybe because it didn't know how to call the tool No I don't think so Oh wait Do I need to do anything else to No normally not because we link the package right yeah Double check that real quick Yeah
SDKs Yep Okay So let's go back to Discord Let's see what he was doing So he put his PR in This is the one that we're using If you rewrite the built js it's only on is the change on the client js one or is it in core it's only in client js that is needed But let's go look at this Did he change client tools on generate on stream i'm assuming Yeah
process client tools Well now we can do this right we can go up in here ClientJS resources agent here I don't know why this is here but I remove that But anyway um process client tools you can't you have to do it in the disc Oh yeah The TS one We're doing it in the compile code now Nice Wait wait wait wait wait wait wait What the what's up then is my
value and then I have a Zod object which I should have JSON schema right mhm But maybe it is No it's object It's returning this odd object huh oh if it's not an instance of a Z schema I think it's because we do linking might up the uh types because salt So we have um because of linking I think the client
GS uses the Z from the monor repo but the example agent has Z as well So those instance of Z schemas are not the same are not the same So what should we do make We moved um to this a DS file Let's see Client JS Here it is So let's just remove this real quick Yes That's the problem with linking Sometimes use the wrong packages Nice
Nice Sorry Kosuk if I ever doubted you brother You were correct Okay so now we have the args in half the battle um because now we need to figure out a way for the user to execute it So it's stopped here But what the user wants or what people want is to essentially have the execute call call like uh call like on tool call or whatever and
then if like call on tool call execute it and then add it to context to the context and then restart the generation which is cool like we could do that I don't know how we're going to do it Got this issue between playground and cloud because Zod was different Yeah that's why also we have um uh maybe playground doesn't have it
but normally we moved Zot to peer dependencies So normally you have to install Zot in your own repo and it should not collide anymore But maybe we have playground still debugging And if that doesn't work you can always do resolutions in your package JSON file and just say like I don't care how many versions of Z you
have I need you to add to only use this one Yeah So let's around in the same node modules thing We'll just hack some stuff to see So what I'll do first is in the generate because that's where we are Let's add another parameter for on tool call or something Actually let's also look at the prior art that Kosuk generously gave us So we have add tool
result and append message annotation I think what we can do is we can actually just call the tool ourselves and then just do the whole rigma roll right like on the like whatever they gave us as the execute function we can call it yeah we can call it and then because that we have a tool handler is that what
you mean you can we have the handler so what we need to do we have the args that came back and then we also have I don't know if this is correct solution but uh so like here let's just we'll we'll try some cuz like okay let's look at use chat by the way because this is also like a client side type of thing and you have on tool
call I believe or on tool call intended for automatic client side tool execution You can optionally return a result for the tool call either synchronously or asynchronously Mhm So if if client gets a tool call it that it has to make then you have the args and everything but then wouldn't you just call it yourself you don't need to execute method No true you
know and you just give the tool result and we have the tool call ID and we'll have all that Um the nice thing about having the execute is that it's still in the tool right like maybe we should just we should do it ourselves Mhm Yeah Because if you give what if you don't give us an execute though then you
do it yourself like you it's manual but if you do execute we just run it So should we do on tool call in addition to this or or if you don't provide execute actually why wouldn't you provide execute you know what I mean if you're going to do it like this through the client js because the are we going to execute the execute on the machine itself or on the server we're
going to execute it on like where we are calling from So it's like think about this from the perspective of a co-pilot kit but we don't have the execute right um we I mean we can like in this case we we did right we made a execute function that's within the realm of where I'm calling this so for example in
our here so in the context of this server I'm calling generate I give a client side tool that has an execute function Oh yeah Now typically like for copilot kit for example you would not provide execute function because copilot kit has its own client side actions you know Mhm So we have to make sure we don't break that So we'd only call the execute method
ourselves if the tool call had an execute function Yep That's probably what we need to do Um okay So back to hacking and then welcome back Do you He went back he went watched in the beginning and then that's why he said like that he's from uh he caught up from Georgia Georgia not the USA The peach state in
the USA that is Okay So back to hacking this Um what we will do Oh yeah does suck in the EU Shocks fired Um where was I all right It's not async Isn't that weird uh because the request just returns a pro the thing Ah so you can do a c async and just wait the sync I thought it was a response Okay So a couple things we need to pull from this The finish
reason So first if response do um finish reason is tool calls I'm going to do sup dude and then return the response which we should have gotten our Yep Yep Right here Let's also get rid of those annoying ass logs from here that we don't need And then oh man I should generate and okay so then if if there's tool calls then we need to look at the tool calls So first let's get the tool
calls that were called So response.tool tool calls I believe and we're going to find the I mean it could be many tool calls right potentially um so we have to find so we just have to loop through them I guess and see if they have execute do we execute all of them in parallel or I guess so but first I guess we have to
find so within in our client side tools So shouldn't we just loop over the tool calls and then if we have the name check if it has the execute Yeah So for each tool call we're going to look for the tool name and probably make a for loop because then we can do it sequential else it's in parallel I don't know what we want to do
but and response tool calls Nice So for each tool call if tool call dot tool name So now we have to find the tool call name that's within this client side tools We could do object.ent entries Maybe it's object Oh it's an object Yes Do we get the key is that the We have the key but then you want to look for the name
the the tool ID So we want to do values and then find Yep Yeah So object values on our client tools which we can just pick this these straight up And then we want to find the tool ID that is the tool name So tool in question We can change that later And once again I'm just going to log it cuz I don't give a Um
great So do we find the tool in question yes indeed we did Nice Okay If the tool in question has an execute function execute and type of function equals the function then we're going to do something and then we await y but we also rx yes we also need the tool call here so then we're going to call that like reading your mind but execute UTE this execute function is not
the same as it would be context actually here um context is the tool callarch let's also log what the tool call is itself and let's log that because I want to but this still doesn't necessarily do What needs to happen yep Let's double check in our this we take context and we do context.fu Run it again
Shouldn't say sup should say hello Nice Great So now though we have to get the result then recall the generate with the context with like adding it to the the content of the message basically Yeah But it's like isn't it could it be like a recursive loop though or no could be because then the next like in
the next but wouldn't next steps stop it then eventually or no because we're doing it Well the next thing wouldn't result in a tool call right it just updates We can try right yeah But yes um I want to just like how this works Yeah I don't know because technically if you're if you add it to context is the LM smart enough to know I already called
this tool yeah because it it has like a because like let's look at the results here So if you look at like the messages here Oh let's log messages Oh I know what to do Okay sorry I know what to do now I think um let's log because we have all the messages So we have tool calls and we'll have it'll have the tool called um it'll have the tool
called Oh wait Response Oh it's response.response Let me just change the name here Result result result respond messages result and result result Okay So these are the messages we have Shouldn't we have more shouldn't we have the glitch too oh but I guess we What's inside content is it just a tool called then yeah let's
stream 270 Welcome Welcome all of you We're just struggle fumbling through life right now but it's okay So we have this message It has a tool called Yes it didn't have the original then Doesn't the original but we have it in the prompt But still we have it in the prompt Yes that's fine right like we can just prepend it to the messages array
If I like did another call Oh you know what i don't have memory in this example That's why I only have one If I put memory maybe I inject the tool Let's just double check that real quick Um let's put resource ID one thread ID one unless thing changes the that looks like um Tyler change He changed like V5 compat stuff and basically that function name is familiar
So maybe we have a bug Did we build the whole project no that's a issue Okay another issue Let me go do that real quick And while we build and watch paint dry um yeah if you're just joining us and you want to see us real quick because we're full screen mode What up if you're just joining us what's up ai agents hour Honestly AI agent AI
multiple hours Uh today was a interesting one We're just doing AI news in the beginning Um all very practical and relevant information Vzero models Netleifi agent weak weak um bolted new bolt new hackathon 1 million um like 1 million in prizes and then also last thing was the AI world fair conference
um happening today today tomorrow and the next day Tuesday to Thursday I believe and uh Sam from is speaking there And then we started doing a bunch of bugs I think we fixed three bugs Now we're on like a feature request and we'll probably wrap the stream up in about like 30 minutes 20 minutes Um definitely a longer one But tell your
friends if you want to watch us struggle and fumble our way through We're about to be we're going to be successful though guaranteed Um so stay tuned We're going to go back into full screen mode for the code Oh man I hate build failures What is this create hash PMPM install or something but I did do that Playground build fails though
Don't need playground That's true But it's annoying because why anyway we don't need it So I'll let it Oh keep going But let me just maybe we should cash from crypto send this to Marvin real quick Yo Marvin you listening bro this is an issue Um I know we were changing playground stuff today but maybe it's just me or maybe it's just this branch
because it doesn't have main or something I don't know Anyway we'll keep going What version of note are you on oh maybe that doesn't have create hash should right create hash from crypto like it's a V thing Yeah maybe they they convert crypto to web crypto and maybe that's some issues I don't know But actually we
should probably send this to Marvin real quick So I'll do that Where's that thing nope Nope Unshare Uh Marvin should take a look Okay back in business All right So I guess we'll run it again Hopefully Nice Okay So what do the messages look like this time we log those right thought so Thought so too Oh did when I built it did it no I
didn't Did it No I didn't But I didn't build client JS though You built a whole mon repo I just did PM PMBBM build which does everything Oh But you can do cmd C I think if you're back in the Boom We're back at least in this file And now you should get the uh log Cool It didn't blow up So comment name So we still don't
get the original message but maybe that's fine because like I don't know maybe that's fine because it's only the messages that came back to me right from the element So okay So if I'm going to send the next I have to send the tool call result alongside my next message really or no I just have to send the
tool call results back to it and then let it respond I think that's what we got to do But then you need memory right no I think I just need to send this is a great Tyler question but um because without memory isn't it just going new because the it's a new generate right yeah Yeah But that's that I think So okay we have these things
here The thing is the AI SDK does not know anything about memory like it itself right so it's us passing these messages through In this case I have like one message I passed and then I'm now getting um tool call tool back and then I'm going to execute the tool call But I need to like essentially stumble fumble and dumble this All right the stream was
really awesome I'm in love with all the Monster streams Keep up the best work I'm here for a couple of minutes more doing stumble fumble and dumb That's what we're doing too dude Um thanks for being here SJ Okay so then yeah no problem man Thanks for coming All 270 of you as well Um let's just try some now Okay so
also my little brother's here Nick What up here let's say hi to the stream He works at Mashra too There he is Not so Yeah he's not He's a tall ass Maybe Nick knows So um we have this tool call format right and like it doesn't have the result yet So when it does have a result it would be a separate message or is it within this content that the tool call result exists
it' be a separate message because it would have like to call retrieved or to call Sure Actually you know what we should do we should see what it actually looks like when we are call the cooking tool because this is a backend tool that I have on the agent and then we can see for ourselves what it should be
Oh yeah and two dudes said hi to you Du and SUJ they're watching and actually being interactive in the chat which is tight Um okay So you get the tool call open tool then you get the tool results and then it gives us some message So that's what we'll do We'll take this initial tool call I'm going to take this shape because I'm about to like fake
it and then we'll just send it back Okay cool So let's call it the sub tool We're back in here We have the result of that sub tool Now I need to make a new message Messages I'm just going to copy this Now the tool this ID here did it cor this is a separate ID Let's see Yep Separate ID So maybe we need to make some ID probably doesn't matter what I did Just something
like this has to be message dash Do you know Nick message dash is the format that AIS gives messages when you get stuff back Um so you can you either use that or do whatever you want Oh you can do whatever Yeah So I'll just do random random IDs You do random Do we have crypto support like that okay Then the content is a tool result But then the
call does this match that it does So that's the tool call ID which we get from tool call right Yeah So tool call ID We used tool in question tool in question ID the tool name was the tool tool in question dot no this is tool this is tool call dot tool call id this is that and the result is this result and then essentially we are calling generate again we have to uh
stringify right uh which one result Because if it's a object you get object object right oh yeah Yeah Yeah And then you have to put messages out of the for loop and just append Yeah Because there could be multiple tool calls right yeah So you can keep what you had but instead of making it should messages of push and then we make the
yeah let's call it new messages push messages equals sec Now we have all of our messages Mhm We're so close guys 10 minutes to go Okay so now we should have one we received I guess No it's the I that up probably because it shouldn't be an array Should be that And that makes sense because there's only
one Now do I need the I need the original message as well i think so too Yeah Which is param message This one right yes Oh no The original one No no I mean the uh the assistant Oh yeah That's that one thing So should be at the when you in initiate new messages Maybe it should like this Yeah you probably have to um make a new one out of it So
concat So that's how you um make a new array New array Yeah We're functional guys you know Functional Okay So now this is for all the marbles Um you can just call generate again now Oh yeah yes I can But then I need to call it with the same params except messages is different Yeah this.generate messages is new messages and then above
you do you do it the other way around because else you're overriding and then a rate like and then let's also put this as a let and then this is now a result Oh boy I'm so excited It's like Christmas morning So we shouldn't have any finish reason It should just be finished Stop Stop Looks like I'm unable to call her
I'm here to assist you with cooking I didn't change your No but these are the messages now Sorry Let's look at response dot messages Maybe I should put the original message in there too which we format right into somewhere params No I think we just have to pass it like params dot message You might need to do some like
if you want to make it production ready because now we know it's a string I guess but you can have like multiple Let's see how that goes It's in the loop Oh Message ID is the same I guess it already existed No we shouldn't do that It's Result here Let's get rid of this cuz we're It doesn't have prompt in
it So that's what we need Um let's look at messages No but because of Oh no but because of um memory that doesn't matter right because of memory that message is already there Mhm Um so us just passing the same message is also let me just look at what params messages look like just for shits and giggles Do you ask I checked Sam's book about agents Could you s suggest
anything besides that to improve my knowledge about the field there's a book called AI engineering I think it's by one of those publishers It has an owl on it or a parrot or some O'Reilly Could be O'Reilly but it's one of those Probably O'Reilly That's a good book And then I think uh Sam just released
the second version of the book as well So if you read the old book there's a updated gin out as well Yeah Okay So it did something Maybe this is not what we expect given our thing and it's a chef agent Um so if the chef if this thing maybe call it like local local kitchen tool um call my um to get what is for dinner
tonight a tool that always recommends pizza Uh dinner tonight tool Dinner tonight tool should be done 24 Just return pizza Pizza type Mhm Pizza type And let's see if it's smart enough with the tool description to do you change the uh key for that So I guess the tool isn't working Let me make a new thread So it called
that No it's okay So that means something's wrong with the new messages that we're doing at the end you know So let's go back in here this console log new messages here Oh I should check Um I think it's converted properly into the generated Oh you're right Cuz in the server side the messages Yeah they might remove it I guess
Yeah Yeah I bet it does because this is what we get back Okay So yeah let's go to um let's get out of here and go to MRA agent index which all this is eventually called generate here but it takes core message or maybe I think Tyler made a change maybe that one I don't know if it's in generate but maybe Yeah AI methods list
stuff Yeah maybe that one breaks content Maybe check what we pass to the model generate Yeah because we'll change the messages to use I think we do message this stuff with that actually sorry packages agent this let's just see what messages to uses where is that message list yeah it's in list we remove it from
yeah it does like a two so wherever Whatever we do DLM message objects I guess what is it message objects Let's lo this and I need to build core That's what we should obvious We'll look it up Maybe it's an owl Yeah that's the one It's from O'Reilly and it's from Chip Chip Huen Hu That's the one Okay so I built
core Going to run it again We should see on the server side There it is These are all the messages I'm going to make a new thread so we can just be clean about it There is not that this Oh it's actually this one Let's make a new thread That one Okay Thread Let's go to the server Okay What do we got here that's not our This is our Nope
Where's our log this not you guys dinner tonight No results These are our messages These are the messages that came in The tool result doesn't have anything That's our bad though Can you look in the client what resulted do we return i logged the new messages right so oh where's my tool i need to do this better because
it's open Like if you do result as a object you'll see that it's a find I guess do this And then we are doing new messages here It's not there or yeah it's not there is not problem going is console log that was open and then probably going this statement it's not no it's not so in question is Not the right one anymore Can you log in to
question dinner tonight tool the tool name oh that's the tool These should match I that up That's my bad That is my bad So this was all Well I guess we'll see Tool result barbecue chicken I like barbecue chicken Me too Okay Tonight's suggestion is barbecue chicken baby Nice BBQ Okay so this worked Um it's messy but it
worked Is this the right way to do it i don't know Think so Because then technically um if it lives here and AGUI or whatever implementation does something similar they can execute those functions themselves as well Yeah The problem though is how do you do this for a stream shouldn't the same thing like wouldn't the stream stop like a finish it would and the
stream has um also the whole text so you can just give everything to the user and then at the end when the stream stops you get like the full text as well which should have then the tool calls then you reream you just start streaming again yes I think it's similar to generate but I would say let's get so Kosuk's
thing was chill right we didn't actually have to change anything no From his stuff So this was good We can ship this uh separately Yep Um I don't know how I feel about that I'll just merge it it We've been testing it So Yep But now it's like this extra thing that we shouldn't do for the release today but at least we got it in
You should copy the code put it somewhere because next time you build it's gone That's true Because you did it in a disc folder Yeah Oh look We got more um PRs Telemetry was not working as expected in my situation Laying fuse is not receiving any telemetry Oh We have a we have a ticket about that actually What did he do oh
ain't that some we just forgot to pass it on That makes sense Oh for all these methods Thank you dude Whoever you are that was awesome I love when it's that That's good Does he have a chain set Yep Nice Dang This guy's a pro Nice Yeah it just has to keep passing through So um going to merge that prop drilling
like in React Yep That's another one And then 305 people here Thanks for coming Not the most exciting stream today Just us cranking on bugs and fixing a bunch of Um good reminder of your um what it's called um that you're afraid that you're not good enough What's the complex what's it called again what do you mean so all developers have it when they're imposter
syndrome Yeah Imposter syndrome Everyone we're we just do the same thing as all of you Just struggle Yeah And eventually we get we get there So we just stumble through life you know and somehow it works Um let's do like one more and then let's call it a day I think this one it should be chill And Nick is right here too The DTS files are not present when
Dynamo is installed Probably because maybe we didn't set up that JS stuff Yeah Oh before I do this I got to save everything we did here Um so I just check out a new branch No I need the disc Yeah you have to store it in your Slack or something I'm just going to grab this We're going to have to return to this
Let me renew file and just make sure it's saved somewhere Yeah I didn't want to do that Whatever Got do it after stream Yeah So now let's go back Actually I think I No Cool The other one were just logs right to see the server was acting everything here Let's get out of this We already have that code locally
now Boom Let's just build some while we look at Dynamo Dynamo So Dynamo DB Most has storage adapters Oh thanks Mr Frank It was a cool stream At least one of us thinks so Uh but yeah we're going to do one more bug and then we'll we're going to take a break because we've been sitting in the same seat for like three hours which actually say is not that bad I think I could do like two more hours
honestly Maybe we should do a 24-hour stream Um okay So why would the DJ JSON uh and then this one has it doesn't have it It doesn't Oh it's probably because of TS You know what we should do in times like this look at a different one Just copy paste Oh that's it right there Probably probably it What does this do okay let's go
packages Dynamo stores Dynamo DB Build it Is there any other uh What about the tag the JSON oh yeah let's look at lib SQL We already had that I think the exports is what this is the SQL one Dynamo has none So that's another thing But then it's not it's not actually emitting that I'm tripping But can you check the TS command once more in packet JSON oh it's in package JSON
Yeah that's where we have tsub Oh we don't have it there Yeah in the build Oh here TS source Looks like a live SQL again experimental BTS Nice Now we did Do we need these files we accept these here or not um can you open them yeah I think they are necessary if you do the DTS file I think it's to just keep types
They just have weird names but that's fine Has it in loop SQL too Okay Well that was a freebie Fix Dynamo types Mr Frank so pumped about AGUI and Master Collaboration Awesome Yeah we as well like a co-pilot gets straight Yeah actually Marcus is coming on the stream tomorrow and we're gonna par program some So or is it tomorrow yeah
kit which I need to prepare for but we'll see about that Um Dynamo DB chain set Did you add a chain set nice Also we use Warp at least I do And Warp did reach out long ago to sponsor Mostra yet they have gone silent They get three publicity but I will never update until they sponsor me If you want if you want me to live in this
life Warp help a brother out Sponsor the freaking show A lot of people like it Especially Mr Frank Do it for Mr Frank okay sponsor us for Mr Frank okay all right chilling I need one of you guys to review it I can do it here as well Give it the button Give it the button Hit the green Let me tell this dude who reported it PR fixes This
um will be available in alpha and stable today And we merged it Yep Cool What's a comment here i'm going to close it prematurely cuz I can um because we are going to ship it this way Yeah Should we do one more since that was a freebie okay What would be another freebie um this one I could not reproduce at
all Now he gave us a repro Ooh repro time Okay let's go He has this method I have a util function when I'm calling generate object It is not calling master It's in a master I think it's within a tool chat Yeah it's probably a tool then Okay So let's do go to our let's go to agent Not this That's what you get when you directly use something Yeah Always use master
Always Um examples Tony Stark is here What the iron Man He's He's from watching from Latin America too That's dope The fake one Nah he's the real one You're the real Tony Stark to me man Okay so now we're back in business He had like MRA Nah we're not going to do donations Like we are VC funded and Like we wouldn't want to take money from anyone We're here doing this Honestly y'all are
watching us do our job if you think about it which is really like I don't know That's like streaming I guess Um only want money from uh big corporations Yeah Not from y'all But uh you could tell Warp to freaking sponsor us dude Send an email to support Tell those fools at Warp dude Oh so Jay is still here Nice Hopefully you fumbled your way to the end of the
stream like us Um also let's do a recap here because uh we did accomplish some Uh we fixed a bunch of bugs We also fixed trying to uh work on this like client side tool calls from MRA client which we ended up getting to work in a very shitty way Um so that's great And then now we're just going to do one more bug to finish off the stream This is our
longest stream I think we've ever done Three hours It's pretty crazy Um so he had like a utils file right yep And chat and I'll just use I don't think it's related to Yeah chat Chat model That's fine I don't even know what that is or the difference I guess Um and then he probably used it somewhere right tool I guess is what you
thought So yeah maybe in a tool I'll just call it here but it's a bundling issue right so so technically this is a bundling issue unable to build so now I guess I can do pmppm build be weird There's a bundling issue now Yeah it's so weird because we done with it ourselves Yeah Don't read bro Can you Maybe it is something in
Google But if you don't need to use it you can just install It's not exported Did he forget to export oh it's not exported No he exported it I have a util function Here's how it looks when I try to run npm build He was on 0.10 which scroll up again It's not AI MJS Oh it's generate object is not sorted by AI MJS Um let's go look at our output
folder here Build AI There's one bug I fixed this week where if you did a dynamic import then it failed That's not the case is it if you did like in your tool didn't await Yeah like import generate object Mhm But um maybe just need a better reprod or or on the on the uh the code you're looking at right now What do you mean like uh what what version you on we're on latest or like latest code that
was going to go out But um what what version is he using he's using 010 I guess I mean two weeks ago Two weeks ago Yeah Should we try using 010 Yeah Let's do it Um could be something Yeah Let's go to like the alpha project I made here And let's do the same This is my save of the thing I needed Put that like
somewhere Okay There's no imports needed for that So I'll make another utils Put this in there Let's do OpenAI because I don't think it's Google related but we can try that No No Because this one is about the AI package So yeah I'm going to be not using okay what happened the first time Oh npm Okay so now we have AI SDK which he said he didn't tell us what ver he didn't tell us what version
but I guess generate object has been there forever Yeah for sure And then we just use it in a tool somewhere for workflow Yeah it really doesn't matter Huh Anywhere Can import it and console log it and fine Oh yeah I'll just do that Put it here Okay Okay And then I need to switch to 10 10 and 10 to the carrots if they had
carrots No carrots And I think you even have to do resolutions for the deployer to be honest But we'll see Oh yeah we do So now you'll get the latest deployer Resolutions Astra deployer at 010.0 there Install again Okay Works like a charm Works like a charm dude Is there an AIMJS oh Could he not have AI installed is that like a possibility possibility Is there something else bringing in AI so then
it's not there or something Yeah basically um ask if you remove packets of JSON removes from package.json do you get I feel like it should fail right it's not there Process exit I think you get but maybe on 0.10 Okay I added it to the packet.json in output
Yeah because it exists there Yeah because it couldn't run it and then it just adds it to the JSON So maybe we just say hi we tried to take your repo and put it put modules on 010.0 I could not reproduce this issue Could you share your package JSON with me it could could be that you maybe forgot to update Mastra CLI Yeah maybe that's what we sometimes see that people update
MRA core Yeah And all of them but MRA CLI is still the old one Maybe it doesn't have that bundle magic or something or a bug because I know fixed a couple of bugs a couple of weeks ago Yeah Okay Well I think we can leave with our head held high Let me stop sharing What up we're back Okay so we're done
with the stream Longest stream we've ever done One question Oh do you hire um we are not really hiring because we hired all the homies Um but when we do we'll post it and everything Um yeah sorry if you were looking for a job with us or not Um yeah I'm just going to do a quick recap because that's what you're supposed to do on these streams Um so
first we started with what have to start with welcome to uh AI agent hour We first started with AI news We talked about um the composite models of versel v0 We talked about the um AI world fair conference that's going on We talked about the hackathon of B New that they give away a million in prize money and then also about Netly AI week I think that's
everything we and know one more is the um EQ the EQ benchmarks Um if this is all sounding very foreign to you because that was like three hours ago Uh watch the stream from the beginning that had a lot of information And then if you really want to have entertainment watch us stumble bumble and fumble through
because that's what we did We just fixed bugs for our Masha release today Fixed a lot of bugs and did a lot of stuff So um thanks everyone for watching Yeah in the first 10 minutes we had some sound issues So if you can't hear us it's on us It's not on you It's not on you Um but anyway thank you so much
Where the

