Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Environment:CrewAIInc CrewAI Optional Provider Dependencies

From Leeroopedia
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

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment