Environment:CrewAIInc CrewAI Optional Provider Dependencies
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, AI_Agents |
| Last Updated | 2026-02-11 17:00 GMT |
Overview
Optional dependency groups for CrewAI features including embeddings, document processing, vector databases, memory providers, and LLM integrations.
Description
CrewAI uses Python optional dependency groups (extras) to keep the base install lightweight while supporting advanced features. Each optional group adds specific capabilities: `tools` adds the 60+ built-in tool library, `embeddings` adds tiktoken for token counting, `docling` adds advanced document parsing, `qdrant` adds an alternative vector database, and various LLM provider extras add native SDK integrations. These are installed via `uv add "crewai[extra_name]"` or `pip install "crewai[extra_name]"`.
Usage
Install these optional dependencies only when your workflow requires the specific feature. For example, install `crewai[anthropic]` only if using Claude models, or `crewai[tools]` only if using built-in tools like `SerperDevTool` or `ScrapeWebsiteTool`.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| Python | >=3.10, <3.14 | Same as base CrewAI requirement |
| Disk | Varies by extra | `docling` and `qdrant` can require significant disk space |
| Network | Internet access | Required for downloading packages and accessing APIs |
Dependencies
Tool Library
- `crewai-tools` ==1.9.3 (extra: `tools`)
Embeddings & Token Counting
- `tiktoken` ~=0.8.0 (extra: `embeddings`)
Data Processing
- `pandas` ~=2.2.3 (extra: `pandas`)
- `openpyxl` ~=3.1.5 (extra: `openpyxl`)
Document Parsing
- `docling` ~=2.63.0 (extra: `docling`)
Memory Providers
- `mem0ai` ~=0.1.94 (extra: `mem0`)
Vector Databases
- `qdrant-client[fastembed]` ~=1.14.3 (extra: `qdrant`)
Cloud Providers
- `boto3` ~=1.40.38, `aiobotocore` ~=2.25.2 (extra: `aws`)
- `boto3` ~=1.40.45 (extra: `bedrock`)
- `ibm-watsonx-ai` ~=1.3.39 (extra: `watson`)
Embedding Providers
- `voyageai` ~=0.3.5 (extra: `voyageai`)
LLM Providers
- `litellm` >=1.74.9,<3 (extra: `litellm`)
- `google-genai` ~=1.49.0 (extra: `google-genai`)
- `azure-ai-inference` ~=1.0.0b9 (extra: `azure-ai-inference`)
- `anthropic` ~=0.73.0 (extra: `anthropic`)
Agent-to-Agent Communication
- `a2a-sdk` ~=0.3.10, `httpx-auth` ~=0.23.1, `httpx-sse` ~=0.4.0, `aiocache[redis,memcached]` ~=0.12.3 (extra: `a2a`)
File Processing
- `crewai-files` (extra: `file-processing`)
Credentials
Optional features may require additional environment variables:
- `MEM0_API_KEY`: Mem0 API key (when using `mem0` extra)
- `REDIS_URL`: Redis URL (when using `a2a` extra with Redis caching)
Quick Install
# Install with tools (most common)
uv add "crewai[tools]"
# Install with multiple extras
uv add "crewai[tools,anthropic,embeddings]"
# Install everything for development
uv add "crewai[tools,embeddings,litellm,docling,qdrant]"
Code Evidence
Optional import with feature-gated error from `lib/crewai/src/crewai/knowledge/source/crew_docling_source.py:9-18,39-43`:
try:
from docling.datamodel.base_models import InputFormat
from docling.document_converter import DocumentConverter
DOCLING_AVAILABLE = True
except ImportError:
DOCLING_AVAILABLE = False
def __init__(self, *args, **kwargs):
if not DOCLING_AVAILABLE:
raise ImportError(
"The docling package is required to use CrewDoclingSource. "
"Please install it using: uv add docling"
)
LiteLLM optional availability from `lib/crewai/src/crewai/llm.py:84-91`:
try:
import litellm
from litellm.exceptions import ContextWindowExceededError
LITELLM_AVAILABLE = True
except ImportError:
LITELLM_AVAILABLE = False
litellm = None
Excel dependency check from `lib/crewai/src/crewai/knowledge/source/excel_knowledge_source.py:136-146`:
try:
import pandas as pd
return pd
except ImportError as e:
missing_package = str(e).split()[-1]
raise ImportError(
f"{missing_package} is not installed. Please install it with: pip install {missing_package}"
) from e
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `ImportError: The docling package is required` | Docling not installed | `uv add "crewai[docling]"` |
| `ImportError: pandas is not installed` | Pandas not installed | `uv add "crewai[pandas]"` |
| `LiteLLM not available` | LiteLLM not installed | `uv add "crewai[litellm]"` |
| `ImportError: mem0ai not found` | Mem0 not installed | `uv add "crewai[mem0]"` |
Compatibility Notes
- Extras are additive: Each extra installs additional packages without removing base functionality
- Version pinning: Most extras use compatible release (`~=`) pins to prevent breaking changes
- CrewAI Tools version lock: `crewai-tools` is pinned to exact version `==1.9.3` matching the core package
- A2A extra: Requires Redis or Memcached for caching; install Redis server separately