AI Dev 25 | João Moura & Graham Steele: Real AI Agents in Action Automate, Adapt, and Scale

João Moura demonstrates CrewAI, an open-source framework for building multi-agent systems. The platform has been adopted in 150 countries and ran 50 million agents in January. He walks through how to define agents with roles and goals, organize them into crews, and shows a live demo that preps meeting notes by scraping the web.
Questions this video answers
About 150 countries.
Over 100,000 engineers.
50 million agents (speaker-reported, January).
Precision improved from 60% to 94%, with 80% efficiency gains.
Form: 62 pages; instruction manual: 720 pages.
Chapters
Good afternoon. Come on, you do better than that. Good afternoon, everybody. All right, I like it. Do you want to go for a third time? Good afternoon. All right, I dig that. That's better. So, hey, very excited to be here with you all today. Let me start with a quick question. How many of you have ever heard about Crewai? Raise of hands. Holy shit. All right, one second. Can I take a picture? I was in this stage a year ago and that was no hands. So let's do this. One second. I want to make sure that I got this right. Don't screw this up. I just got one chance. All right, how many of you have heard about Crewai? Damn, that's insane. I'm here to talk a little bit about Crewai. I'm going to talk about many of you know us by our open source framework. It's the best framework out there. That's what I'm going to say. We also have an enterprise solution. So whenever anyone is ready to talk business, we also do that. And we love doing that. We're great at doing that. But we are shipping so much things every single day and every single week that this is also going to be a great opportunity to show you some of, like, the latest and the shiniest new features and how you can use them. We also have some things that we can code together. So this is supposed to be more of a workshop. So eventually, if. When you get to that, if you want to put your laptop up and you want to code with us, that's okay too. If you don't want to do that, you can also do that later. All that's going to be available. Open source is going to be on GitHub, but doing live is nice. And the other thing is, once that we get to coding, I would love to get this more conversational. So if you want to ask questions or if you have any doubts or anything that pop up to mind, you can also just raise your hand and we can make this more of a conversation. All right, Everyone good with that? All right, let's do it. So we like to call as the leading enterprise multi AI agent suite, what is a mouthful. But there is a reason for every single word in here. Enterprise is because on the commercial side, we're selling into bigger companies. And the suite is because we realized that even though the framework is amazing, it's so easy to build when you're getting to certain scale. When you have hundreds of agents or thousands of agents, then that starts to break because now it's a bunch of legacy code and you have to maintain it. And then you not only have the agents, you have the tools, you have authentication and all the different things on top. So what we're actually building on the enterprise side that I'm going to tell you at the tail end about it. So I don't kind of like getting your way is like some of the things that we are building on that side as well. But on the open search things are booming. We have developer adoption in over 150 countries. What is insane. And we have over 100,000 engineers certified on deep learning AI, a bunch of people taking these courses. And that's very exciting. If you haven't done it yet, I would say definitely do it. Also many Fortune 500 using, we can talk about some of them eventually or off the thing. And also amazing partnerships. That's why we have Groq with us in here. We are great partners with Groq. We're going to tell you more about Groq as well during this, one of the use cases that we will build. We will use Groq and we're going to tell you why we're doing that. But also other partners that have been very interesting as well. 50 million. This is how many agents we run in January. I haven't pulled the numbers of February just yet. The reason why I like this number is because a lot of people are thinking about agents as something that is going to happen in the future. And I mean, yeah, 50 million is a lot, but it's going to have to way higher. But what I mean is it's happening now. There's like people and companies, they're actually running these agents on a regular cadence and getting value from that. And that's very exciting. And more than the number itself is the growth. This is the actual plot of how this number has been growing in the past few months. What is insane if you ask me. Now, many of you might know what an AI agent is, but I think it's safe to assume that some might not. So I'm going to take two minutes to level set very quickly. You're probably familiar with all the models, ChatGPT, Sonnet and everything. They're great at creating content. They predict the next token. So if you ask them, hey, create an email for me, they're going to go ahead and write the email out and you can say, make it funnier and it's going to fail at that, but give it a try. And then you also have this thing that it's almost like a cognition thing feature in these models where if instead of asking them to write an email, you give them two emails and you say, which email is better? What email should I send? This model is going to be able to choose between email one or two and say, oh, email one is better because X, Y and Z. Or email two is better because A, B or C. And it's that ability to make those decisions and do that with a certain degree of confidence that you can explore once that you make this into agents. Because now you can step out of the room and it's not a conversation anymore. You give it a task, you give it a goal, and this agent's gonna decide how to achieve that. They're gonna say, all right, in order to achieve this goal, I might need to pull some data from Salesforce. So let me do that and then pulls the data out and then gets this data in and say like, oh, you know it, this data actually is missing some invoices. Let me pull data from SAP and then go out and pull the data from SAP as well. So is this ability to do this decision making that really allows you to do what in the end of the day is automation. So honestly, AI agents, it's a fancy word, everyone loves it. It's tracking. In the end of the day, we're talking about AR powered automations, automations that were not possible before. So things like, for people that have done RPA in the past, so things that RPA promised to do and failed for whatever reason, or things that used to work but are very brittle, they break very regularly, very consistently. And you want to make sure that you can do that in a better cadence. This is kind of like a partial ecosystem feature or kind of like slide. I like to call out the fact that we work with any models out there just because sometimes some companies like to use OpenAI, other companies like to use Claude or Deep SEQ or whatever. It might be a lot of more regulated companies or even engineers to run local models. So they might run their own Gmail model, for example, or they might run a fine tuned version of Llama 3.3. And we support all of those. And we're going to show you that during this once I began to coding and now I want to talk about people who are building because they're probably curious about that. Like, all right, I get agents, I get they're cool, I get they can do automations. So what, like what is happening? And this is kind of like a distribution of what we're seeing in terms of use cases out there. The one thing that I love about this chart and I'm giving it a try. Someone like what pops up in this chart, anyone has any takes other is one thing but the main thing is there is no clear winner. It's not everyone is doing sales or everyone's doing back office. What that means is for a company like us is well, we built an amazing use case backups automation. Well now it's very easy for us to do another use case on support or to do another use case on research or another use case in marketing. So you can translate a lot of these learnings and that has been very interesting. The caveat here is this information is coming from a pool of 405,000 different people spread across the whole globe. So there's Americas, there's Europe, there's Asia, there's APAC in general, there's everything in here. And then the other thing is how technical these people are. Most of the people they're getting successful implementations are technical people. Now if you ask me, long term vision, these things will go no code. It's just kind of like a tendency in order to have more wider adoption within these companies. I think it's going to be very similar to E commerce nowadays where yes, there's ways that you can spin up an E commerce in five minutes and it works. But if you want to do something super cool and fancy then you're going to need an engineer, you're going to need to do your own. But today the reality is we're not there yet. Today even if we are doing like we're helping a company in a business unit, like a sales team or something, they are still getting more successful if they have technical people involved with it. So I think that's a good thing to call out in terms of how fast these companies are moving. They're moving pretty fast. One thing again, keep the caveat that this group is a group of companies and people that came to us so they're more progressive. Right? So I think this number of almost 16% have picture in productions. If you basically go towards the broader market it's going to be even lower because these are progressive companies coming to us to talk about AI agents. So they're already experimenting with some things for sure. And now I want to talk about use case and then after that we're going to talk about maybe building something. And what would that be? How does that sound? Did I lose you? Are you still with me? All right. All right, so let's do it. Good afternoon. All right. A little lower on energy, but it's okay. We can get there. So talk about use cases, right? Some use cases that we are seeing out there, these are actually use cases in production companies that build this. I can't tell you the companies, I can't tell you what they're doing or anything like that. But it's an interesting one. Basically there's integration with Azure using power apps, SharePoint. Basically people within these organizations can create requests using these apps. You have created information, this information now. Check internal databases for historical prices, check external sources, things like AlphaSense to pull information out of competitors. If there's something wrong with that use case, they might ping like the person directly on Slack say like, hey, there's something wrong with this request that you made. And eventually if it's approved, if there's an approval of this process, then that goes into an existing UiPath installation that broadcasts this into a series of databases internally. So very interesting use case. I think when we initially rolled out this use case, it has 60% precision. What sucked. Then we spent a few weeks on it and now it's 94% precision and 80% efficiency gains. And that's insane if you ask me. Especially for agents that are doing decision making. They're not necessarily just taking actions, but deciding on if something's going to get approved or not. Another one that I want to call out, this is more on the financial industry kind of market. Again, I can't tell customer the business, but it's an interesting one. You would never guess. Do you know the one thing that these companies still have a lot paper. So paper money orders, fax, letters, all that. And it's not like a. Oh, you get a check. No, people write all over the check. They write the check and say do 50% on my account X and my account Z. It's crazy, right? And these companies have basically paying like a amazing paint existing softwares that have excelled on doing only OCR to extract this data. But then what do you do with this data? There's so many steps between transferring data from digital to actually bits and bytes and then acting on it. And with agents, they're taking a few steps further. So now the agents are actually doing the whole OCR. They're using existing OCR models, also multimodal LLMs, they're doing analysis, they're pulling data from historical data that what happens, comparing, classifying, then passing it off to other groups of agents. They're going to basically prioritize those requests, they're going to queue them, they're going to assess the skill sets and then delegate all Right. Given these SKU sets, I'm going to delegate to person A or person B or person C or. Or department A. Department B, department C. So very interesting use cases. The way that we look at these use cases and any use case out there is on these four cadence where there's complexity and there's precision. So you can have high complexity, high precision. An example in here that we have seen is a company that want us to help them with agents to few IRS forms. So high complexity, high precision, you don't want to, you don't want to mess up IRS. But the form was 62 pages long. What is insane, but fear not, it comes with instruction manual. The manual has 720 pages. It's insane. Yes. And then you have kind of like low complexity, low precision use cases where you say like, oh, I want to generate marketing like content and like I don't care if it's 100% accurate. I want you to be more creative, I want to have more options. I'm ideating more than anything right now. Where you are in this cadence with your use case doesn't necessarily require that, oh, I only use more agents in low precision. No, you can have a lot of agents in high precision. So a use case that's high precision and high complexity is for example, generating educational content. We are working one of the biggest brands on education online and what they want is basically fast track generating content for courses. And that's a very high complexity and high precision. Like they don't want to disseminate false information and they want to generate this. But this is creative, this is not traditional automation. You want agents to talk, to think, to be creative, to write about the different things. So again, it's a variety of use cases that you can get in here. For all those use cases, we help them build it. This is all open source by the way. On the open source we got fairly well known by crewai crews. That's probably what you all know what allows you to do is build agents. In these agents you have a few levers that you can control them on how many requests they make, how much time they have to do their work. You can add programmatic guardrails. There's a lot of different things that you can do with them. But in the end of the day you're optimizing for more agency, you're optimizing for self healing, for trying different things and all that. And then you have create flows. How many of you have heard about CREA flows? Very few, as I expect. So this is Something that we need to start talking more about because this is super interesting. When you want to have more fine, precision use cases, you still can have code where you can have regular code, kind of like if this, then that, and you can do regular LLM calls. But at any point in time, let's say that you want to have a pocket of agents in there. You can do it. So let's say that on the example that we just mentioned earlier, you say, hey, I want to pull Salesforce data here from somewhere, all right? I don't want an agent to do it. I want a regular code. Just go pull the code now. I want to pull SAP data, all right? I just want a code, a code. Go there and pulls this data. Now. I want agents to cross this data to see if this is my icp, for example, or whatever you want to do with that. No worries. You can drop a query in there and then you have state and state management with this that you can do as well. But it's very interesting and serve for entire subset of use cases that we're finding to be very helpful for most of the users out there. Now we're going to talk about what we're going to do today. So if you want to be with us, this is the time where you start to take out your notebook. If you don't want to do it, that's okay, you can do it later. This code is going to be available, but meanwhile, just a quick extended check. Good afternoon. Better than the last time. All right, so we're going to be.
Interrupt for just a sec. There's a bunch of empty seats and a bunch of people standing. If you have an empty seat near you, put your hand up. And if you guys want to find a spot to sit where you can use your computer, this would be a good time. There's also overflow seating in one of the two rooms that are rebroadcasting this middle.
I'm doing on time, Jeff. I think I'm good. Ah. All right. All right, so let's talk about what we're going to build. And there's three cases that I want to build with you all today. They are pre built, but we're going to go over the code and we're going to see them together and we're going to talk about everything that is happening on every single line. This is very much focused on open source. So everything that I'm showing you, there's no paywall. You can download the open source, you can use this. This is the way that I'M going to show you. It's pretty cool. So the first use case is a very simple one I want to easy our way into. This first one is preparing for meetings. It sounds lame but it saves my life. I can tell you that. Whenever, like I have. You have a fully booked calendar. There's going to be many times throughout my week, at least it's happening to me many times where I notice, oh, I have a meeting in 10 minutes with someone that I have no clue about. Someone else put this meeting in there, I don't know and I have no information about this person, about this company, about what this is about or anything like that. This is a use case that we use a lot internally in Crew where these agents automatically research the person, the company and even go one step beyond and try to find interesting angles like, well, how crew AI fits within this meeting, within this person, within this company. So it's funny that I go from knowing nothing to jump into a call and say like oh, amazing news on the new facility that you folks got going on in Australia. That's incredible. And they're like oh yes, yes, we're very excited about it. Like yes, that helped. So we're going to build this real quick. I think this is going to be an interesting one. The second one that we're going to build is going to be a flow. It's a little more complex but it's also more interesting. And the idea here is dynamically generating documentations for any project. Writing documentations suck, right? Everyone like to have good docs but writing them is a lot of work. So this is a use case where we have a flow where there's a few pieces of regular code like cloning the repo or saving the plan. But then you're going to have a group of three different groups of agents that are going to map the entire project. They're going to plan what those docs should be and then they're going to actually write the docs and we're going to see the results of that. So that's going to be a very exciting one. And the third one, it takes us one extra step deep. And this is what we call conversational flows where you can now talk within this flow. So it's a regular conversation. You're just sending message back and forth, single LLM calls, nothing fancy. But the moment that that chat realizes that it's not equipped to answer their message then it kicks off a crew that is a data analysis crew that has access to a databricks and they're going to query this databricks and extract the data in order to give us a proper answer. So this is going to be a very interesting one. And for this, because it's conversational, you want to make sure that they are fast. You want to make sure they're super fast. And that's where Grok comes in. Because with Grok their main thing is they have the fastest inference speed out there. It's insane. They're going to show you some like plots in a second and you can jit by yourself. But we're going to be using Grok in another great partner of ours, we're going to be using Liam 3.3 for Meta. We love meta. We're doing a few things together. Very excited to be partnering with them and we're going to show how to use meta 3, 3, 7, eb and how to do this. So those are the three things. Exciting. Not so much exciting. All right, now I like it. Yeah, there you go. You are exc. So, all right, let me jump into the code real quick and I'm going to put this here. We're going to talk about those two use cases first and then before we do the third one, I will call folks from Grok to basically walk us over some of their things on their side. Because if you want to build this now or later, they have a special gift. They're going to be able to bump your rate limits to the roof. So you can basically do a bunch of Groq. So that's going to be an interesting one. All right, so I'm going to show you the code. This code is available in a few different ways. You have the deep Learning AI workshop that you can access where you can run everything online. And this is more safe in case like you don't have your environment set up or anything, anything like that. So you can go in Deep Learning AI and there's going to be this Create conferences workshop there. I'm going to be showing you the version that I have in my computer so that we can go over that because I did add some last minute modifications that. Sorry about, sorry about that. But you know me, you know me by now and that's how it works. So we're going to show this. But it's roughly very similar. But it's just that we made it. I think I have some crazy ideas last night and I was like, you know what, let's go for it. So let me load up the code real quick and I'm going to close everything that we have and don't worry, I'm going to zoom things in so it's not going to be this small. All right. Is this good? I think it's good enough. We have three lessons here. Let's talk about the first one, preparing for a meeting and what this looks like. Because we're doing this as a jupyter notebook. It's slightly different than what you would do if it's something that you meant to ship it, if it's a project that you meant to ship it. When you have Create I, you have a command line interface, so CLI, where you can basically do CrewAI create crew and it creates an entire infrastructure, kind of like the boilerplate code for you in here. We're doing a variation for that. So it's a jupyter notebook, but I can show you the difference in a second. So one thing that you're going to notice is both using the CLI or using the jupyter notebook, your agents and tasks are YAML files mostly. And I love this. It's easy to version is decoupled from the code, it's easy for people that are non technical to update and allows us to build a few features on the Enterprise that makes the whole life easier. If you go into agents, what you're going to see is every agent is going to have a role, a go and a backstory. Those are going to be the main things that these agents will have. In here we can see that we have a researcher agent. They are excited. So you have a researcher agent. That's pretty cool. And you can see that I asked, asked ChatGPT to write this for me. So it went a little overboard. I usually write shorter descriptions, but hey, this works. And then you also have an analyst agent. And here you see they also have a role, a go and a backstory. Those are the main things and the reason why we ask you to do that for agents, if I mean we have the time. So I think I'm gonna just explain this. When you get LLMs to role play, they usually perform way better. And that's because the fact that they are AI models. So for people that have never done AI before, regular AI before APIs, I'm talking about classification models and such. It's always using what they call features in order to create a prediction. So for today it could be I want to predict if it's going to rain. So that's what I'm trying to predict. What are the features that I have? Well, I have decision, the temperature, the location. So these models, what you're doing is you're training them to find the correlation between the features and the output. And with LLMs, it's the same. So you're trying to find correlations of the features with what is going to be the next token. And the features are everything that was written up to this point. So whatever you read up to this point would be the equivalent of saying, oh, it's a hot day in the summer and you know it's not going to rain. So whatever you have reading up to this point in an LLM heavily influences what's going to be written next. And that's why role playing usually gets LLMs to do better responses. And you can test this in ChatGPT. If you go in there and say, do a report in Tesla and it's going to give you a report and then you say the same thing, but you add you are FINRA approved analyst and you're going to have a completely different report. So that's one way that you can test it out. So that's why agents and crewai, we make sure that they're impersonating something or specific role. And then the tasks in a similar way, they're also YAML files and the only thing that they require is a description where you can describe what you want the agent to do once doing that task. And you can interpolate variables within it as well. And you also add an expected output. Many people, early days on crew AI and create AI has been this like since day zero. Many people in query I usually would, can I swear in here is it okay? All right. And you won't give us shit. They would say like, hey, you know what? Why do I need to type an expected output if I already did the task description? Well, one, we're forcing you to do better prompting without you realizing. So without you realizing or forcing you to think about what exactly is that you want. When you think about the description, you might say, oh, go out and search for X, Y and Z. And then for the expected output, you're forced to think, oh, I want a markdown file and I want this to have only three paragraphs and I want X, Y and Z. So it's almost like a forcing function to get you to start to thinking about doing better prompts. And that's part of the reason why we do this. Now some of the other reasons why we do this is that because now we can use the expected output to do evaluation on the actual output. So we can use LLM as a judge to say, hey, the actual output matches the criteria that you lined out on what you say that you expected. And that becomes a major metric as you're training different, testing different models, as you're changing our prompts to make sure that you're seeing progress in the right direction. Pretty cool, right? You knew about it. Pretty cool, right? Yes. Damn, I found that. So, yeah, sorry about that. So there you go. You have a few tasks and other tasks have the same thing descriptions, expected output. Now let's look at the code. There's a few boilerplate things in here, so I'm going to skip that. Like let's ignore warnings and now that let's install the dependencies, we can skip that. I even went to the trouble to make a nice animation. So hey, that's going to be cool. And after that we're just loading environment variables for this use case. If we go back into our slides real quick, one thing that you notice is that these agents need to be able to research the web and scrape it. So we are using a tool, an integration called serpir and they have a free account. You can go in there and create account serp and you create an account and you set up their environment key and it just works. Just need to make sure that you have that key in your environment. Now we do all the imports that we need. We like to try to keep things very lean. So in here you can see that we are just importing the main things in CrewAI, I.e. agents, tasks, crew and process. And then we are also importing a few tools. In this case, two tools, the SERPER tool that I just mentioned and the scraping website tool that basically allows the agents to scrape any web pages that they come across. So as they research the web and they find interesting information, they might decide to scrape those pages. They can do it now with those two tools. Now I'm loading those two x YAML files manually in here. This is the one difference when you're doing with the cli, you don't need to worry about that. But we can ignore here for now. And now we create our agents where we say like, hey, these agents are going to have their role, their go and their backstory. And actually I think we can even do it simpler where we can do config. I should look at the screen. There we go. You can do this. So it's loading all the config from the YAML file. You're saying that you want this to be verbose. And we are adding those two twos to this first research agent. This agent now can Use those two tools if it wants to. Same thing for the second agent, that is the analyst. It can actually. Now it can't use tools. You can pay attention that there's no tools for the analyst agent. So that is not happening. Only the first agent's using it. And then we have the two tasks that I think we can also do the same thing. There we go. And in here, you're gonna notice a few things. On CrewAI, the name Crew comes from this idea of multiple agents working together. In this case, because we're keeping very simple. You're noticing there is a map from one to one. There's one agent performing one task. Now, this doesn't need to be the case, right? Like in here, you can see that I'm saying the research task is going to be done by the researcher. The preparation task is not done by the analyst. I could not assign those tasks, and I could give them a manager. And the manager is going to delegate. The manager is going to get the first task and say, like, all right, this task I'm going to delegate for the researcher. Then the researcher is going to go off and do its work, and it's going to get back with the result. And then the manager is going to look again and say, you know what? I don't like it. Do a better job. And then it goes back and redo it again. So there's a bunch of different levers, but I'm trying to keep it simple here, where it's just like one agent, one task, so that we can see this going. And by the way, I should be executing this real quick. So let me go ahead and boom, boom, boom, boom, boom. I do have the agent in the YAML. There's a few extra configurations, though, that you can do directly in here. So what we decided is to extract the tools components out of the YAML, because that feels more of a technical choice. The YAML, what we're trying to do is make it super easy for, like, let's say there's a pm, right? And he knows nothing about tech, he knows nothing about tools, but he's like, hey, I want to try change this agent and see, like, what happens. They can go in there and change that pretty quickly. So that's why we decouple them a little bit. But the idea is we are going to probably bring more and more into the YAML file eventually. Especially, like, now that people are getting more used to that. So this is it. These are the tasks, and everything is in here. And then you create a crew by Basically grouping everything together. Like, these are my agents, these are my tasks. And you can say, like, I want them to do this work in a sequential manner. What means task one, then task two. And this is where we could say I want to do in a hierarchical manner where, like, it's going to be a manager in the process. It's not our case. All right, so now I think we can run this and see what it will look like. So the first thing is it pops up to ask me what is the meeting topic? Let me say that is initial sales call with what would be an interesting industry Finance. So with a big financial company. There we go. Enter the meeting participants. What would be a big company finance? Citadel. Nice. So let's say that I'm meeting Jake at Citadel and who's going to be Jake's boss? Joe. Joe. I like that. Joe@citadel.com I'd say that I'm meeting them both. All right, let's go back and fix this meeting. Brief display. All right, so what it's missing is the declaration of the crew. So this is what got wrong. Context. All right, Tasks. Context. Drop this. Context, drop this. There we go. Boom. Boom. All right, so initial sales call with big financial industry. And it's going to be Jake at Citadel and Citadel. Com. And we said joe@citadel.com. there we go. Boom. All right, so now these agents are working and we can monitor some of the stuff that is going on here. So I'm going to zoom out real quick so that we can see it, right? So the first agent comes in and we can see in here. They're like, all right, let me zoom in just a little bit. And drop this. There you go. So the first agent comes in and like, there's the task. Your objective is to uncover insights because we can have. I want to have a competitive advantage. Analyze the topic. The participants came up with a strategy and now ban. So you can see that the agents decide to use a tool like, let's search the Internet with Serpur. Let's see what we can find and basically start searching. What are the latest trends and developers in the financial industry in 2023? We forgot to say that it's 2025. So there you go. It's going to start searching now. It's going to read the website content. It's going to scrape it. Like, all right, I want to scrape one of these websites and it's scraping at the Lloyd website, talking about financial services. So basically we're going to have a bunch of content in here that scraped from the website. Then it decides to scrape another website. Now Ringcentral say like, all right, let me check what is the financial services trends and find more information about it. And we can scroll all the way back to see when we phase it off into a new agent. There we go. Now the new agent comes along, the first agent gives a final response. All right, this is the report, this is the topic analysis. These are the participants. It found people in Citadel, Jason Curry and Joe Hudson. There you go. So basically came up with all the strategic considerations, opportunities for alliance and everything and then goes into the next agent that's actually going to use this information. Now keep in mind this next agent can't search the Internet, can't scrape web pages. So it's just an LLM, kind of like using out the context so far in order to come up with a strategy for that call. And if we scroll all the way back here, we have our final markdown. So one page overview. We're talking about establishing a strategic partnership with Citadel, presenting tailored solutions. That's very interesting. Synthesis criteria is securing the follow up meeting. I agree. For initial sale calls, a follow up is the way to go. Financial industry is adapting to investment strategies. Cedar I was focusing on technology and compliance. So probably I want to mention all the security features that we would have. The key participants have distinct priorities. So technology driven risk and compliance. So there's three strategies in there that we can follow. Aligning the message, talking about data driven, framing the opportunity, talking about Jake specifically and some of the things that he cares about and talk about Joey specific and some of the things that he cares about. And then some talking points. I can talk about market dynamics, the shift, its investment strategies, studies showing ROI on AI. So again and even anticipated questions that I might get. How can these solutions adapt to our current infrastructure? Well, financial industries are very highly regulated industries. They probably want to do this in their own home, in their own environment. They want to do this on prem. So it's good that I can.










