跳转到主要内容

概述

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

什么是 LLM?

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

LLM 基础

大语言模型是基于海量文本数据训练的 AI 系统。它们为您的 CrewAI 代理提供智能,使其能够理解并生成类似人类的文本。

上下文窗口

上下文窗口决定了 LLM 一次可以处理多少文本。更大的窗口(例如 128K tokens)可以容纳更多上下文,但可能更昂贵且速度更慢。

温度 (Temperature)

温度(0.0 到 1.0)控制响应的随机性。较低的值(例如 0.2)会产生更集中、确定性的输出,而较高的值(例如 0.8)会增加创造性和可变性。

提供商选择

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

设置您的 LLM

在 CrewAI 代码中,有不同的地方可以指定要使用的模型。一旦您指定了所使用的模型,您将需要为您使用的每个模型提供商提供配置(例如 API 密钥)。请参阅提供商配置示例部分,了解您的提供商。
  • 1. 环境变量
  • 2. YAML 配置
  • 3. 直接在代码中配置
最简单的入门方式。直接在您的环境中设置模型,可以通过 .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 支持众多 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 模式的结构化输出
  • 支持流式传输以实现实时响应
  • Token 使用情况跟踪
  • 支持停止序列(o1 模型除外)
  • 用于 token 级别洞察的对数概率
  • o1 模型的推理工作量控制
支持的模型
模型上下文窗口最适用于
gpt-4.1100 万 tokens具有增强功能的最新模型
gpt-4.1-mini100 万 tokens具有大上下文的高效版本
gpt-4.1-nano100 万 tokens超高效变体
gpt-4o128,000 tokens为速度和智能优化
gpt-4o-mini200,000 tokens具有大上下文的成本效益模型
gpt-4-turbo128,000 tokens长篇内容,文档分析
gpt-48,192 tokens高精度任务,复杂推理
o1200,000 tokens高级推理,复杂问题解决
o1-preview128,000 tokens推理能力预览版
o1-mini128,000 tokens高效推理模型
o3-mini200,000 tokens轻量级推理模型
o4-mini200,000 tokens下一代高效推理
注意:要使用 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文本文本
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
)
支持的环境变量
  • ANTHROPIC_API_KEY:您的 Anthropic API 密钥(必需)
功能
  • 对 Claude 3+ 模型的原生工具使用支持
  • 支持流式传输以实现实时响应
  • 自动处理系统消息
  • 用于控制输出的停止序列
  • Token 使用情况跟踪
  • 多轮工具使用对话
重要说明
  • max_tokens 是所有 Anthropic 模型的必需参数
  • Claude 使用 stop_sequences 而不是 stop
  • 系统消息与对话消息分开处理
  • 第一条消息必须来自用户(自动处理)
  • 消息必须在用户和助手之间交替
支持的模型
模型上下文窗口最适用于
claude-3-7-sonnet200,000 tokens高级推理和智能体任务
claude-3-5-sonnet-20241022200,000 tokens性能最佳的最新 Sonnet
claude-3-5-haiku200,000 tokens快速、紧凑的模型,用于快速响应
claude-3-opus200,000 tokens处理复杂任务能力最强的模型
claude-3-sonnet200,000 tokens在智能和速度之间取得平衡
claude-3-haiku200,000 tokens处理简单任务速度最快
claude-2.1200,000 tokens扩展上下文,减少幻觉
claude-2100,000 tokens适用于各种任务的通用模型
claude-instant100,000 tokens快速、经济实惠,适用于日常任务
注意:要使用 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>

# Optional - for Vertex AI
GOOGLE_CLOUD_PROJECT=<your-project-id>
GOOGLE_CLOUD_LOCATION=<location>  # Defaults to us-central1
GOOGLE_GENAI_USE_VERTEXAI=true  # Set to use Vertex AI
基本用法
代码
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 配置
代码
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 必需)
  • GOOGLE_CLOUD_PROJECT:Google Cloud 项目 ID(用于 Vertex AI)
  • GOOGLE_CLOUD_LOCATION:GCP 位置(默认为 us-central1
  • GOOGLE_GENAI_USE_VERTEXAI:设置为 true 以使用 Vertex AI
功能
  • 支持 Gemini 1.5+ 和 2.x 模型的原生函数调用
  • 支持流式传输以实现实时响应
  • 多模态能力(文本、图像、视频)
  • 安全设置配置
  • 支持 Gemini API 和 Vertex AI
  • 自动系统指令处理
  • Token 使用情况跟踪
Gemini 模型:Google 提供一系列功能强大的模型,针对不同的使用场景进行了优化。
模型上下文窗口最适用于
gemini-2.5-flash100 万 tokens自适应思维,成本效益高
gemini-2.5-pro100 万 tokens增强的思维与推理能力,多模态理解
gemini-2.0-flash100 万 tokens新一代功能、速度、思维
gemini-2.0-flash-thinking32,768 tokens带思维过程的高级推理
gemini-2.0-flash-lite100 万 tokens高成本效益和低延迟
gemini-1.5-pro200 万 tokens性能最佳,逻辑推理,编码
gemini-1.5-flash100 万 tokens平衡的多模态模型,适用于大多数任务
gemini-1.5-flash-8b100 万 tokens速度最快,成本效益最高
gemini-1.0-pro32,768 tokens上一代模型
Gemma 模型:Gemini API 还支持托管在 Google 基础设施上的 Gemma 模型
模型上下文窗口最适用于
gemma-3-1b32,000 tokens超轻量级任务
gemma-3-4b128,000 tokens高效的通用任务
gemma-3-12b128,000 tokens平衡的性能和效率
gemma-3-27b128,000 tokens高性能任务
注意:要使用 Google Gemini,请安装所需的依赖项
uv add "crewai[google-genai]"
完整的模型列表可在 Gemini 模型文档中找到。
从您的 Google Cloud Console 获取凭据并将其保存到 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-17100 万 tokens自适应思维,成本效益高
gemini-2.5-pro-preview-05-06100 万 tokens增强的思维和推理能力,多模态理解,高级编码等
gemini-2.0-flash100 万 tokens新一代特性、速度、思维和实时流式处理
gemini-2.0-flash-lite100 万 tokens高成本效益和低延迟
gemini-1.5-flash100 万 tokens平衡的多模态模型,适用于大多数任务
gemini-1.5-flash-8B100 万 tokens速度最快、成本效益最高,适用于高频任务
gemini-1.5-pro200 万 tokens性能最佳,适用于各种推理任务,包括逻辑推理、编码和创意协作
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 推理端点
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
基本用法
代码
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
功能
  • 通过 Converse API 支持原生工具调用
  • 流式和非流式响应
  • 带有重试逻辑的全面错误处理
  • 用于内容过滤的护栏配置
  • 通过 additional_model_request_fields 实现模型特定参数
  • Token 使用情况跟踪和停止原因记录
  • 支持所有 Bedrock 基础模型
  • 自动对话格式处理
重要说明
  • 使用现代 Converse API 实现统一的模型访问
  • 自动处理模型特定的对话要求
  • 系统消息与对话分开处理
  • 第一条消息必须来自用户(自动处理)
  • 一些模型(如 Cohere)要求对话以用户消息结束
Amazon Bedrock 是一项托管服务,通过统一的 API 提供对来自顶级 AI 公司的多个基础模型的访问。
模型上下文窗口最适用于
Amazon Nova Pro高达 300k tokens高性能,平衡了各种任务的准确性、速度和成本效益。
Amazon Nova Micro高达 128k tokens高性能、经济高效的纯文本模型,专为最低延迟响应而优化。
Amazon Nova Lite高达 300k tokens高性能、经济实惠的多模态处理,适用于图像、视频和文本,具有实时能力。
Claude 3.7 Sonnet高达 128k tokens高性能,最适用于复杂推理、编码和 AI 代理
Claude 3.5 Sonnet v2高达 200k tokens最先进的模型,专门用于软件工程、智能体能力和计算机交互,成本优化。
Claude 3.5 Sonnet高达 200k tokens高性能模型,在各种任务中提供卓越的智能和推理能力,并具有最佳的速度-成本平衡。
Claude 3.5 Haiku高达 200k tokens快速、紧凑的多模态模型,专为快速响应和无缝的类人交互而优化
Claude 3 Sonnet高达 200k tokens多模态模型,平衡智能与速度,适用于大批量部署。
Claude 3 Haiku高达 200k tokens紧凑、高速的多模态模型,为快速响应和自然的对话交互而优化
Claude 3 Opus高达 200k tokens最先进的多模态模型,擅长处理复杂任务,具有类人推理和卓越的上下文理解能力。
Claude 2.1高达 200k tokens增强版本,具有扩展的上下文窗口、更高的可靠性和更少的幻觉,适用于长篇和 RAG 应用
Claude高达 100k tokens功能多样的模型,在复杂对话、创意内容和精确指令遵循方面表现出色。
Claude Instant高达 100k tokens快速、经济高效的模型,适用于日常任务,如对话、分析、摘要和文档问答
Llama 3.1 405B Instruct高达 128k tokens先进的 LLM,用于合成数据生成、蒸馏和推理,适用于聊天机器人、编码和特定领域任务。
Llama 3.1 70B Instruct高达 128k tokens以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
Llama 3.1 8B Instruct高达 128k tokens先进的 state-of-the-art 模型,具有语言理解、卓越的推理和文本生成能力。
Llama 3 70B Instruct高达 8k tokens以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
Llama 3 8B Instruct高达 8k tokens先进的 state-of-the-art LLM,具有语言理解、卓越的推理和文本生成能力。
Titan Text G1 - Lite高达 4k tokens轻量级、经济高效的模型,专为英语任务和微调而优化,重点是摘要和内容生成。
Titan Text G1 - Express高达 8k tokens适用于通用语言任务、聊天和 RAG 应用的多功能模型,支持英语和 100 多种语言。
Cohere Command高达 4k tokens专门用于遵循用户命令并提供实用企业解决方案的模型。
Jurassic-2 Mid高达 8,191 tokens经济高效的模型,平衡质量和可负担性,适用于各种语言任务,如问答、摘要和内容生成。
Jurassic-2 Ultra高达 8,191 tokens用于高级文本生成和理解的模型,在复杂任务(如分析和内容创作)中表现出色。
Jamba-Instruct高达 256k tokens具有扩展上下文窗口的模型,专为经济高效的文本生成、摘要和问答而优化。
Mistral 7B Instruct高达 32k tokens此 LLM 能够遵循指令、完成请求并生成创意文本。
Mistral 8x7B Instruct高达 32k tokens一个 MOE LLM,能够遵循指令、完成请求并生成创意文本。
DeepSeek R132,768 tokens高级推理模型
注意:要使用 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>"
)
在您的 .env 文件中设置以下环境变量
代码
MISTRAL_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="mistral/mistral-large-latest",
    temperature=0.7
)
在您的 .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 tokens最先进的小型语言模型,为聊天机器人、虚拟助手和内容生成提供卓越的准确性。
nvidia/nemotron-4-mini-hindi-4b-instruct4,096 tokens一个用于设备上推理的印地语-英语双语 SLM,专为印地语量身定制。
nvidia/llama-3.1-nemotron-70b-instruct128k tokens为增强响应的帮助性而定制
nvidia/llama3-chatqa-1.5-8b128k tokens先进的 LLM,为聊天机器人和搜索引擎生成高质量、上下文感知的响应。
nvidia/llama3-chatqa-1.5-70b128k tokens先进的 LLM,为聊天机器人和搜索引擎生成高质量、上下文感知的响应。
nvidia/vila128k tokens多模态视觉语言模型,能够理解文本/图像/视频并创建信息丰富的响应
nvidia/neva-224,096 tokens多模态视觉语言模型,能够理解文本/图像并生成信息丰富的响应
nvidia/nemotron-mini-4b-instruct8,192 tokens通用任务
nvidia/usdcode-llama3-70b-instruct128k tokens最先进的 LLM,能够回答 OpenUSD 知识查询并生成 USD-Python 代码。
nvidia/nemotron-4-340b-instruct4,096 tokens创建模仿真实世界数据特征的多样化合成数据。
meta/codellama-70b100k tokens能够从自然语言生成代码以及反向操作的 LLM。
meta/llama2-70b4,096 tokens尖端的大型语言 AI 模型,能够响应提示生成文本和代码。
meta/llama3-8b-instruct8,192 tokens先进的 state-of-the-art LLM,具有语言理解、卓越的推理和文本生成能力。
meta/llama3-70b-instruct8,192 tokens以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
meta/llama-3.1-8b-instruct128k tokens先进的 state-of-the-art 模型,具有语言理解、卓越的推理和文本生成能力。
meta/llama-3.1-70b-instruct128k tokens以卓越的上下文理解、推理和文本生成能力驱动复杂对话。
meta/llama-3.1-405b-instruct128k tokens先进的 LLM,用于合成数据生成、蒸馏和推理,适用于聊天机器人、编码和特定领域任务。
meta/llama-3.2-1b-instruct128k tokens先进的 state-of-the-art 小型语言模型,具有语言理解、卓越的推理和文本生成能力。
meta/llama-3.2-3b-instruct128k tokens先进的 state-of-the-art 小型语言模型,具有语言理解、卓越的推理和文本生成能力。
meta/llama-3.2-11b-vision-instruct128k tokens先进的 state-of-the-art 小型语言模型,具有语言理解、卓越的推理和文本生成能力。
meta/llama-3.2-90b-vision-instruct128k tokens先进的 state-of-the-art 小型语言模型,具有语言理解、卓越的推理和文本生成能力。
google/gemma-7b8,192 tokens尖端的文本生成模型,用于文本理解、转换和代码生成。
google/gemma-2b8,192 tokens尖端的文本生成模型,用于文本理解、转换和代码生成。
google/codegemma-7b8,192 tokens基于 Google 的 Gemma-7B 构建的尖端模型,专门用于代码生成和代码补全。
google/codegemma-1.1-7b8,192 tokens用于代码生成、补全、推理和指令遵循的高级编程模型。
google/recurrentgemma-2b8,192 tokens新颖的基于循环架构的语言模型,在生成长序列时具有更快的推理速度。
google/gemma-2-9b-it8,192 tokens尖端的文本生成模型,用于文本理解、转换和代码生成。
google/gemma-2-27b-it8,192 tokens尖端的文本生成模型,用于文本理解、转换和代码生成。
google/gemma-2-2b-it8,192 tokens尖端的文本生成模型,用于文本理解、转换和代码生成。
google/deplot512 tokens一种单样本视觉语言理解模型,可将图表图像转换为表格。
google/paligemma8,192 tokens视觉语言模型,擅长理解文本和视觉输入以产生信息丰富的响应。
mistralai/mistral-7b-instruct-v0.232k tokens此 LLM 能够遵循指令、完成请求并生成创意文本。
mistralai/mixtral-8x7b-instruct-v0.18,192 tokens一个 MOE LLM,能够遵循指令、完成请求并生成创意文本。
mistralai/mistral-large4,096 tokens创建模仿真实世界数据特征的多样化合成数据。
mistralai/mixtral-8x22b-instruct-v0.18,192 tokens创建模仿真实世界数据特征的多样化合成数据。
mistralai/mistral-7b-instruct-v0.332k tokens此 LLM 能够遵循指令、完成请求并生成创意文本。
nv-mistralai/mistral-nemo-12b-instruct128k tokens最先进的语言模型,用于推理、代码、多语言任务;可在单个 GPU 上运行。
mistralai/mamba-codestral-7b-v0.1256k tokens用于在多种编程语言和任务中编写和交互代码的模型。
microsoft/phi-3-mini-128k-instruct128K tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-mini-4k-instruct4,096 tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-small-8k-instruct8,192 tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-small-128k-instruct128K tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-medium-4k-instruct4,096 tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3-medium-128k-instruct128K tokens轻量级、最先进的开放 LLM,具有强大的数学和逻辑推理能力。
microsoft/phi-3.5-mini-instruct128K tokens轻量级多语言 LLM,为延迟敏感、内存/计算受限环境中的 AI 应用提供动力
microsoft/phi-3.5-moe-instruct128K tokens基于混合专家架构的先进 LLM,可实现计算高效的内容生成
microsoft/kosmos-21,024 tokens开创性的多模态模型,旨在理解和推理图像中的视觉元素。
microsoft/phi-3-vision-128k-instruct128k tokens尖端的开放多模态模型,擅长从图像中进行高质量推理。
microsoft/phi-3.5-vision-instruct128k tokens尖端的开放多模态模型,擅长从图像中进行高质量推理。
databricks/dbrx-instruct12k tokens一个通用的 LLM,在语言理解、编码和 RAG 方面具有最先进的性能。
snowflake/arctic1,024 tokens为专注于 SQL 生成和编码的企业应用提供高效率的推理。
aisingapore/sea-lion-7b-instruct4,096 tokens代表并服务于东南亚语言和文化多样性的 LLM
ibm/granite-8b-code-instruct4,096 tokens用于代码生成、补全、解释和多轮转换的软件编程 LLM。
ibm/granite-34b-code-instruct8,192 tokens用于代码生成、补全、解释和多轮转换的软件编程 LLM。
ibm/granite-3.0-8b-instruct4,096 tokens支持 RAG、摘要、分类、代码和智能体 AI 的高级小型语言模型
ibm/granite-3.0-3b-a800m-instruct4,096 tokens用于 RAG、摘要、实体提取和分类的高效混合专家模型
mediatek/breeze-7b-instruct4,096 tokens创建模仿真实世界数据特征的多样化合成数据。
upstage/solar-10.7b-instruct4,096 tokens在 NLP 任务中表现出色,特别是在指令遵循、推理和数学方面。
writer/palmyra-med-70b-32k32k tokens在医疗领域提供准确、上下文相关响应的领先 LLM。
writer/palmyra-med-70b32k tokens在医疗领域提供准确、上下文相关响应的领先 LLM。
writer/palmyra-fin-70b-32k32k tokens专门用于财务分析、报告和数据处理的 LLM
01-ai/yi-large32k tokens在英语和中文上训练的强大模型,适用于包括聊天机器人和创意写作在内的多种任务。
deepseek-ai/deepseek-coder-6.7b-instruct2k tokens强大的编码模型,在代码生成、补全和填充方面提供高级功能
rakuten/rakutenai-7b-instruct1,024 tokens先进的 state-of-the-art LLM,具有语言理解、卓越的推理和文本生成能力。
rakuten/rakutenai-7b-chat1,024 tokens先进的 state-of-the-art LLM,具有语言理解、卓越的推理和文本生成能力。
baichuan-inc/baichuan2-13b-chat4,096 tokens支持中英文聊天、编码、数学、指令遵循、解题
NVIDIA NIM 使您能够使用 WSL2(适用于 Linux 的 Windows 子系统)在您的 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
        )

    # ...
在您的 .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 tokens高性能、大上下文任务
Llama 3.2 系列8,192 tokens通用任务
Mixtral 8x7B32,768 tokens平衡的性能和上下文
在您的 .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"
)
  1. 安装 Ollama: ollama.ai
  2. 运行一个模型:ollama run llama3
  3. 配置
代码
llm = LLM(
    model="ollama/llama3:70b",
    base_url="https://:11434"
)
在您的 .env 文件中设置以下环境变量
代码
FIREWORKS_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="fireworks_ai/accounts/fireworks/models/llama-v3-70b-instruct",
    temperature=0.7
)
在您的 .env 文件中设置以下环境变量
代码
PERPLEXITY_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="llama-3.1-sonar-large-128k-online",
    base_url="https://api.perplexity.ai/"
)
在您的 .env 文件中设置以下环境变量
代码
HF_TOKEN=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="huggingface/meta-llama/Meta-Llama-3.1-8B-Instruct"
)
在您的 .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 tokens高性能、大上下文任务
Llama 3.1 405B8,192 tokens高性能和高质量输出
Llama 3.2 系列8,192 tokens通用、多模态任务
Llama 3.3 70B高达 131,072 tokens高性能和高质量输出
Qwen2 家族8,192 tokens高性能和高质量输出
在您的 .env 文件中设置以下环境变量
代码
# Required
CEREBRAS_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="cerebras/llama3.1-70b",
    temperature=0.7,
    max_tokens=8192
)
Cerebras 特性
  • 快速的推理速度
  • 有竞争力的价格
  • 速度和质量的良好平衡
  • 支持长上下文窗口
在您的 .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
在您的 .env 文件中设置以下环境变量
代码
NEBIUS_API_KEY=<your-api-key>
在您的 CrewAI 项目中的使用示例
代码
llm = LLM(
    model="nebius/Qwen/Qwen3-30B-A3B"
)
Nebius AI Studio 特性
  • 大量开源模型集合
  • 更高的速率限制
  • 有竞争力的价格
  • 速度和质量的良好平衡

流式响应

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 支持通过允许您使用 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 tokens):标准模型
  • 中型任务(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 内部使用原生 SDK 进行 LLM 调用,这允许您省略特定用例中不需要的额外参数。这有助于简化您的代码并降低 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"]
)

常见问题与解决方案

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

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...