CrewAI is an open-source Python framework for building systems of collaborating AI agents. Each agent is assigned a role (e.g., "Market Researcher", "Data Analyst", "Report Writer"), a goal, access to tools, and memory. Agents receive tasks, decide which tools to call, execute them, and share results with other agents. Tasks are chained—one agent's output feeds into another's input. A crew is a collection of agents working toward a shared objective. Coordination happens through message passing: Agent A completes a task and sends its results to Agent B, which reviews, asks clarifying questions if needed, and proceeds. The framework handles scheduling, memory, error recovery, and logging.