{"id":"crewai","title":"CrewAI","library":"crewai","description":"Python framework for orchestrating role-playing, autonomous AI agents. Agents collaborate via sequential or hierarchical processes to complete complex tasks. Built from scratch — independent of LangChain. Two core primitives: Crews (autonomous multi-agent collaboration) and Flows (event-driven, precise orchestration).","status":"active","version":"1.10.0","install":[{"cmd":"pip install crewai","lang":"bash","label":"Core framework"},{"cmd":"pip install crewai-tools","lang":"bash","label":"Optional: pre-built tools (SerperDevTool, FileReadTool, WebsiteSearchTool, etc.)"},{"cmd":"pip install 'crewai-tools[mcp]'","lang":"bash","label":"Optional: MCP server tool support"}],"dependencies":[{"package":"Python >=3.10, <3.14","reason":"Hard requirement. Python 3.9 and below are not supported.","optional":false},{"package":"litellm","reason":"Required for non-native LLM providers. Installed with crewai but must be configured for non-OpenAI models.","optional":false}],"imports":[{"symbol":"Agent, Task, Crew","correct":"from crewai import Agent, Task, Crew, Process\nfrom crewai import LLM","wrong":"from crewai import *","note":"Core classes are in the crewai package. Tools (SerperDevTool etc.) are in the separate crewai_tools package."},{"symbol":"crewai_tools","correct":"from crewai_tools import SerperDevTool, FileReadTool","wrong":"from crewai import SerperDevTool","note":"crewai_tools is a separate pip package. It is NOT included with pip install crewai."}],"quickstart":{"code":"from crewai import Agent, Task, Crew, Process\n\nresearcher = Agent(\n    role='Senior Researcher',\n    goal='Uncover groundbreaking technologies in AI',\n    backstory='You are an expert researcher with a passion for AI innovation.',\n    verbose=True\n)\n\nwriter = Agent(\n    role='Tech Writer',\n    goal='Craft compelling articles about AI discoveries',\n    backstory='You are a skilled writer who makes complex topics accessible.',\n    verbose=True\n)\n\nresearch_task = Task(\n    description='Research the latest breakthroughs in AI for 2026.',\n    expected_output='A list of 5 key AI breakthroughs with brief descriptions.',\n    agent=researcher\n)\n\nwrite_task = Task(\n    description='Write a short article based on the research findings.',\n    expected_output='A 3-paragraph article in markdown format.',\n    agent=writer\n)\n\ncrew = Crew(\n    agents=[researcher, writer],\n    tasks=[research_task, write_task],\n    process=Process.sequential,\n    verbose=True\n)\n\nresult = crew.kickoff()\nprint(result)","lang":"python","description":"Minimal two-agent crew with sequential process"},"warnings":[{"severity":"breaking","message":"Python <3.10 is not supported. CrewAI requires Python >=3.10 and <3.14. Installation on 3.9 will fail or produce broken behavior.","affected_versions":"all","fix":"Use Python 3.10, 3.11, or 3.12. Python 3.13 is supported but 3.14 is not yet."},{"severity":"breaking","message":"Task.expected_output is a required field. Omitting it raises a validation error at instantiation time.","affected_versions":"all","fix":"Always specify expected_output in every Task definition, even if just a short description string."},{"severity":"breaking","message":"crewai-tools is a completely separate package from crewai. Tools like SerperDevTool, FileReadTool, and WebsiteSearchTool raise ImportError if crewai-tools is not installed separately.","affected_versions":"all","fix":"pip install crewai-tools (or pip install 'crewai-tools[mcp]' for MCP support)"},{"severity":"breaking","message":"The recommended project structure uses YAML config files (src/<project>/config/agents.yaml and tasks.yaml) with @CrewBase, @agent, @task decorators. Code-only setups from older tutorials (pre-1.0) are still valid but the YAML-first pattern is now canonical and most docs assume it.","affected_versions":">=1.0.0","fix":"Use 'crewai create crew <name>' CLI command to scaffold the correct project structure with YAML configs."},{"severity":"breaking","message":"The crewai-tools repo (crewAIInc/crewAI-tools on GitHub) is now archived. Tool development has moved to the crewai-tools PyPI package maintained in the main crewai ecosystem.","affected_versions":"all","fix":"Install from PyPI: pip install crewai-tools. Do not use the archived GitHub repo directly."},{"severity":"gotcha","message":"Small open-source models (7B and below) often fail at function/tool calling within CrewAI. The framework relies heavily on the LLM's ability to generate correctly structured tool calls.","affected_versions":"all","fix":"Use models with strong tool-call support: GPT-4o, Claude 3.5+, Gemini 2.0+, or Qwen3-72B+ for reliable agentic behavior."},{"severity":"gotcha","message":"Windows users encounter build errors for chroma-hnswlib==0.7.6 (a memory dependency) due to missing C++ build tools.","affected_versions":"all","fix":"Install Visual Studio Build Tools with the 'Desktop development with C++' workload before pip install crewai."},{"severity":"gotcha","message":"crew.kickoff() is synchronous and blocking. For async contexts or FastAPI use, use crew.kickoff_async() instead.","affected_versions":">=1.0.0","fix":"await crew.kickoff_async(inputs={...}) in async contexts."},{"severity":"gotcha","message":"Non-OpenAI LLM providers require litellm and the correct model string format: 'provider/model-name' (e.g. 'anthropic/claude-sonnet-4-5', 'ollama/gemma3'). Passing just the model name without provider prefix silently routes to OpenAI.","affected_versions":"all","fix":"Use LLM(model='anthropic/claude-sonnet-4-5', api_key=...) or set the MODEL env var to 'provider/model-name'."}],"last_verified":"2026-02-28","next_check":"2026-05-28","source_url":"https://docs.crewai.com","language":"en","source_language":"en","tags":["agents","orchestration","multi-agent","crewai","python","llm","autonomous","flows"]}