Skip to main content

LLMs

还没翻译译自英文(docs.crewai.com)本页 221 段都还没译

Overview

CrewAI integrates with multiple LLM providers through providers native sdks, giving you the flexibility to choose the right model for your specific use case. This guide will help you understand how to configure and use different LLM providers in your CrewAI projects.

What are LLMs?

Large Language Models (LLMs) are the core intelligence behind CrewAI agents. They enable agents to understand context, make decisions, and generate human-like responses. Here's what you need to know:

LLM Basics

Large Language Models are AI systems trained on vast amounts of text data. They power the intelligence of your CrewAI agents, enabling them to understand and generate human-like text.

Context Window

The context window determines how much text an LLM can process at once. Larger windows (e.g., 128K tokens) allow for more context but may be more expensive and slower.

Temperature

Temperature is a sampling control supported by some models. Lower values generally make sampling more focused, while higher values increase variability. Some newer reasoning models ignore, deprecate, or reject this parameter, so check the selected model's documentation before setting it.

Provider Selection

Each LLM provider (e.g., OpenAI, Anthropic, Google) offers different models with varying capabilities, pricing, and features. Choose based on your needs for accuracy, speed, and cost.

Setting up your LLM

There are different places in CrewAI code where you can specify the model to use. Once you specify the model you are using, you will need to provide the configuration (like an API key) for each of the model providers you use. See the provider configuration examples section for your provider.

1. Environment Variables2. YAML Configuration3. Direct Code

The simplest way to get started. Set the model in your environment directly, through an .env file or in your app code. If you used crewai create to bootstrap your project, it will be set already.

MODEL=provider/model-id  # e.g. openai/gpt-5.6-terra

# Be sure to set your API keys here too. See the Provider
# section below.

Warning

Never commit API keys to version control. Use environment files (.env) or your system's secret management.

Info

CrewAI provides native SDK integrations for OpenAI, Anthropic, Google (Gemini API), Azure, AWS Bedrock, and Snowflake Cortex — no extra install needed beyond the provider-specific extras (e.g. uv add "crewai[openai]").

All other providers are powered by LiteLLM. If you plan to use any of them, add it as a dependency to your project:

uv add 'crewai[litellm]'

Provider Configuration Examples

CrewAI supports a multitude of LLM providers, each offering unique features, authentication methods, and model capabilities. In this section, you'll find detailed examples that help you select, configure, and optimize the LLM that best fits your project's needs.

Warning

Model availability changes frequently and can vary by account, region, and cloud platform. The examples below use models that are current at the time of writing, but they are not exhaustive support lists. Before deploying, verify the model ID and lifecycle status in the provider's linked model catalog.

OpenAI

Meta-Llama

Snowflake Cortex

Anthropic

Google (Gemini API)

Google (Vertex AI)

Azure

AWS Bedrock

Amazon SageMaker

Mistral

Nvidia NIM

NVIDIA Nemotron

Local NVIDIA NIM Deployed using WSL2

Groq

IBM watsonx.ai

Ollama (Local LLMs)

Fireworks AI

Perplexity AI

Hugging Face

SambaNova

Cerebras

Open Router

Nebius AI Studio

DeepInfra

Streaming Responses

CrewAI supports streaming responses from LLMs, allowing your application to receive and process outputs in real-time as they're generated.

Basic SetupEvent HandlingAgent & Task Tracking

Enable streaming by setting the stream parameter to True when initializing your LLM:

from crewai import LLM

# Create an LLM with streaming enabled
llm = LLM(
    model="openai/gpt-5.6-terra",
    stream=True  # Enable streaming
)

When streaming is enabled, responses are delivered in chunks as they're generated, creating a more responsive user experience.

Async LLM Calls

CrewAI supports asynchronous LLM calls for improved performance and concurrency in your AI workflows. Async calls allow you to run multiple LLM requests concurrently without blocking, making them ideal for high-throughput applications and parallel agent operations.

Basic UsageWith Streaming

Use the acall method for asynchronous LLM requests:

import asyncio
from crewai import LLM

async def main():
    llm = LLM(model="openai/gpt-4o")

    # Single async call
    response = await llm.acall("What is the capital of France?")
    print(response)

asyncio.run(main())

The acall method supports all the same parameters as the synchronous call method, including messages, tools, and callbacks.

Structured LLM Calls

CrewAI supports structured responses from LLM calls by allowing you to define a response_format using a Pydantic model. This enables the framework to automatically parse and validate the output, making it easier to integrate the response into your application without manual post-processing.

Structured output support varies by provider and model. Test your chosen model before relying on structured responses in production.

For example, you can define a Pydantic model to represent the expected response structure and pass it as the response_format when instantiating the LLM. The model will then be used to convert the LLM output into a structured Python object.

from crewai import LLM

class Dog(BaseModel):
    name: str
    age: int
    breed: str


llm = LLM(model="openai/gpt-5.6-terra", response_format=Dog)

response = llm.call(
    "Analyze the following messages and return the name, age, and breed. "
    "Meet Kona! She is 3 years old and is a black german shepherd."
)
print(response)

# Output:
# Dog(name='Kona', age=3, breed='black german shepherd')

Advanced Features and Optimization

Learn how to get the most out of your LLM configuration:

Context Window Management

Performance Optimization

Drop Additional Parameters

Transport Interceptors

Common Issues and Solutions

AuthenticationModel NamesGateway ErrorsContext Length

Warning

Most authentication issues can be resolved by checking API key format and environment variable names.

# OpenAI
OPENAI_API_KEY=sk-...

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...