Okay, in this lesson, we're going to dive into agenetic collaboration. Multiple agent systems are great, but they really shine when you can get the ability for these agents to talk to each other. There's so many different ways that you can get agents to collaborate when you're trying to achieve certain goals. And you got to pick and choose what are the right ways to assemble your team together. Again, think like a manager. You want to always to structure your team the same way. So right now we're going to dig into that and understanding how you can get these agents to collaborate in so many different ways. Welcome to our new lesson. I'm so excited that you got to this point. We're going to be talking about agenetic collaboration, and we're going to talk about one specific sample that is so cool, and that's financial analysis. We have big companies. I'm talking about fortune 500 companies, that are using CrewAI to do financial analysis. So this is a very common use case where you're going to probably see out there as you start to interact with more people that are doing multi-agent systems in the real world. So let's dive into that. How multi-agents collaborate. We already saw this happenning The true like crews by seeing like one agent passed the test to another. But there is just one way. There's so many other ways that multi-agents can collaborate. So let's go back to when we started. We described the initial steps throughout agent collaboration where you didn't have one agent finish a task and then pass its output into the next. And we already know that we could do that in parallel as well. And this is great for certain kind of workflows, but similar to how you wouldn't necessarily arrange the same team the same way for all the tasks. That's also true for agents. So depending on what you're trying to achieve, you might want to organize your agents differently. You might still have the same agents. You might still have even the same tasks, but you might want them to operate through a different process. Because of this, process bring some consequences, for example. So for this process, and specifically if you're talking about doing things sequentially, you have some consequences. The most common is the fact that the initial context moves slowly fade away as the tasks get passed from one agent to another. And again, that's okay for some cases, but not for all of them. So CrewAI offers some flexibility around that. Similar to other framework but in this case, it's very explicit about it. So let's talk about processes. All of our agents so far have been working mainly in a sequential process. We did a experiment with parallel execution, but most of them are just performing tasks sequentially. But there are other ways that you can perform tasks using CrewAI. Another big one, is hierarchical. And there's a lot of benefits for it. First is that you get a single point. You got a manager that always remembers the initial goal, and that automatically delegates the work to the other members and the other agents in this crew. And not only that, but also reviews the result as these agents wrap their work, it can ask for further improvements if necessary. And the cool thing is that you get to create this agent manager yourself. So you can see here how different process gives you a completely different way to perform the same actions if you really want to. And it's just a one single line change that it would allow you to do that. But you don't need to stop there. You can also do some of what we did with asynchronous execution. So independently of the process, CrewAI will also offer you the ability to execute certain tasks in parallel. You have other tasks. Wait for them to be finished if necessary. So despite of the original schemas, crew allows for agents to fully cooperate and go off any predefined paths if necessary to fulfill the tasks at hand so they can delegate to each other, ask questions to each other. You can have a manager that reviews to work. You can have tasks that happen in parallel. There's just so many options. In terms of the collaboration itself, you can have agents ask questions, vaguely talk to each other. We already talked a bit about this, but this happens independently of the process that you choose. Meaning that even if you choose to use hierarchical processes where you have one manager, delegating work, that still means that the agents benefit can delegated work between themselves. So that's still true and allows for a more diverse outcome. So let's see some practical examples of this. Let's jump into our Jupyter notebook real quick.