Please explain Manager LLM like I am 25

Amitava,

  • If you choose to pass just an LLM—meaning, you use the manager_llm parameter—then the manager Agent itself will be built internally by CrewAI. It’ll create an Agent with a role, goal, and backstory tailored to be a pretty competent manager. This agent will be responsible for coordinating tasks (or sub-tasks, however it decides) and assigning them to the other Agents (these are the coworkers you define the standard way).
  • Now, if you opt to provide a manager_agent instead, it has to be an Agent that you cannot assign any Task to. You’ll need to define its role, goal, and backstory yourself to best suit your needs. That’s pretty much the extent of the control you have over customizing the manager in this case.

This part caught my eye, and I’m going to repeat something I often say: this is an agentic approach, which means you need a good deal of trust in your coordinating agent. You have to accept that at the end of a slightly unpredictable (probabilistic) process, you’ll hopefully get a valid solution. You might get the big picture of what needs doing, you might see details of what’s currently happening, but you’re not micromanaging every single step.

In most situations, you (or your client) will want fine-grained control. Especially in the corporate world, processes are usually very well-defined (or hey, they should be!), and agentic systems need to fit into and boost these established methodologies. For those scenarios, the Flows paradigm in CrewAI is a much better fit. It features well-defined steps, flow control, and persistence, excelling at capturing structured processes and delivering that better predictability. In this other thread, I actually tackled the same problem using both crewai.Process.hierarchical and then showed a really clear and simple solution using crewai.flow.