Homepage · Open Source · Docs · Start Cloud Trial · Blog · Forum
CrewAI is an open-source Python framework with high-level abstractions and low-level APIs for building production-ready multi-agent workflows. It gives developers autonomous agent collaboration through Crews and precise, event-driven control through Flows.
With over 100,000 developers certified through our community courses at learn.crewai.com, CrewAI is rapidly becoming the standard for production-ready agentic automation.
For organizations that need a commercial control plane around CrewAI, CrewAI AMP Suite adds managed deployment, observability, governance, security, and enterprise support.
You can try one part of the suite, the Crew Control Plane, for free.
CrewAI AMP is designed for enterprises seeking a powerful, reliable solution to transform complex business processes into efficient, intelligent automations.
Using an AI coding agent? Teach it CrewAI best practices in one command:
Claude Code:
/plugin marketplace add crewAIInc/skills
/plugin install crewai-skills@crewai-plugins
/reload-plugins
Four skills that activate automatically when you ask relevant CrewAI questions:
| Skill | When it runs |
|---|---|
getting-started |
Scaffolding new projects, choosing between LLM.call() / Agent / Crew / Flow, wiring crew.py / main.py |
design-agent |
Configuring agents — role, goal, backstory, tools, LLMs, memory, guardrails |
design-task |
Writing task descriptions, dependencies, structured output (output_pydantic, output_json), human review |
ask-docs |
Querying the live CrewAI docs MCP server for up-to-date API details |
Cursor, Codex, Windsurf, and others (skills.sh):
npx skills add crewaiinc/skills
This installs the official CrewAI Skills — structured instructions that teach coding agents how to scaffold Flows, configure Crews, design agents and tasks, and follow CrewAI patterns.

CrewAI unlocks the true potential of multi-agent automation, delivering speed, flexibility, and control through Crews of AI agents and event-driven Flows:
CrewAI empowers developers and teams to build intelligent automations that balance simplicity, flexibility, and production-grade control.
Setup and run your first CrewAI agents by following this tutorial.
Learning Resources
Learn CrewAI through our comprehensive courses:
CrewAI offers two powerful, complementary approaches that work seamlessly together to build sophisticated AI applications:
Crews: Teams of AI agents with true autonomy and agency, working together to accomplish complex tasks through role-based collaboration. Crews enable:
Natural, autonomous decision-making between agents
Flexible problem-solving approaches
Flows: Production-ready, event-driven workflows that deliver precise control over complex automations. Flows provide:
Fine-grained control over execution paths for real-world scenarios
The true power of CrewAI emerges when combining Crews and Flows. This synergy allows you to:
To get started with CrewAI, follow these simple steps:
Ensure you have Python >=3.10 <3.14 installed on your system. CrewAI uses UV for dependency management and package handling, offering a seamless setup and execution experience.
First, install CrewAI:
uv pip install crewai
If you want to install the 'crewai' package along with its optional features that include additional tools for agents, you can do so by using the following command:
uv pip install 'crewai[tools]'
The command above installs the basic package and also adds extra components which require more dependencies to function.
If you encounter issues during installation or usage, here are some common solutions:
ModuleNotFoundError: No module named 'tiktoken'
Install tiktoken explicitly: uv pip install 'crewai[embeddings]'
If using embedchain or other tools: uv pip install 'crewai[tools]'
Failed building wheel for tiktoken
Ensure Rust compiler is installed (see installation steps above)
uv pip install --upgrade pipuv pip install tiktoken --prefer-binaryTo create a new CrewAI project, run the following CLI (Command Line Interface) command:
crewai create crew <project_name>
This command creates a new project folder with the following structure:
my_project/
├── .gitignore
├── pyproject.toml
├── README.md
├── .env
└── src/
└── my_project/
├── __init__.py
├── main.py
├── crew.py
├── tools/
│ ├── custom_tool.py
│ └── __init__.py
└── config/
├── agents.yaml
└── tasks.yaml
You can now start developing your crew by editing the files in the src/my_project folder. The main.py file is the entry point of the project, the crew.py file is where you define your crew, the agents.yaml file is where you define your agents, and the tasks.yaml file is where you define your tasks.
src/my_project/config/agents.yaml to define your agents.src/my_project/config/tasks.yaml to define your tasks.src/my_project/crew.py to add your own logic, tools, and specific arguments.src/my_project/main.py to add custom inputs for your agents and tasks..env file.Instantiate your crew:
crewai create crew latest-ai-development
Modify the files as needed to fit your use case:
agents.yaml
# src/my_project/config/agents.yaml
researcher:
role: >
{topic} Senior Data Researcher
goal: >
Uncover cutting-edge developments in {topic}
backstory: >
You're a seasoned researcher with a knack for uncovering the latest
developments in {topic}. Known for your ability to find the most relevant
information and present it in a clear and concise manner.
reporting_analyst:
role: >
{topic} Reporting Analyst
goal: >
Create detailed reports based on {topic} data analysis and research findings
backstory: >
You're a meticulous analyst with a keen eye for detail. You're known for
your ability to turn complex data into clear and concise reports, making
it easy for others to understand and act on the information you provide.
tasks.yaml
# src/my_project/config/tasks.yaml
research_task:
description: >
Conduct a thorough research about {topic}
Make sure you find any interesting and relevant information given
the current year is 2025.
expected_output: >
A list with 10 bullet points of the most relevant information about {topic}
agent: researcher
reporting_task:
description: >
Review the context you got and expand each topic into a full section for a report.
Make sure the report is detailed and contains any and all relevant information.
expected_output: >
A fully fledge reports with the mains topics, each with a full section of information.
Formatted as markdown without '```'
agent: reporting_analyst
output_file: report.md
crew.py
```python
from crewai import Agent, Crew, Process, Task from crewai.project import CrewBase, agent, crew, task from crewai_tools import SerperDevTool from crewai.agents.agent_builder.base_agent import BaseAgent from typing import List
@CrewBase class LatestAiDevelopmentCrew(): """LatestAiDevelopment crew""" agents: List
$ claude mcp add crewAI \
-- python -m otcore.mcp_server <graph>