{"record":{"id":"f2fac22765853327","repo":"microsoft/semantic-kernel","slug":"the-openai-responses-model-id-is-required","errorCode":null,"errorMessage":"The OpenAI Responses model ID is required.","messagePattern":"The OpenAI Responses model ID is required\\.","errorType":"exception","errorClass":"AgentInitializationException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/agents/open_ai/openai_responses_agent.py","lineNumber":439,"sourceCode":"        Returns:\n            An OpenAI client instance and the configured Response model name\n        \"\"\"\n        try:\n            openai_settings = OpenAISettings(\n                responses_model_id=ai_model_id,\n                api_key=api_key,\n                org_id=org_id,\n                env_file_path=env_file_path,\n                env_file_encoding=env_file_encoding,\n            )\n        except ValidationError as ex:\n            raise AgentInitializationException(\"Failed to create OpenAI settings.\", ex) from ex\n\n        if not openai_settings.api_key:\n            raise AgentInitializationException(\"The OpenAI API key is required.\")\n\n        if not openai_settings.responses_model_id:\n            raise AgentInitializationException(\"The OpenAI Responses model ID is required.\")\n\n        merged_headers = dict(copy(default_headers)) if default_headers else {}\n        if default_headers:\n            merged_headers.update(default_headers)\n        if APP_INFO:\n            merged_headers.update(APP_INFO)\n            merged_headers = prepend_semantic_kernel_to_user_agent(merged_headers)\n\n        client = AsyncOpenAI(\n            api_key=openai_settings.api_key.get_secret_value() if openai_settings.api_key else None,\n            organization=openai_settings.org_id,\n            default_headers=merged_headers,\n            **kwargs,\n        )\n\n        return client, openai_settings.responses_model_id\n\n    @staticmethod","sourceCodeStart":421,"sourceCodeEnd":457,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/agents/open_ai/openai_responses_agent.py#L421-L457","documentation":"Raised by setup_resources() when openai_settings.responses_model_id is falsy after construction. The Responses API requires a model identifier (e.g. 'gpt-4o', 'o3'), distinct from the Chat Completions model id. The id comes from the responses_model_id argument or the corresponding env var; neither resolved to a value.","triggerScenarios":"Calling setup_resources() without ai_model_id and with no responses-model env variable set. This is specific to the Responses Agent — the chat-completions model env var does NOT satisfy this check.","commonSituations":"Migrating from AzureChatAgent / OpenAIChatCompletion where OPENAI_CHAT_MODEL_ID was sufficient, but the Responses Agent needs a dedicated responses model setting. Forgetting to set the responses-specific env var, or setting a chat model id instead.","solutions":["Pass ai_model_id explicitly: setup_resources(ai_model_id='gpt-4o').","Set the responses-model environment variable consumed by OpenAISettings (e.g. OPENAI_RESPONSES_MODEL_ID).","Confirm the env var name matches what OpenAISettings.responses_model_id binds to.","Migrate to create_client() for the same behavior without deprecation warnings."],"exampleFix":"// before\nclient, model = OpenAIResponsesAgent.setup_resources()\n\n// after\nclient, model = OpenAIResponsesAgent.setup_resources(ai_model_id='gpt-4o')","handlingStrategy":"validation","validationCode":"from semantic_kernel.connectors.ai.open_ai.settings.open_ai_settings import OpenAISettings\ns = OpenAISettings()\nif not s.responses_model_id:\n    raise SystemExit('Responses model id is not configured')","typeGuard":"def has_responses_model() -> bool:\n    from semantic_kernel.connectors.ai.open_ai.settings.open_ai_settings import OpenAISettings\n    return bool(OpenAISettings().responses_model_id)","tryCatchPattern":"from semantic_kernel.exceptions.agent_exceptions import AgentInitializationException\ntry:\n    client, model = OpenAIResponsesAgent.setup_resources()\nexcept AgentInitializationException as e:\n    if 'model ID' in str(e):\n        model = 'gpt-4o'\n        client, model = OpenAIResponsesAgent.setup_resources(ai_model_id=model)\n    raise","preventionTips":["Set the responses-model env var distinct from the chat-model env var.","Pass ai_model_id explicitly to avoid env-var ambiguity.","Migrate to create_client() to avoid deprecation."],"tags":["configuration","model-id","responses-agent","deprecation"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}