CrewAI is a Python framework for multi-agent workflows, built around two complementary primitives. Crews are teams of role-based agents that delegate to each other and decide how to reach a goal; Flows are event-driven workflows with explicit state, branching, and routing that call single LLMs, plain Python, or whole Crews as steps. The two combine, so autonomous reasoning sits inside deterministic control where that matters.
An agent is defined by a role, goal, backstory, LLM, and tool list. Tasks carry a description, an expected output, optional context from earlier tasks, and an output file. A crew runs its tasks sequentially, or hierarchically, in which a manager agent is assigned automatically to plan, delegate, and validate results. Flows use decorators such as @start, @listen, and @router, with or and and operators to combine trigger conditions, and hold state in a typed Pydantic model.
The command-line tool scaffolds a JSON-first project: agents live in agents/*.jsonc, tasks and crew-level settings in crew.jsonc, with folders for custom tools, knowledge files, and skills. Placeholder values in agent and task text are filled from an inputs block or prompted for at run time. A classic Python and YAML scaffold with crew.py and config files remains available. CrewAI requires Python 3.10 or later and below 3.14.
Agents use the OpenAI API by default, and other providers are configured through the LLM connection layer, including local models served by Ollama or LM Studio. Beyond the framework, agent capabilities cover tools, memory, knowledge, checkpointing, async execution, and MCP and A2A support, and production patterns add deterministic steps, human input, and structured outputs. A separate commercial control plane adds managed deployment, tracing, governance, access control, and on-premise or cloud hosting.
Features
- Crews: role-based agent teams with dynamic delegation, defined goals, and collaborative problem solving
- Flows: event-driven workflows with typed state, conditional branching, routing, and logical trigger operators
- Composition: Flows call Crews as steps, mixing autonomous reasoning with explicit control flow
- JSON-first projects: agents in agents/*.jsonc and tasks in crew.jsonc, scaffolded and run by the CLI
- Process models: sequential execution, or hierarchical execution with an auto-assigned manager agent
- Custom tools: project-local tools referenced by name, plus MCP and A2A support
- Memory and knowledge: knowledge files, memory, and checkpointing for longer-running systems
- Structured output: Pydantic or JSON output schemas and human review steps on tasks
- Model connections: OpenAI by default, with other providers and local models through the LLM connection layer
- Coding-agent skills: an official skills package teaches coding agents to scaffold Flows and configure Crews
- Commercial control plane: managed deployment, tracing, observability, governance, and enterprise support
Integrates with
Integrated by
A2A Adapter
Python library that exposes agent CLIs and frameworks as Agent-to-Agent (A2A) Protocol servers
Agent Memory
neo4j-labs/agent-memory gives agents three memory layers in one graph: conversation histo...
AgentOps
Python SDK for AI agent monitoring, LLM cost tracking, benchmarking, and more. Integrates with most LLMs and agent frameworks including CrewAI, Agno, OpenAI Agents SDK, Langchain, Autogen, AG2, and CamelAI.
Amnesia
Memory layer for AI assistants and agents that persists user, session and agent context and retrieves it with multi-signal semantic search
Alternatives
724 Office
724-office runs a full AI agent loop in 3,500 lines of pure Python with three dependencies. Three-layer memory, MCP inte
Agency Orchestrator
Orchestrates 216+ role-based AI experts through zero-code YAML workflows, running steps in parallel across ten LLM providers
AnimaWorks
One of the hardest problems in multi-agent systems is forgetting. Most frameworks hoard context until the window explode
Langroid
Python framework for building LLM applications with collaborating multi-agent message passing