crewAI icon indicating copy to clipboard operation
crewAI copied to clipboard

My filisophical thoughts about future direction of development of multi-agent frameworks.

Open Grigorij-Dudnik opened this issue 1 year ago • 0 comments

Hey,

I'm Grigorij, and I moving from Autogen, of which I was active user for some time and contributor, to CrewAI as it totally beats Autogen by level of agent's context verbosity, control, simplicity of code and has other advantages. After some experience with working with both frameworks, I have thoughts about when multi-agent cooperation should and shouldn't be used, and which features for multi-agent orchestrators as CrewAI are really needed. It will be long to read, but please take time for it. I think it could be important for future developmentof framework, and I'm really like to hear your opinion about it.

People using CrewAI for different things: some building automations to check out their emails or writing twitter posts, some creating stock analysis apps or making internet search. Althrough many of that tasks are simple enough that could and should be realized using simple automations and Langchain pipelines instead of agents - that will provide more simplicity, control and durability. The problem behind it is as we executing such tasks with agents we used to threat agents work as simple pipeline also - with one or few tasks to execute and more-less predefined process, which going to end fast and deliver some output.

In my opinion, that approach is wrong. I think we should threat work with agents not like a short process, but like endless (or at least very long) journey.

Let me explain on my example. I'm using CrewAI agents to write for me a web application. It's complicated task (and only for such complicated tasks agents should be used in my opinion) - it has big number of smaller tasks to do one after another, as implementing new features, modifying old ones etc. To implement feature, agent first need to do a research - check out files and folders, and check out content of files he going to work with. Next, it need to implement appropriate changes, test it, provide corrections. In current approach to multi-agent collaboration happy agents will finish process just after, and for every new feature they need to do all the process, including research, again. Don't it will be easier, if after executing one task, having all the knowledge about application they will continue work on another?

See, in real life no one hiring programmer just to implement one or few features in his app and then firing him. Rather we want programmer to stay as with every implemented feature his knowledge about our app is growing, so every next feature he can implement faster and better. With AI agents it's completelly same.

With such paradigm shift coming new challenges in building agent orchestrators as CrewAI. Main of them is a control over agent's memory and ability to remove unnecesary context while leaving important one - otherwise we'll pay huge bills for his operation fast and easily loose his attention. In my opinion, there are three ways of solving that problem: 1. creating interface for manual removing unnecesarily history by human, 2. inventing automatic way of doing it, something like summarization, but more advanced, 3. finding and removing unnecesary history by agent. Another useful feature needed is saving history of agent's work and ability to continue it later, even after some changes in agents structure/tools are introduced (please correct me is something like that already exists, I'm not so familiar with CrewAI yet). One more needed feature I have in mind is ability to manage tasks by agents and create new ones in the fly (also please correct me if it exists).

I will glad to help with implementing that features and develop CrewAI! But first I'm really interested what do you think about that approach. Do you agree with my thoughts or seeing it differently? Do you also have ideas and propositions?

Grigorij-Dudnik avatar Feb 10 '24 10:02 Grigorij-Dudnik