CrewAI
by CrewAIOpen-source Python framework for orchestrating multiple AI agents as a "crew" — each agent has a role, goal, and tools, and they collaborate to complete tasks.
$ cat curator-note.md
CrewAI's design choice is the model of work it implies: a crew of role-specialized agents, each with their own goal and tools, collaborating on a task. You define a Researcher agent and a Writer agent and a Reviewer agent, give them tasks, and CrewAI runs the conversation between them until the work is done. That metaphor — a team of specialists rather than a single agent with tools — turns out to be a much more productive way to design real workflows. It maps onto how humans organize work, which means non-engineers can reason about it. The framework is also unopinionated about which LLM provider you use, supports local open-source models cleanly, and integrates with most popular tool libraries.
Where it falls short is depth of control compared to lower-level frameworks. CrewAI optimizes for legibility, which means the underlying execution loop is somewhat opaque — when an agent gets stuck or makes a wrong call, debugging requires more inference than in something like LangGraph where the graph structure is explicit. Performance at scale also lags: CrewAI workflows are slower per task than equivalent LangGraph implementations, because the role-based abstraction layer adds overhead. The enterprise platform pricing is opaque, which makes it hard to plan production deployments without a sales conversation.
Use CrewAI when your workflow naturally decomposes into specialized roles and you want a framework that makes that decomposition explicit. For workflows that need fine-grained graph control, branching, or long-running stateful execution, LangGraph is the better fit. For simple single-agent tasks with tools, the raw OpenAI or Anthropic SDK directly is faster and lighter.