diff --git a/docs/edge/ar/concepts/llms.mdx b/docs/edge/ar/concepts/llms.mdx
index a2b3d9653a..edf997a475 100644
--- a/docs/edge/ar/concepts/llms.mdx
+++ b/docs/edge/ar/concepts/llms.mdx
@@ -38,7 +38,7 @@ mode: "wide"
أبسط طريقة للبدء. عيّن النموذج في بيئتك مباشرة، من خلال ملف `.env` أو في كود تطبيقك. إذا استخدمت `crewai create` لبدء مشروعك، سيكون مُعيّنًا بالفعل.
```bash .env
- MODEL=provider/model-id # e.g. openai/gpt-5.6-terra
+ MODEL=provider/model-id # e.g. openai/gpt-5.6-luna
# Be sure to set your API keys here too. See the Provider
# section below.
@@ -133,7 +133,7 @@ mode: "wide"
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
api_key="your-api-key", # Or set OPENAI_API_KEY
reasoning_effort="medium",
max_completion_tokens=4000
@@ -145,7 +145,7 @@ mode: "wide"
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
api_key="your-api-key",
base_url="https://api.openai.com/v1", # Optional custom endpoint
organization="org-...", # Optional organization ID
@@ -169,7 +169,7 @@ mode: "wide"
summary: str
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
)
```
@@ -1027,7 +1027,7 @@ mode: "wide"
# Create an LLM with streaming enabled
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
stream=True # Enable streaming
)
```
@@ -1077,7 +1077,7 @@ mode: "wide"
my_listener = MyCustomListener()
- llm = LLM(model="openai/gpt-5.6-terra", stream=True)
+ llm = LLM(model="openai/gpt-5.6-luna", stream=True)
researcher = Agent(
role="About User",
@@ -1168,7 +1168,7 @@ class Dog(BaseModel):
breed: str
-llm = LLM(model="openai/gpt-5.6-terra", response_format=Dog)
+llm = LLM(model="openai/gpt-5.6-luna", response_format=Dog)
response = llm.call(
"Analyze the following messages and return the name, age, and breed. "
@@ -1197,7 +1197,7 @@ print(response)
# 3. Task splitting for large contexts
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
max_completion_tokens=4000, # Limit response length
)
```
@@ -1222,7 +1222,7 @@ print(response)
```python
# Configure model with appropriate settings
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4096,
timeout=300
diff --git a/docs/edge/ar/learn/llm-connections.mdx b/docs/edge/ar/learn/llm-connections.mdx
index d748d115e9..406b4a046d 100644
--- a/docs/edge/ar/learn/llm-connections.mdx
+++ b/docs/edge/ar/learn/llm-connections.mdx
@@ -10,7 +10,7 @@ mode: "wide"
يتصل CrewAI بنماذج اللغة الكبيرة من خلال تكاملات SDK الأصلية لأكثر المزودين شيوعاً (OpenAI وAnthropic وGoogle Gemini وAzure وAWS Bedrock)، ويستخدم LiteLLM كاحتياط مرن لجميع المزودين الآخرين.
- افتراضياً، يستخدم CrewAI نموذج `gpt-4o-mini`. يتم تحديد ذلك بواسطة متغير البيئة `OPENAI_MODEL_NAME`، الذي يكون قيمته الافتراضية "gpt-4o-mini" إذا لم يتم تعيينه.
+ افتراضياً، يستخدم CrewAI نموذج `gpt-5.6-luna`. يتم تحديد ذلك بواسطة متغير البيئة `OPENAI_MODEL_NAME`، الذي يكون قيمته الافتراضية "gpt-5.6-luna" إذا لم يتم تعيينه.
يمكنك بسهولة إعداد وكلائك لاستخدام نموذج أو مزود مختلف كما هو موضح في هذا الدليل.
diff --git a/docs/edge/en/concepts/llms.mdx b/docs/edge/en/concepts/llms.mdx
index 02fb973140..1ec25445d2 100644
--- a/docs/edge/en/concepts/llms.mdx
+++ b/docs/edge/en/concepts/llms.mdx
@@ -41,7 +41,7 @@ There are different places in CrewAI code where you can specify the model to use
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.
```bash .env
- MODEL=provider/model-id # e.g. openai/gpt-5.6-terra
+ MODEL=provider/model-id # e.g. openai/gpt-5.6-luna
# Be sure to set your API keys here too. See the Provider
# section below.
@@ -142,7 +142,7 @@ In this section, you'll find detailed examples that help you select, configure,
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
api_key="your-api-key", # Or set OPENAI_API_KEY
reasoning_effort="medium",
max_completion_tokens=4000
@@ -166,7 +166,7 @@ In this section, you'll find detailed examples that help you select, configure,
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
api_key="your-api-key",
base_url="https://api.openai.com/v1", # Optional custom endpoint
organization="org-...", # Optional organization ID
@@ -190,7 +190,7 @@ In this section, you'll find detailed examples that help you select, configure,
summary: str
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
)
```
@@ -1170,7 +1170,7 @@ CrewAI supports streaming responses from LLMs, allowing your application to rece
# Create an LLM with streaming enabled
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
stream=True # Enable streaming
)
```
@@ -1220,7 +1220,7 @@ CrewAI supports streaming responses from LLMs, allowing your application to rece
my_listener = MyCustomListener()
- llm = LLM(model="openai/gpt-5.6-terra", stream=True)
+ llm = LLM(model="openai/gpt-5.6-luna", stream=True)
researcher = Agent(
role="About User",
@@ -1313,7 +1313,7 @@ class Dog(BaseModel):
breed: str
-llm = LLM(model="openai/gpt-5.6-terra", response_format=Dog)
+llm = LLM(model="openai/gpt-5.6-luna", response_format=Dog)
response = llm.call(
"Analyze the following messages and return the name, age, and breed. "
@@ -1342,7 +1342,7 @@ Learn how to get the most out of your LLM configuration:
# 3. Task splitting for large contexts
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
max_completion_tokens=4000, # Limit response length
)
```
@@ -1367,7 +1367,7 @@ Learn how to get the most out of your LLM configuration:
```python
# Configure model with appropriate settings
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4096,
timeout=300
diff --git a/docs/edge/en/learn/llm-connections.mdx b/docs/edge/en/learn/llm-connections.mdx
index 2b7a5d278b..8dda4c638a 100644
--- a/docs/edge/en/learn/llm-connections.mdx
+++ b/docs/edge/en/learn/llm-connections.mdx
@@ -10,7 +10,7 @@ mode: "wide"
CrewAI connects to LLMs through native SDK integrations for the most popular providers (OpenAI, Anthropic, Google Gemini, Azure, and AWS Bedrock), and uses LiteLLM as a flexible fallback for all other providers.
- By default, CrewAI uses the `gpt-4o-mini` model. This is determined by the `OPENAI_MODEL_NAME` environment variable, which defaults to "gpt-4o-mini" if not set.
+ By default, CrewAI uses the `gpt-5.6-luna` model. This is determined by the `OPENAI_MODEL_NAME` environment variable, which defaults to "gpt-5.6-luna" if not set.
You can easily configure your agents to use a different model or provider as described in this guide.
diff --git a/docs/edge/ko/concepts/llms.mdx b/docs/edge/ko/concepts/llms.mdx
index 760377ac12..a428bb0b9b 100644
--- a/docs/edge/ko/concepts/llms.mdx
+++ b/docs/edge/ko/concepts/llms.mdx
@@ -37,7 +37,7 @@ CrewAI 코드 내에는 사용할 모델을 지정할 수 있는 여러 위치
가장 간단하게 시작할 수 있는 방법입니다. `.env` 파일이나 앱 코드에서 환경 변수로 직접 모델을 설정할 수 있습니다. `crewai create`를 사용해 프로젝트를 부트스트랩했다면 이미 설정되어 있을 수 있습니다.
```bash .env
- MODEL=provider/model-id # e.g. openai/gpt-5.6-terra
+ MODEL=provider/model-id # e.g. openai/gpt-5.6-luna
# 반드시 여기에서 API 키도 설정하세요. 아래 제공자
# 섹션을 참고하세요.
@@ -133,7 +133,7 @@ CrewAI는 고유한 기능, 인증 방법, 모델 역량을 제공하는 다양
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4000
)
@@ -770,7 +770,7 @@ CrewAI는 LLM의 스트리밍 응답을 지원하여, 애플리케이션이 출
# 스트리밍이 활성화된 LLM 생성
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
stream=True # 스트리밍 활성화
)
```
@@ -820,7 +820,7 @@ CrewAI는 LLM의 스트리밍 응답을 지원하여, 애플리케이션이 출
my_listener = MyCustomListener()
- llm = LLM(model="openai/gpt-5.6-terra", stream=True)
+ llm = LLM(model="openai/gpt-5.6-luna", stream=True)
researcher = Agent(
role="About User",
@@ -869,7 +869,7 @@ class Dog(BaseModel):
breed: str
-llm = LLM(model="openai/gpt-5.6-terra", response_format=Dog)
+llm = LLM(model="openai/gpt-5.6-luna", response_format=Dog)
response = llm.call(
"Analyze the following messages and return the name, age, and breed. "
@@ -898,7 +898,7 @@ LLM 설정을 최대한 활용하는 방법을 알아보세요:
# 3. 큰 컨텍스트에 대한 작업 분할
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
max_completion_tokens=4000, # 응답 길이 제한
)
```
@@ -923,7 +923,7 @@ LLM 설정을 최대한 활용하는 방법을 알아보세요:
```python
# 모델을 적절한 설정으로 구성
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4096,
timeout=300
diff --git a/docs/edge/ko/learn/llm-connections.mdx b/docs/edge/ko/learn/llm-connections.mdx
index 6976ab8e03..76f9048d62 100644
--- a/docs/edge/ko/learn/llm-connections.mdx
+++ b/docs/edge/ko/learn/llm-connections.mdx
@@ -10,7 +10,7 @@ mode: "wide"
CrewAI는 가장 인기 있는 제공자(OpenAI, Anthropic, Google Gemini, Azure, AWS Bedrock)에 대해 네이티브 SDK 통합을 통해 LLM에 연결하며, 그 외 모든 제공자에 대해서는 LiteLLM을 유연한 폴백으로 사용합니다.
- 기본적으로 CrewAI는 `gpt-4o-mini` 모델을 사용합니다. 이는 `OPENAI_MODEL_NAME` 환경 변수에 의해 결정되며, 설정되지 않은 경우 기본값은 "gpt-4o-mini"입니다.
+ 기본적으로 CrewAI는 `gpt-5.6-luna` 모델을 사용합니다. 이는 `OPENAI_MODEL_NAME` 환경 변수에 의해 결정되며, 설정되지 않은 경우 기본값은 "gpt-5.6-luna"입니다.
본 가이드에 설명된 대로 다른 모델이나 공급자를 사용하도록 에이전트를 쉽게 설정할 수 있습니다.
diff --git a/docs/edge/pt-BR/concepts/llms.mdx b/docs/edge/pt-BR/concepts/llms.mdx
index c4cf18ecf5..f1a3094159 100644
--- a/docs/edge/pt-BR/concepts/llms.mdx
+++ b/docs/edge/pt-BR/concepts/llms.mdx
@@ -37,7 +37,7 @@ Existem diferentes locais no código do CrewAI onde você pode especificar o mod
A maneira mais simples de começar. Defina o modelo diretamente em seu ambiente, usando um arquivo `.env` ou no código do seu aplicativo. Se você utilizou `crewai create` para iniciar seu projeto, já estará configurado.
```bash .env
- MODEL=provider/model-id # e.g. openai/gpt-5.6-terra
+ MODEL=provider/model-id # e.g. openai/gpt-5.6-luna
# Lembre-se de definir suas chaves de API aqui também. Veja a seção
# do Provedor abaixo.
@@ -133,7 +133,7 @@ Nesta seção, você encontrará exemplos detalhados que ajudam a selecionar, co
from crewai import LLM
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4000
)
@@ -743,7 +743,7 @@ O CrewAI suporta respostas em streaming de LLMs, permitindo que sua aplicação
# Crie um LLM com streaming ativado
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
stream=True # Ativar streaming
)
```
@@ -793,7 +793,7 @@ class Dog(BaseModel):
breed: str
-llm = LLM(model="openai/gpt-5.6-terra", response_format=Dog)
+llm = LLM(model="openai/gpt-5.6-luna", response_format=Dog)
response = llm.call(
"Analyze the following messages and return the name, age, and breed. "
@@ -822,7 +822,7 @@ Saiba como obter o máximo da configuração do seu LLM:
# 3. Divisão de tarefas para grandes contextos
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
max_completion_tokens=4000, # Limitar tamanho da resposta
)
```
@@ -847,7 +847,7 @@ Saiba como obter o máximo da configuração do seu LLM:
```python
# Configure o modelo com as opções certas
llm = LLM(
- model="openai/gpt-5.6-terra",
+ model="openai/gpt-5.6-luna",
reasoning_effort="medium",
max_completion_tokens=4096,
timeout=300
diff --git a/docs/edge/pt-BR/learn/llm-connections.mdx b/docs/edge/pt-BR/learn/llm-connections.mdx
index 6c09e7c976..fc8045675d 100644
--- a/docs/edge/pt-BR/learn/llm-connections.mdx
+++ b/docs/edge/pt-BR/learn/llm-connections.mdx
@@ -10,7 +10,7 @@ mode: "wide"
O CrewAI conecta-se a LLMs por meio de integrações nativas via SDK para os provedores mais populares (OpenAI, Anthropic, Google Gemini, Azure e AWS Bedrock), e usa o LiteLLM como alternativa flexível para todos os demais provedores.
- Por padrão, o CrewAI usa o modelo `gpt-4o-mini`. Isso é determinado pela variável de ambiente `OPENAI_MODEL_NAME`, que tem como padrão "gpt-4o-mini" se não for definida.
+ Por padrão, o CrewAI usa o modelo `gpt-5.6-luna`. Isso é determinado pela variável de ambiente `OPENAI_MODEL_NAME`, que tem como padrão "gpt-5.6-luna" se não for definida.
Você pode facilmente configurar seus agentes para usar um modelo ou provedor diferente, conforme descrito neste guia.
diff --git a/lib/cli/src/crewai_cli/constants.py b/lib/cli/src/crewai_cli/constants.py
index a5f9371ffa..22fff594f8 100644
--- a/lib/cli/src/crewai_cli/constants.py
+++ b/lib/cli/src/crewai_cli/constants.py
@@ -132,6 +132,7 @@
MODELS: dict[str, list[str]] = {
"openai": [
+ "gpt-5.6-luna",
"gpt-5.5",
"gpt-5.5-pro",
"gpt-5.4",
@@ -351,7 +352,7 @@
],
}
-DEFAULT_LLM_MODEL = "gpt-4.1-mini"
+DEFAULT_LLM_MODEL = "gpt-5.6-luna"
JSON_URL = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json"
diff --git a/lib/cli/src/crewai_cli/create_json_crew.py b/lib/cli/src/crewai_cli/create_json_crew.py
index d3aa741021..9f93f3923e 100644
--- a/lib/cli/src/crewai_cli/create_json_crew.py
+++ b/lib/cli/src/crewai_cli/create_json_crew.py
@@ -51,6 +51,7 @@
# official model docs on 2026-07-05.
_PROVIDER_MODELS: dict[str, list[tuple[str, str]]] = {
"openai": [
+ ("gpt-5.6-luna", "GPT-5.6 Luna"),
("gpt-5.5", "GPT-5.5"),
("gpt-5.5-pro", "GPT-5.5 Pro"),
("gpt-5.4", "GPT-5.4"),
diff --git a/lib/cli/tests/test_create_crew.py b/lib/cli/tests/test_create_crew.py
index cb2a4820b5..5a83e437e9 100644
--- a/lib/cli/tests/test_create_crew.py
+++ b/lib/cli/tests/test_create_crew.py
@@ -713,7 +713,7 @@ def test_json_create_provider_preselects_default_model(tmp_path, monkeypatch):
"role": "Researcher",
"goal": "Research",
"backstory": "Researcher",
- "llm": "openai/gpt-5.5",
+ "llm": "openai/gpt-5.6-luna",
"tools": [],
"planning": False,
"allow_delegation": False,
@@ -735,7 +735,7 @@ def test_json_create_provider_preselects_default_model(tmp_path, monkeypatch):
mock_wizard.assert_called_once_with(
skip_provider=True,
- default_llm="openai/gpt-5.5",
+ default_llm="openai/gpt-5.6-luna",
)
assert (tmp_path / "json_crew" / "crew.jsonc").exists()
assert not (tmp_path / "json_crew" / "src").exists()
@@ -874,7 +874,7 @@ def test_render_template_does_not_replace_tokens_inside_replacement_values(tmp_p
def test_json_provider_default_model_helper():
- assert json_crew._default_model_for_provider("openai") == "openai/gpt-5.5"
+ assert json_crew._default_model_for_provider("openai") == "openai/gpt-5.6-luna"
assert json_crew._default_model_for_provider("anthropic/claude-custom") == (
"anthropic/claude-custom"
)
diff --git a/lib/crewai/src/crewai/constants.py b/lib/crewai/src/crewai/constants.py
index 4c9db2665d..61b88732b9 100644
--- a/lib/crewai/src/crewai/constants.py
+++ b/lib/crewai/src/crewai/constants.py
@@ -345,7 +345,7 @@
],
}
-DEFAULT_LLM_MODEL = "gpt-4.1-mini"
+DEFAULT_LLM_MODEL = "gpt-5.6-luna"
JSON_URL = "https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json"