跳转到主要内容

文档索引

获取完整文档索引: https://docs.crewai.com.cn/llms.txt

在深入了解之前,请使用此文件来浏览所有可用页面。

概述

CrewAI 通过各个 LLM 提供商的原生 SDK 与其集成,让您可以灵活选择适合特定用例的模型。本指南将帮助您了解如何在 CrewAI 项目中配置和使用不同的 LLM 提供商。

什么是 LLM?

大语言模型(LLM)是 CrewAI 智能体的核心智能所在。它们使智能体能够理解上下文、做出决策并生成类似人类的回复。以下是您需要了解的内容:

LLM 基础知识

大语言模型是基于海量文本数据训练的 AI 系统。它们驱动了 CrewAI 智能体的智能,使它们能够理解并生成类人文本。

上下文窗口

上下文窗口决定了 LLM 一次可以处理的文本量。更大的窗口(例如 128K token)允许处理更丰富的上下文,但成本可能更高且速度较慢。

温度(Temperature)

温度(0.0 到 1.0)控制回复的随机性。较低的值(如 0.2)产生更专注、确定性的输出,而较高的值(如 0.8)则增加创造性和变异性。

提供商选择

每个 LLM 提供商(如 OpenAI、Anthropic、Google)都提供具有不同能力、定价和功能的模型。请根据您对准确性、速度和成本的需求进行选择。

设置您的 LLM

您可以在 CrewAI 代码中的不同位置指定要使用的模型。一旦指定了使用的模型,您就需要为所使用的每个模型提供商提供配置(如 API 密钥)。请参阅您对应提供商的提供商配置示例部分。
这是最简单的入门方式。直接通过 .env 文件或您的应用代码在环境中设置模型。如果您使用 crewai create 来启动项目,它将已被设置好。
.env
MODEL=model-id  # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-...

# Be sure to set your API keys here too. See the Provider
# section below.
切勿将 API 密钥提交到版本控制系统中。请使用环境文件(.env)或系统的密钥管理服务。
CrewAI 为 OpenAI、Anthropic、Google(Gemini API)、Azure 和 AWS Bedrock 提供了原生 SDK 集成——除提供商特定的 extras 外,无需额外安装(例如 uv add "crewai[openai]")。所有其他提供商均由 LiteLLM 驱动。如果您计划使用其中任何一个,请将其作为项目的依赖项添加:
uv add 'crewai[litellm]'

提供商配置示例

CrewAI 支持众多 LLM 提供商,每个提供商都提供独特的功能、身份验证方法和模型能力。在本节中,您将找到详细的示例,帮助您选择、配置和优化最符合您项目需求的 LLM。
CrewAI 通过 OpenAI Python SDK 提供对 OpenAI 的原生集成。
代码
# Required
OPENAI_API_KEY=sk-...

# Optional
OPENAI_BASE_URL=<custom-base-url>
基本用法
代码
from crewai import LLM

llm = LLM(
    model="openai/gpt-4o",
    api_key="your-api-key",  # Or set OPENAI_API_KEY
    temperature=0.7,
    max_tokens=4000
)
高级配置
代码
from crewai import LLM

llm = LLM(
    model="openai/gpt-4o",
    api_key="your-api-key",
    base_url="https://api.openai.com/v1",  # Optional custom endpoint
    organization="org-...",  # Optional organization ID
    project="proj_...",  # Optional project ID
    temperature=0.7,
    max_tokens=4000,
    max_completion_tokens=4000,  # For newer models
    top_p=0.9,
    frequency_penalty=0.1,
    presence_penalty=0.1,
    stop=["END"],
    seed=42,  # For reproducible outputs
    stream=True,  # Enable streaming
    timeout=60.0,  # Request timeout in seconds
    max_retries=3,  # Maximum retry attempts
    logprobs=True,  # Return log probabilities
    top_logprobs=5,  # Number of most likely tokens
    reasoning_effort="medium"  # For o1 models: low, medium, high
)
结构化输出
代码
from pydantic import BaseModel
from crewai import LLM

class ResponseFormat(BaseModel):
    name: str
    age: int
    summary: str

llm = LLM(
    model="openai/gpt-4o",
)
支持的环境变量
  • OPENAI_API_KEY:您的 OpenAI API 密钥(必需)
  • OPENAI_BASE_URL:OpenAI API 的自定义基础 URL(可选)
功能
  • 原生函数调用支持(o1 模型除外)
  • 基于 JSON schema 的结构化输出
  • 实时响应的流式传输支持
  • Token 使用量跟踪
  • 停止序列支持(o1 模型除外)
  • 用于 token 级洞察的对数概率(Log probabilities)
  • o1 模型的推理努力控制
支持的模型
模型上下文窗口最适合
gpt-4.11M token具有增强功能的最新模型
gpt-4.1-mini1M token具有大上下文的高效版本
gpt-4.1-nano1M token超高效变体
gpt-4o128,000 token针对速度和智能进行了优化
gpt-4o-mini200,000 token具有大上下文且性价比高
gpt-4-turbo128,000 token长文本内容、文档分析
gpt-48,192 token高准确性任务、复杂推理
o1200,000 token高级推理、复杂问题解决
o1-preview128,000 token推理能力预览
o1-mini128,000 token高效推理模型
o3-mini200,000 token轻量级推理模型
o4-mini200,000 token下一代高效推理模型
Responses API:OpenAI 提供两种 API:Chat Completions(默认)和较新的 Responses API。Responses API 是从底层重新设计的,具有原生的多模态支持——文本、图像、音频和函数调用都是一等公民。它在推理模型方面性能更好,并支持自动链式调用和内置工具等附加功能。
代码
from crewai import LLM

# Use the Responses API instead of Chat Completions
llm = LLM(
    model="openai/gpt-4o",
    api="responses",  # Enable Responses API
    store=True,  # Store responses for multi-turn (optional)
    auto_chain=True,  # Auto-chain for reasoning models (optional)
)
Responses API 参数
  • api:设置为 "responses" 以使用 Responses API(默认:"completions"
  • instructions:系统级指令(仅限 Responses API)
  • store:是否存储多轮对话的响应
  • previous_response_id:用于多轮对话的上一个响应 ID
  • include:回复中需要包含的额外数据(例如 ["reasoning.encrypted_content"]
  • builtin_tools:OpenAI 内置工具列表:"web_search", "file_search", "code_interpreter", "computer_use"
  • parse_tool_outputs:返回带有已解析内置工具输出的结构化 ResponsesAPIResult
  • auto_chain:自动跟踪并使用响应 ID 进行多轮对话
  • auto_chain_reasoning:跟踪加密推理项以符合 ZDR(零数据保留)合规性
在新项目中使用 Responses API,特别是在使用推理模型(o1, o3, o4)或需要文件的原生多模态支持时。
注意:使用 OpenAI 前,请安装必要的依赖项
uv add "crewai[openai]"
Meta 的 Llama API 提供对 Meta 系列大语言模型的访问。API 可通过 Meta Llama API 获取。在您的 .env 文件中设置以下环境变量:
代码
# Meta Llama API Key Configuration
LLAMA_API_KEY=LLM|your_api_key_here
在 CrewAI 项目中的示例用法
代码
from crewai import LLM

# Initialize Meta Llama LLM
llm = LLM(
    model="meta_llama/Llama-4-Scout-17B-16E-Instruct-FP8",
    temperature=0.8,
    stop=["END"],
    seed=42
)
支持此处列出的所有模型:https://llama.developer.meta.com/docs/models/
模型 ID输入上下文长度输出上下文长度输入模态输出模态
meta_llama/Llama-4-Scout-17B-16E-Instruct-FP8128k4028文本、图像文本
meta_llama/Llama-4-Maverick-17B-128E-Instruct-FP8128k4028文本、图像文本
meta_llama/Llama-3.3-70B-Instruct128k4028文本文本
meta_llama/Llama-3.3-8B-Instruct128k4028文本文本
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
CrewAI 通过 Anthropic Python SDK 提供对 Anthropic 的原生集成。
代码
# Required
ANTHROPIC_API_KEY=sk-ant-...
基本用法
代码
from crewai import LLM

llm = LLM(
    model="anthropic/claude-3-5-sonnet-20241022",
    api_key="your-api-key",  # Or set ANTHROPIC_API_KEY
    max_tokens=4096  # Required for Anthropic
)
高级配置
代码
from crewai import LLM

llm = LLM(
    model="anthropic/claude-3-5-sonnet-20241022",
    api_key="your-api-key",
    base_url="https://api.anthropic.com",  # Optional custom endpoint
    temperature=0.7,
    max_tokens=4096,  # Required parameter
    top_p=0.9,
    stop_sequences=["END", "STOP"],  # Anthropic uses stop_sequences
    stream=True,  # Enable streaming
    timeout=60.0,  # Request timeout in seconds
    max_retries=3  # Maximum retry attempts
)
扩展思考(Claude Sonnet 4 及更高版本):CrewAI 支持 Anthropic 的扩展思考(Extended Thinking)功能,允许 Claude 在回复前以更像人类的方式思考问题。这对于复杂的推理、分析和问题解决任务特别有用。
代码
from crewai import LLM

# Enable extended thinking with default settings
llm = LLM(
    model="anthropic/claude-sonnet-4",
    thinking={"type": "enabled"},
    max_tokens=10000
)

# Configure thinking with budget control
llm = LLM(
    model="anthropic/claude-sonnet-4",
    thinking={
        "type": "enabled",
        "budget_tokens": 5000  # Limit thinking tokens
    },
    max_tokens=10000
)
思考配置选项
  • type:设置为 "enabled" 以激活扩展思考模式
  • budget_tokens(可选):用于思考的最大 token 数(有助于控制成本)
支持扩展思考的模型
  • claude-sonnet-4 及更新模型
  • claude-3-7-sonnet(具备扩展思考能力)
何时使用扩展思考
  • 复杂推理和多步问题解决
  • 数学计算和证明
  • 代码分析和调试
  • 战略规划和决策制定
  • 研究和分析任务
注意:扩展思考会消耗额外的 token,但可以显著提高复杂任务的回复质量。支持的环境变量:
  • ANTHROPIC_API_KEY:您的 Anthropic API 密钥(必需)
功能
  • Claude 3+ 模型原生工具使用支持
  • Claude Sonnet 4+ 的扩展思考支持
  • 实时响应的流式传输支持
  • 自动系统消息处理
  • 受控输出的停止序列
  • Token 使用量跟踪
  • 多轮工具使用对话
重要说明
  • max_tokens 是所有 Anthropic 模型的必需参数
  • Claude 使用 stop_sequences 而不是 stop
  • 系统消息与对话消息分开处理
  • 第一条消息必须来自用户(自动处理)
  • 消息必须在用户和助手之间交替
支持的模型
模型上下文窗口最适合
claude-sonnet-4200,000 token具备扩展思考能力的最新模型
claude-3-7-sonnet200,000 token高级推理和智能体任务
claude-3-5-sonnet-20241022200,000 token性能最好的最新 Sonnet 模型
claude-3-5-haiku200,000 token快速、紧凑的模型,用于快速回复
claude-3-opus200,000 token最适合复杂任务
claude-3-sonnet200,000 token智能与速度的平衡
claude-3-haiku200,000 token最适合简单任务,速度最快
claude-2.1200,000 token扩展上下文,减少幻觉
claude-2100,000 token适用于多种任务的通用模型
claude-instant100,000 token快速、经济,适合日常任务
注意:使用 Anthropic 前,请安装必要的依赖项
uv add "crewai[anthropic]"
CrewAI 通过 Google Gen AI Python SDK 提供对 Google Gemini 的原生集成。在您的 .env 文件中设置 API 密钥。如果需要密钥,请访问 AI Studio
.env
# Required (one of the following)
GOOGLE_API_KEY=<your-api-key>
GEMINI_API_KEY=<your-api-key>

# For Vertex AI Express mode (API key authentication)
GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_API_KEY=<your-api-key>

# For Vertex AI with service account
GOOGLE_CLOUD_PROJECT=<your-project-id>
GOOGLE_CLOUD_LOCATION=<location>  # Defaults to us-central1
基本用法
代码
from crewai import LLM

llm = LLM(
    model="gemini/gemini-2.0-flash",
    api_key="your-api-key",  # Or set GOOGLE_API_KEY/GEMINI_API_KEY
    temperature=0.7
)
高级配置
代码
from crewai import LLM

llm = LLM(
    model="gemini/gemini-2.5-flash",
    api_key="your-api-key",
    temperature=0.7,
    top_p=0.9,
    top_k=40,  # Top-k sampling parameter
    max_output_tokens=8192,
    stop_sequences=["END", "STOP"],
    stream=True,  # Enable streaming
    safety_settings={
        "HARM_CATEGORY_HARASSMENT": "BLOCK_NONE",
        "HARM_CATEGORY_HATE_SPEECH": "BLOCK_NONE"
    }
)
Vertex AI 快速模式(API 密钥认证):Vertex AI 快速模式允许您使用简单的 API 密钥认证来代替服务账号凭据。这是开始使用 Vertex AI 的最快方法。要启用快速模式,请在您的 .env 文件中设置这两个环境变量:
.env
GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_API_KEY=<your-api-key>
然后像往常一样使用 LLM
代码
from crewai import LLM

llm = LLM(
    model="gemini/gemini-2.0-flash",
    temperature=0.7
)
获取快速模式 API 密钥:更多详细信息,请参阅 Vertex AI 快速模式文档
Vertex AI 配置(服务账号)
代码
from crewai import LLM

llm = LLM(
    model="gemini/gemini-1.5-pro",
    project="your-gcp-project-id",
    location="us-central1"  # GCP region
)
支持的环境变量
  • GOOGLE_API_KEYGEMINI_API_KEY:您的 Google API 密钥(Gemini API 和 Vertex AI 快速模式必需)
  • GOOGLE_GENAI_USE_VERTEXAI:设置为 true 以使用 Vertex AI(快速模式必需)
  • GOOGLE_CLOUD_PROJECT:Google Cloud 项目 ID(用于使用服务账号的 Vertex AI)
  • GOOGLE_CLOUD_LOCATION:GCP 位置(默认为 us-central1
功能
  • 支持 Gemini 1.5+ 和 2.x 模型原生函数调用
  • 实时响应的流式传输支持
  • 多模态能力(文本、图像、视频)
  • 安全设置配置
  • 同时支持 Gemini API 和 Vertex AI
  • 自动系统指令处理
  • Token 使用量跟踪
Gemini 模型:Google 提供了一系列强大的模型,针对不同的用例进行了优化。
模型上下文窗口最适合
gemini-2.5-flash1M token自适应思考,性价比高
gemini-2.5-pro1M token增强的思考和推理能力,多模态理解
gemini-2.0-flash1M token下一代功能、速度和思考能力
gemini-2.0-flash-thinking32,768 token带有思考过程的高级推理
gemini-2.0-flash-lite1M token性价比高,延迟低
gemini-1.5-pro2M token性能最强,逻辑推理,编码能力
gemini-1.5-flash1M token平衡型多模态模型,适用于大多数任务
gemini-1.5-flash-8b1M token速度最快,性价比最高
gemini-1.0-pro32,768 token早期代际模型
Gemma 模型:Gemini API 还支持托管在 Google 基础设施上的 Gemma 模型
模型上下文窗口最适合
gemma-3-1b32,000 token超轻量级任务
gemma-3-4b128,000 token高效通用任务
gemma-3-12b128,000 token性能与效率的平衡
gemma-3-27b128,000 token高性能任务
注意:使用 Google Gemini 前,请安装必要的依赖项
uv add "crewai[google-genai]"
完整模型列表可在 Gemini 模型文档 中查看。
从 Google Cloud 控制台获取凭据并将其保存为 JSON 文件,然后使用以下代码加载:
代码
import json

file_path = 'path/to/vertex_ai_service_account.json'

# Load the JSON file
with open(file_path, 'r') as file:
    vertex_credentials = json.load(file)

# Convert the credentials to a JSON string
vertex_credentials_json = json.dumps(vertex_credentials)
在 CrewAI 项目中的示例用法
代码
from crewai import LLM

llm = LLM(
    model="gemini-1.5-pro-latest", # or vertex_ai/gemini-1.5-pro-latest
    temperature=0.7,
    vertex_credentials=vertex_credentials_json
)
Google 提供了一系列针对不同用例优化的强大模型
模型上下文窗口最适合
gemini-2.5-flash-preview-04-171M token自适应思考,性价比高
gemini-2.5-pro-preview-05-061M token增强的思考与推理、多模态理解、高级编码等
gemini-2.0-flash1M token下一代功能、速度、思考以及实时流式传输
gemini-2.0-flash-lite1M token性价比高,延迟低
gemini-1.5-flash1M token平衡型多模态模型,适用于大多数任务
gemini-1.5-flash-8B1M token速度最快,性价比最高,适用于高频任务
gemini-1.5-pro2M token性能最强,适用于广泛的推理任务,包括逻辑推理、编码和创意协作
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
CrewAI 通过 Azure AI Inference Python SDK 提供对 Azure AI Inference 和 Azure OpenAI 的原生集成。
代码
# Required
AZURE_API_KEY=<your-api-key>
AZURE_ENDPOINT=<your-endpoint-url>

# Optional
AZURE_API_VERSION=<api-version>  # Defaults to 2024-06-01
端点 URL 格式:对于 Azure OpenAI 部署:
https://<resource-name>.openai.azure.com/openai/deployments/<deployment-name>
对于 Azure AI Inference 端点:
https://<resource-name>.inference.azure.com
基本用法
代码
llm = LLM(
    model="azure/gpt-4",
    api_key="<your-api-key>",  # Or set AZURE_API_KEY
    endpoint="<your-endpoint-url>",
    api_version="2024-06-01"
)
高级配置
代码
llm = LLM(
    model="azure/gpt-4o",
    temperature=0.7,
    max_tokens=4000,
    top_p=0.9,
    frequency_penalty=0.0,
    presence_penalty=0.0,
    stop=["END"],
    stream=True,
    timeout=60.0,
    max_retries=3
)
支持的环境变量
  • AZURE_API_KEY:您的 Azure API 密钥(必需)
  • AZURE_ENDPOINT:您的 Azure 端点 URL(必需,也会检查 AZURE_OPENAI_ENDPOINTAZURE_API_BASE
  • AZURE_API_VERSION:API 版本(可选,默认为 2024-06-01
功能
  • 支持 Azure OpenAI 模型(gpt-4, gpt-4o, gpt-3.5-turbo 等)的原生函数调用
  • 实时响应的流式传输支持
  • 自动端点 URL 验证和纠正
  • 带有重试逻辑的综合错误处理
  • Token 使用量跟踪
注意:使用 Azure AI Inference 前,请安装必要的依赖项
uv add "crewai[azure-ai-inference]"
CrewAI 通过 boto3 SDK 使用 Converse API 提供对 AWS Bedrock 的原生集成。
代码
# Required
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>

# Optional
AWS_SESSION_TOKEN=<your-session-token>  # For temporary credentials
AWS_DEFAULT_REGION=<your-region>  # Defaults to us-east-1
AWS_REGION_NAME=<your-region>  # Alternative configuration for backwards compatibility with LiteLLM. Defaults to us-east-1
基本用法
代码
from crewai import LLM

llm = LLM(
    model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0",
    region_name="us-east-1"
)
高级配置
代码
from crewai import LLM

llm = LLM(
    model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0",
    aws_access_key_id="your-access-key",  # Or set AWS_ACCESS_KEY_ID
    aws_secret_access_key="your-secret-key",  # Or set AWS_SECRET_ACCESS_KEY
    aws_session_token="your-session-token",  # For temporary credentials
    region_name="us-east-1",
    temperature=0.7,
    max_tokens=4096,
    top_p=0.9,
    top_k=250,  # For Claude models
    stop_sequences=["END", "STOP"],
    stream=True,  # Enable streaming
    guardrail_config={  # Optional content filtering
        "guardrailIdentifier": "your-guardrail-id",
        "guardrailVersion": "1"
    },
    additional_model_request_fields={  # Model-specific parameters
        "top_k": 250
    }
)
支持的环境变量
  • AWS_ACCESS_KEY_ID:AWS 访问密钥(必需)
  • AWS_SECRET_ACCESS_KEY:AWS 密钥(必需)
  • AWS_SESSION_TOKEN:临时凭据的 AWS 会话令牌(可选)
  • AWS_DEFAULT_REGION:AWS 区域(默认为 us-east-1
  • AWS_REGION_NAME:AWS 区域(默认为 us-east-1)。向后兼容 LiteLLM 的替代配置
功能
  • 通过 Converse API 原生工具调用支持
  • 流式和非流式响应
  • 带有重试逻辑的综合错误处理
  • 内容过滤的防护栏(Guardrail)配置
  • 通过 additional_model_request_fields 实现模型特定参数
  • Token 使用量跟踪和停止原因记录
  • 支持所有 Bedrock 基础模型
  • 自动对话格式处理
重要说明
  • 使用现代 Converse API 进行统一模型访问
  • 自动处理模型特定的对话要求
  • 系统消息与对话分开处理
  • 第一条消息必须来自用户(自动处理)
  • 某些模型(如 Cohere)要求对话以用户消息结束
Amazon Bedrock 是一项托管服务,通过统一 API 提供来自顶级 AI 公司的多种基础模型访问。
模型上下文窗口最适合
Amazon Nova Pro最高 300k token高性能模型,在各种任务中平衡了准确性、速度和成本效益。
Amazon Nova Micro最高 128k token高性能、经济高效的纯文本模型,针对最低延迟响应进行了优化。
Amazon Nova Lite最高 300k token高性能、经济实惠的多模态处理,适用于具有实时能力的图像、视频和文本。
Claude 3.7 Sonnet最高 128k token高性能,最适合复杂推理、编码和 AI 智能体
Claude 3.5 Sonnet v2最高 200k token以优化成本在软件工程、智能体能力和人机交互方面表现突出的最新模型。
Claude 3.5 Sonnet最高 200k token高性能模型,在各种任务中以最优的速度与成本平衡提供卓越的智能和推理。
Claude 3.5 Haiku最高 200k token快速、紧凑的多模态模型,针对快速响应和无缝类人交互进行了优化
Claude 3 Sonnet最高 200k token在智能和速度之间取得平衡的多模态模型,适用于高容量部署。
Claude 3 Haiku最高 200k token紧凑、高速的多模态模型,针对快速响应和自然对话交互进行了优化
Claude 3 Opus最高 200k token最先进的多模态模型,擅长处理需要类人推理和卓越上下文理解的复杂任务。
Claude 2.1最高 200k token增强版本,具有扩展的上下文窗口,提高了可靠性,减少了长文本和 RAG 应用的幻觉。
Claude最高 100k token多功能模型,擅长复杂的对话、创意内容和精确的指令遵循。
Claude Instant最高 100k token快速、经济的模型,适用于日常任务,如对话、分析、摘要和文档问答
Llama 3.1 405B Instruct最高 128k token高级 LLM,用于合成数据生成、蒸馏和推理,适用于聊天机器人、编码和特定领域任务。
Llama 3.1 70B Instruct最高 128k token以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
Llama 3.1 8B Instruct最高 128k token具备语言理解、卓越推理和文本生成能力的先进前沿模型。
Llama 3 70B Instruct最高 8k token以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
Llama 3 8B Instruct最高 8k token具备语言理解、卓越推理和文本生成的先进前沿 LLM。
Titan Text G1 - Lite最高 4k token轻量、经济的模型,针对英语任务进行了优化,专注于摘要和内容生成,并支持微调。
Titan Text G1 - Express最高 8k token适用于通用语言任务、聊天和 RAG 应用的多功能模型,支持英语和 100 多种语言。
Cohere Command最高 4k token专门用于遵循用户指令并提供实用企业解决方案的模型。
Jurassic-2 Mid最高 8,191 token在质量和价格之间取得平衡的经济高效模型,适用于问答、摘要和内容生成等多种语言任务。
Jurassic-2 Ultra最高 8,191 token用于高级文本生成和理解的模型,在分析和内容创作等复杂任务中表现出色。
Jamba-Instruct最高 256k token具有扩展上下文窗口的模型,针对经济高效的文本生成、摘要和问答进行了优化。
Mistral 7B Instruct最高 32k token此 LLM 可以遵循指令、完成请求并生成创意文本。
Mistral 8x7B Instruct最高 32k token一个可以遵循指令、完成请求并生成创意文本的 MOE LLM。
DeepSeek R132,768 token高级推理模型
注意:使用 AWS Bedrock 前,请安装必要的依赖项
uv add "crewai[bedrock]"
代码
AWS_ACCESS_KEY_ID=<your-access-key>
AWS_SECRET_ACCESS_KEY=<your-secret-key>
AWS_DEFAULT_REGION=<your-region>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="sagemaker/<my-endpoint>"
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
MISTRAL_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="mistral/mistral-large-latest",
    temperature=0.7
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
NVIDIA_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="nvidia_nim/meta/llama3-70b-instruct",
    temperature=0.7
)
Nvidia NIM 提供了一套全面的模型,适用于从通用任务到专业应用的各种用例。
模型上下文窗口最适合
nvidia/mistral-nemo-minitron-8b-8k-instruct8,192 token为聊天机器人、虚拟助手和内容生成提供卓越准确性的先进小语言模型。
nvidia/nemotron-4-mini-hindi-4b-instruct4,096 token用于设备端推理的双语印地语-英语小语言模型,专为印地语量身定制。
nvidia/llama-3.1-nemotron-70b-instruct128k token针对回复的增强有用性进行了定制
nvidia/llama3-chatqa-1.5-8b128k token用于为聊天机器人和搜索引擎生成高质量、上下文感知响应的高级 LLM。
nvidia/llama3-chatqa-1.5-70b128k token用于为聊天机器人和搜索引擎生成高质量、上下文感知响应的高级 LLM。
nvidia/vila128k token多模态视觉语言模型,可理解文本/图像/视频并创建信息丰富的回复
nvidia/neva-224,096 token多模态视觉语言模型,可理解文本/图像并生成信息丰富的回复
nvidia/nemotron-mini-4b-instruct8,192 token通用任务
nvidia/usdcode-llama3-70b-instruct128k token回答 OpenUSD 知识查询并生成 USD-Python 代码的先进 LLM。
nvidia/nemotron-4-340b-instruct4,096 token创建模仿真实世界数据特征的多样化合成数据。
meta/codellama-70b100k token能够从自然语言生成代码,反之亦然的 LLM。
meta/llama2-70b4,096 token尖端大语言 AI 模型,能够根据提示生成文本和代码。
meta/llama3-8b-instruct8,192 token具备语言理解、卓越推理和文本生成的先进前沿 LLM。
meta/llama3-70b-instruct8,192 token以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
meta/llama-3.1-8b-instruct128k token具备语言理解、卓越推理和文本生成能力的先进前沿模型。
meta/llama-3.1-70b-instruct128k token以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
meta/llama-3.1-405b-instruct128k token高级 LLM,用于合成数据生成、蒸馏和推理,适用于聊天机器人、编码和特定领域任务。
meta/llama-3.2-1b-instruct128k token具备语言理解、卓越推理和文本生成的先进前沿小语言模型。
meta/llama-3.2-3b-instruct128k token具备语言理解、卓越推理和文本生成的先进前沿小语言模型。
meta/llama-3.2-11b-vision-instruct128k token具备语言理解、卓越推理和文本生成的先进前沿小语言模型。
meta/llama-3.2-90b-vision-instruct128k token具备语言理解、卓越推理和文本生成的先进前沿小语言模型。
google/gemma-7b8,192 token尖端文本生成模型,支持文本理解、转换和代码生成。
google/gemma-2b8,192 token尖端文本生成模型,支持文本理解、转换和代码生成。
google/codegemma-7b8,192 token基于 Google Gemma-7B 构建的尖端模型,专门用于代码生成和代码补全。
google/codegemma-1.1-7b8,192 token用于代码生成、补全、推理和指令遵循的高级编程模型。
google/recurrentgemma-2b8,192 token基于新型循环架构的语言模型,在生成长序列时可实现更快的推理。
google/gemma-2-9b-it8,192 token尖端文本生成模型,支持文本理解、转换和代码生成。
google/gemma-2-27b-it8,192 token尖端文本生成模型,支持文本理解、转换和代码生成。
google/gemma-2-2b-it8,192 token尖端文本生成模型,支持文本理解、转换和代码生成。
google/deplot512 token将绘图图像翻译成表格的单样本视觉语言理解模型。
google/paligemma8,192 token擅长理解文本和视觉输入以产生信息丰富回复的视觉语言模型。
mistralai/mistral-7b-instruct-v0.232k token此 LLM 可以遵循指令、完成请求并生成创意文本。
mistralai/mixtral-8x7b-instruct-v0.18,192 token一个可以遵循指令、完成请求并生成创意文本的 MOE LLM。
mistralai/mistral-large4,096 token创建模仿真实世界数据特征的多样化合成数据。
mistralai/mixtral-8x22b-instruct-v0.18,192 token创建模仿真实世界数据特征的多样化合成数据。
mistralai/mistral-7b-instruct-v0.332k token此 LLM 可以遵循指令、完成请求并生成创意文本。
nv-mistralai/mistral-nemo-12b-instruct128k token最先进的语言模型,用于推理、代码、多语言任务;可在单个 GPU 上运行。
mistralai/mamba-codestral-7b-v0.1256k token用于编写代码并与跨多种编程语言的任务进行交互的模型。
microsoft/phi-3-mini-128k-instruct128K token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-mini-4k-instruct4,096 token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-small-8k-instruct8,192 token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-small-128k-instruct128K token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-medium-4k-instruct4,096 token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-medium-128k-instruct128K token轻量级、最先进的开源 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3.5-mini-instruct128K token轻量级多语言 LLM,为延迟受限、内存/计算受限环境中的 AI 应用提供动力
microsoft/phi-3.5-moe-instruct128K token基于专家混合(MoE)架构的高级 LLM,可实现计算高效的内容生成
microsoft/kosmos-21,024 token开创性的多模态模型,旨在理解和推理图像中的视觉元素。
microsoft/phi-3-vision-128k-instruct128k token能够从图像进行高质量推理的尖端开放多模态模型。
microsoft/phi-3.5-vision-instruct128k token能够从图像进行高质量推理的尖端开放多模态模型。
databricks/dbrx-instruct12k token在语言理解、编码和 RAG 方面具有一流性能的通用 LLM。
snowflake/arctic1,024 token为专注于 SQL 生成和编码的企业应用提供高效率推理。
aisingapore/sea-lion-7b-instruct4,096 token旨在代表和服务东南亚语言和文化多样性的 LLM
ibm/granite-8b-code-instruct4,096 token用于代码生成、补全、解释和多轮转换的软件编程 LLM。
ibm/granite-34b-code-instruct8,192 token用于代码生成、补全、解释和多轮转换的软件编程 LLM。
ibm/granite-3.0-8b-instruct4,096 token支持 RAG、摘要、分类、代码和智能体 AI 的高级小语言模型
ibm/granite-3.0-3b-a800m-instruct4,096 token用于 RAG、摘要、实体提取和分类的高效专家混合模型
mediatek/breeze-7b-instruct4,096 token创建模仿真实世界数据特征的多样化合成数据。
upstage/solar-10.7b-instruct4,096 token在 NLP 任务中表现出色,特别是在指令遵循、推理和数学方面。
writer/palmyra-med-70b-32k32k token医疗领域准确、上下文相关回复的领先 LLM。
writer/palmyra-med-70b32k token医疗领域准确、上下文相关回复的领先 LLM。
writer/palmyra-fin-70b-32k32k token专门用于金融分析、报告和数据处理的 LLM
01-ai/yi-large32k token在英语和中文上受过训练的强大模型,适用于包括聊天机器人和创意写作在内的多种任务。
deepseek-ai/deepseek-coder-6.7b-instruct2k token强大的编码模型,在代码生成、补全和填补方面提供高级功能
rakuten/rakutenai-7b-instruct1,024 token具备语言理解、卓越推理和文本生成的先进前沿 LLM。
rakuten/rakutenai-7b-chat1,024 token具备语言理解、卓越推理和文本生成的先进前沿 LLM。
baichuan-inc/baichuan2-13b-chat4,096 token支持中英文聊天、编码、数学、指令遵循和解决测验
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
NVIDIA NIM 使您能够使用 WSL2(Windows Subsystem for Linux)在 Windows 机器上本地运行强大的 LLM。这种方法允许您利用 NVIDIA GPU 进行私密、安全且具有成本效益的 AI 推理,而无需依赖云服务。非常适合开发、测试或需要数据隐私或离线功能的生产场景。以下是设置本地 NVIDIA NIM 模型的逐步指南:
  1. 按照 NVIDIA 网站 上的安装说明操作
  2. 安装本地模型。对于 Llama 3.1-8b,请遵循 说明
  3. 配置您的 crewai 本地模型
代码
from crewai.llm import LLM

local_nvidia_nim_llm = LLM(
    model="openai/meta/llama-3.1-8b-instruct", # it's an openai-api compatible model
    base_url="https://:8000/v1",
    api_key="<your_api_key|any text if you have not configured it>", # api_key is required, but you can use any text
)

# Then you can use it in your crew:

@CrewBase
class MyCrew():
    # ...

    @agent
    def researcher(self) -> Agent:
        return Agent(
            config=self.agents_config['researcher'], # type: ignore[index]
            llm=local_nvidia_nim_llm
        )

    # ...
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
GROQ_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="groq/llama-3.2-90b-text-preview",
    temperature=0.7
)
模型上下文窗口最适合
Llama 3.1 70B/8B131,072 token高性能、大上下文任务
Llama 3.2 系列8,192 token通用任务
Mixtral 8x7B32,768 token性能与上下文平衡
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
# Required
WATSONX_URL=<your-url>
WATSONX_APIKEY=<your-apikey>
WATSONX_PROJECT_ID=<your-project-id>

# Optional
WATSONX_TOKEN=<your-token>
WATSONX_DEPLOYMENT_SPACE_ID=<your-space-id>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="watsonx/meta-llama/llama-3-1-70b-instruct",
    base_url="https://api.watsonx.ai/v1"
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
  1. 安装 Ollama: ollama.ai
  2. 运行模型:ollama run llama3
  3. 配置
代码
llm = LLM(
    model="ollama/llama3:70b",
    base_url="https://:11434"
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
FIREWORKS_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct",
    temperature=0.7
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
PERPLEXITY_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="llama-3.1-sonar-large-128k-online",
    base_url="https://api.perplexity.ai/"
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
HF_TOKEN=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct"
)
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
SAMBANOVA_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="sambanova/Meta-Llama-3.1-8B-Instruct",
    temperature=0.7
)
模型上下文窗口最适合
Llama 3.1 70B/8B最高 131,072 token高性能、大上下文任务
Llama 3.1 405B8,192 token高性能和输出质量
Llama 3.2 系列8,192 token通用、多模态任务
Llama 3.3 70B最高 131,072 token高性能和输出质量
Qwen2 系列8,192 token高性能和输出质量
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
# Required
CEREBRAS_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="cerebras/llama3.1-70b",
    temperature=0.7,
    max_tokens=8192
)
Cerebras 特性
  • 快速推理速度
  • 具有竞争力的定价
  • 速度与质量的良好平衡
  • 支持长上下文窗口
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
OPENROUTER_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="openrouter/deepseek/deepseek-r1",
    base_url="https://openrouter.ai/api/v1",
    api_key=OPENROUTER_API_KEY
)
Open Router 模型
  • openrouter/deepseek/deepseek-r1
  • openrouter/deepseek/deepseek-chat
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'
在您的 .env 文件中设置以下环境变量:
代码
NEBIUS_API_KEY=<your-api-key>
在 CrewAI 项目中的示例用法
代码
llm = LLM(
    model="nebius/Qwen/Qwen3-30B-A3B"
)
Nebius AI Studio 特性
  • 大量开源模型集合
  • 更高的速率限制
  • 具有竞争力的定价
  • 速度与质量的良好平衡
注意:此提供商使用 LiteLLM。请将其添加为项目的依赖项
uv add 'crewai[litellm]'

流式响应

CrewAI 支持来自 LLM 的流式响应,允许您的应用程序在生成输出时实时接收和处理它们。
在初始化 LLM 时将 stream 参数设置为 True 以启用流式传输
from crewai import LLM

# Create an LLM with streaming enabled
llm = LLM(
    model="openai/gpt-4o",
    stream=True  # Enable streaming
)
启用流式传输后,响应会作为生成的块进行交付,从而创造更具响应性的用户体验。

异步 LLM 调用

CrewAI 支持异步 LLM 调用,以提高 AI 工作流的性能和并发性。异步调用允许您并发运行多个 LLM 请求而无需阻塞,使其非常适合高吞吐量应用和并行智能体操作。
使用 acall 方法进行异步 LLM 请求
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())
acall 方法支持与同步 call 方法相同的所有参数,包括消息、工具和回调。

结构化 LLM 调用

CrewAI 允许您定义使用 Pydantic 模型的 response_format,从而支持来自 LLM 调用的结构化响应。这使框架能够自动解析和验证输出,从而更轻松地将响应集成到您的应用程序中,而无需手动后处理。例如,您可以定义一个 Pydantic 模型来表示预期的响应结构,并在实例化 LLM 时将其作为 response_format 传递。该模型随后将被用于将 LLM 输出转换为结构化的 Python 对象。
代码
from crewai import LLM

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


llm = LLM(model="gpt-4o", 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')

高级功能与优化

了解如何充分利用您的 LLM 配置
CrewAI 包含智能上下文管理功能
from crewai import LLM

# CrewAI automatically handles:
# 1. Token counting and tracking
# 2. Content summarization when needed
# 3. Task splitting for large contexts

llm = LLM(
    model="gpt-4",
    max_tokens=4000,  # Limit response length
)
上下文管理的最佳实践:
  1. 选择具有适当上下文窗口的模型
  2. 尽可能预处理长输入
  3. 对大型文档使用分块
  4. 监控 token 使用情况以优化成本
1

Token 使用优化

为您的任务选择正确的上下文窗口
  • 小任务(最高 4K token):标准模型
  • 中等任务(4K-32K 之间):增强模型
  • 大任务(超过 32K):大上下文模型
# Configure model with appropriate settings
llm = LLM(
    model="openai/gpt-4-turbo-preview",
    temperature=0.7,    # Adjust based on task
    max_tokens=4096,    # Set based on output needs
    timeout=300        # Longer timeout for complex tasks
)
  • 对于事实性回答,使用较低的温度(0.1 到 0.3)
  • 对于创意任务,使用较高的温度(0.7 到 0.9)
2

最佳实践

  1. 监控 token 使用情况
  2. 实施速率限制
  3. 尽可能使用缓存
  4. 设置适当的 max_tokens 限制
请记得定期监控您的 token 使用情况,并根据需要调整配置以优化成本和性能。
CrewAI 在内部为 LLM 调用使用原生 SDK,这允许您舍弃特定用例不需要的额外参数。这有助于简化代码并降低 LLM 配置的复杂性。例如,如果您不需要发送 stop 参数,您可以直接在 LLM 调用中省略它。
from crewai import LLM
import os

os.environ["OPENAI_API_KEY"] = "<api-key>"

o3_llm = LLM(
    model="o3",
    drop_params=True,
    additional_drop_params=["stop"]
)
CrewAI 为多个提供商提供消息拦截器,允许您在传输层挂载到请求/响应周期中。支持的提供商:
  • ✅ OpenAI
  • ✅ Anthropic
基本用法
import httpx
from crewai import LLM
from crewai.llms.hooks import BaseInterceptor

class CustomInterceptor(BaseInterceptor[httpx.Request, httpx.Response]):
"""Custom interceptor to modify requests and responses."""

def on_outbound(self, request: httpx.Request) -> httpx.Request:
    """Print request before sending to the LLM provider."""
    print(request)
    return request

def on_inbound(self, response: httpx.Response) -> httpx.Response:
    """Process response after receiving from the LLM provider."""
    print(f"Status: {response.status_code}")
    print(f"Response time: {response.elapsed}")
    return response

# Use the interceptor with an LLM
llm = LLM(
model="openai/gpt-4o",
interceptor=CustomInterceptor()
)
重要说明
  • 两种方法都必须返回接收到的对象或对象类型。
  • 修改接收到的对象可能会导致意外行为或应用程序崩溃。
  • 并非所有提供商都支持拦截器 - 请检查上面的支持提供商列表
拦截器在传输层运行。这特别适用于:
  • 消息转换和过滤
  • 调试 API 交互

常见问题及解决方案

大多数身份验证问题可以通过检查 API 密钥格式和环境变量名称来解决。
# OpenAI
OPENAI_API_KEY=sk-...

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...