From 373d2a0f9649fc857c689afa4dd15dd148de3f28 Mon Sep 17 00:00:00 2001 From: ViditOstwal Date: Fri, 21 Aug 2026 17:00:58 +0530 Subject: [PATCH 1/4] feat: default unset LLMs to gpt-5.6-luna Agents with no MODEL / OPENAI_MODEL_NAME now fall back to gpt-5.6-luna instead of gpt-4.1-mini. --- lib/cli/src/crewai_cli/constants.py | 2 +- lib/crewai/src/crewai/constants.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/cli/src/crewai_cli/constants.py b/lib/cli/src/crewai_cli/constants.py index a5f9371ffa..7b2dd8dd01 100644 --- a/lib/cli/src/crewai_cli/constants.py +++ b/lib/cli/src/crewai_cli/constants.py @@ -351,7 +351,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/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" From b053cfd82462aa600c2afef99e022a4001dfaf93 Mon Sep 17 00:00:00 2001 From: ViditOstwal Date: Fri, 21 Aug 2026 17:02:29 +0530 Subject: [PATCH 2/4] feat(cli): prefer gpt-5.6-luna when scaffolding OpenAI crews New crew and JSON crew projects pick openai/gpt-5.6-luna as the first OpenAI catalog entry. --- lib/cli/src/crewai_cli/constants.py | 1 + lib/cli/src/crewai_cli/create_json_crew.py | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/cli/src/crewai_cli/constants.py b/lib/cli/src/crewai_cli/constants.py index 7b2dd8dd01..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", 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"), From 6a64a82676965fc62e795523f41ea08ce803fca8 Mon Sep 17 00:00:00 2001 From: ViditOstwal Date: Fri, 21 Aug 2026 17:04:18 +0530 Subject: [PATCH 3/4] test(cli): expect openai/gpt-5.6-luna as the scaffolded OpenAI default --- lib/cli/tests/test_create_crew.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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" ) From cf64d473cbe27973578837fad03fcf6f809f0649 Mon Sep 17 00:00:00 2001 From: ViditOstwal Date: Fri, 21 Aug 2026 17:05:56 +0530 Subject: [PATCH 4/4] docs: document gpt-5.6-luna as the default LLM Update the default-model note and canonical LLM examples in English, then sync ar, ko, and pt-BR. --- docs/edge/ar/concepts/llms.mdx | 18 +++++++++--------- docs/edge/ar/learn/llm-connections.mdx | 2 +- docs/edge/en/concepts/llms.mdx | 18 +++++++++--------- docs/edge/en/learn/llm-connections.mdx | 2 +- docs/edge/ko/concepts/llms.mdx | 14 +++++++------- docs/edge/ko/learn/llm-connections.mdx | 2 +- docs/edge/pt-BR/concepts/llms.mdx | 12 ++++++------ docs/edge/pt-BR/learn/llm-connections.mdx | 2 +- 8 files changed, 35 insertions(+), 35 deletions(-) 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.