UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

829 lines (828 loc) • 21.8 kB
{ "id": "openai", "categories": [ "models" ], "capabilityCatalogEntry": "./capability-catalog.js", "sessionRouteStateOwners": [ { "id": "openai", "label": "OpenAI", "providerIds": [ "openai" ], "authProfilePrefixes": [ "openai:" ] } ], "activation": { "onStartup": true }, "enabledByDefault": true, "providers": [ "openai" ], "providerUsageAuthEnvVars": { "openai": [ "OPENAI_ADMIN_KEY" ] }, "modelSupport": { "modelPrefixes": [ "gpt-", "o1", "o3", "o4" ] }, "providerEndpoints": [ { "endpointClass": "openai-public", "hosts": [ "api.openai.com" ], "hostSuffixes": [ ".api.openai.com" ] }, { "endpointClass": "openai", "hosts": [ "chatgpt.com" ] }, { "endpointClass": "azure-openai", "hostSuffixes": [ ".openai.azure.com" ] } ], "providerRequest": { "providers": { "openai": { "family": "openai-family" } } }, "modelCatalog": { "modelsDev": { "openai": "openai" }, "providers": { "openai": { "baseUrl": "https://api.openai.com/v1", "api": "openai-responses", "defaultUtilityModel": "gpt-5.6-luna", "models": [ { "id": "gpt-daybreak-blue-latest", "name": "Daybreak Blue", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "thinkingLevelMap": { "off": null, "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false } }, { "id": "gpt-daybreak-red-latest", "name": "Daybreak Red", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 400000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "thinkingLevelMap": { "off": "none", "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false } }, { "id": "gpt-6-astra", "name": "GPT-6 Astra", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 10, "output": 50, "cacheRead": 1, "cacheWrite": 12.5, "tieredPricing": [ { "range": [ 0, 272001 ], "input": 10, "output": 50, "cacheRead": 1, "cacheWrite": 12.5 }, { "range": [ 272001 ], "input": 20, "output": 75, "cacheRead": 2, "cacheWrite": 25 } ] }, "thinkingLevelMap": { "off": null, "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-6.1-sol", "name": "GPT-6.1 Sol", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 2, "output": 10, "cacheRead": 0.1, "cacheWrite": 2.5, "tieredPricing": [ { "range": [ 0, 272001 ], "input": 2, "output": 10, "cacheRead": 0.1, "cacheWrite": 2.5 }, { "range": [ 272001 ], "input": 4, "output": 15, "cacheRead": 0.2, "cacheWrite": 5 } ] }, "thinkingLevelMap": { "off": null, "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-6-sol", "name": "GPT-6 Sol", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 2, "output": 10, "cacheRead": 0.2, "cacheWrite": 2.5, "tieredPricing": [ { "range": [ 0, 272001 ], "input": 2, "output": 10, "cacheRead": 0.2, "cacheWrite": 2.5 }, { "range": [ 272001 ], "input": 4, "output": 15, "cacheRead": 0.4, "cacheWrite": 5 } ] }, "thinkingLevelMap": { "off": "none", "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-6-luna", "name": "GPT-6 Luna", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 0.1, "output": 0.5, "cacheRead": 0.01, "cacheWrite": 0.125, "tieredPricing": [ { "range": [ 0, 272001 ], "input": 0.1, "output": 0.5, "cacheRead": 0.01, "cacheWrite": 0.125 }, { "range": [ 272001 ], "input": 0.2, "output": 0.75, "cacheRead": 0.02, "cacheWrite": 0.25 } ] }, "thinkingLevelMap": { "off": "none", "minimal": "low", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-5.6-sol", "name": "GPT-5.6 Sol", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 6.25 }, "thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-5.6-terra", "name": "GPT-5.6 Terra", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 3.125 }, "thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-5.6-luna", "name": "GPT-5.6 Luna", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 1, "output": 6, "cacheRead": 0.1, "cacheWrite": 1.25 }, "thinkingLevelMap": { "off": "none", "xhigh": "xhigh", "max": "max" }, "compat": { "supportsReasoningEffort": true, "supportedReasoningEfforts": [ "none", "low", "medium", "high", "xhigh", "max" ], "supportsTemperature": false, "codeMode": "preferred" } }, { "id": "gpt-5.5", "name": "GPT-5.5", "status": "deprecated", "replacedBy": "gpt-5.6-sol", "reasoning": true, "input": [ "text", "image" ], "mediaInput": { "image": { "maxSidePx": 6000, "preferredSidePx": 2048, "tokenMode": "detail" } }, "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 5, "output": 30, "cacheRead": 0.5, "cacheWrite": 0 }, "compat": { "codeMode": "preferred" } }, { "id": "gpt-5.5-pro", "name": "gpt-5.5-pro", "status": "deprecated", "replacedBy": "gpt-5.6-sol", "reasoning": true, "input": [ "text", "image" ], "mediaInput": { "image": { "maxSidePx": 6000, "preferredSidePx": 2048, "tokenMode": "detail" } }, "contextWindow": 1050000, "contextTokens": 272000, "maxTokens": 128000, "cost": { "input": 30, "output": 180, "cacheRead": 0, "cacheWrite": 0 }, "compat": { "codeMode": "preferred" } }, { "id": "gpt-5.4", "name": "GPT-5.4", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "maxTokens": 128000, "cost": { "input": 2.5, "output": 15, "cacheRead": 0.25, "cacheWrite": 0 } }, { "id": "gpt-5.4-pro", "name": "GPT-5.4 Pro", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 1050000, "maxTokens": 128000, "cost": { "input": 30, "output": 180, "cacheRead": 0, "cacheWrite": 0 } }, { "id": "gpt-5.4-mini", "name": "GPT-5.4 Mini", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 400000, "maxTokens": 128000, "cost": { "input": 0.75, "output": 4.5, "cacheRead": 0.075, "cacheWrite": 0 } }, { "id": "gpt-5.4-nano", "name": "GPT-5.4 Nano", "reasoning": true, "input": [ "text", "image" ], "contextWindow": 400000, "maxTokens": 128000, "cost": { "input": 0.2, "output": 1.25, "cacheRead": 0.02, "cacheWrite": 0 } } ] } }, "aliases": { "azure-openai-responses": { "provider": "openai", "api": "azure-openai-responses" } }, "discovery": { "openai": "runtime" }, "suppressions": [ { "provider": "openai", "model": "gpt-5.4", "reason": "GPT-5.4 has retired from the ChatGPT-account Codex route.", "retirement": { "replacedBy": "gpt-5.6-terra" }, "when": { "baseUrlHosts": [ "chatgpt.com" ] } }, { "provider": "openai", "model": "gpt-5.4-mini", "reason": "GPT-5.4 Mini has retired from the ChatGPT-account Codex route.", "retirement": { "replacedBy": "gpt-5.6-luna" }, "when": { "baseUrlHosts": [ "chatgpt.com" ] } }, { "provider": "openai", "model": "gpt-5.3-codex-spark", "reason": "gpt-5.3-codex-spark is available only through ChatGPT/Codex OAuth. Run `openclaw models auth login --provider openai` and use openai/gpt-5.3-codex-spark with that OAuth profile; OpenAI API-key auth cannot use this model.", "when": { "baseUrlHosts": [ "api.openai.com" ] } }, { "provider": "azure-openai-responses", "model": "gpt-5.3-codex-spark", "reason": "gpt-5.3-codex-spark is available only through ChatGPT/Codex OAuth. Run `openclaw models auth login --provider openai` and use openai/gpt-5.3-codex-spark with that OAuth profile; Azure/OpenAI API-key auth cannot use this model." } ] }, "setup": { "providers": [ { "id": "openai", "envVars": [ "OPENAI_API_KEY" ] } ] }, "providerAuthChoices": [ { "provider": "openai", "method": "oauth", "personalAccount": true, "choiceId": "openai", "appGuidedAuth": "oauth", "credentialOnly": true, "choiceLabel": "Codex login (browser)", "choiceHint": "Sign in to Codex locally with your ChatGPT account", "docsUrl": "https://docs.openclaw.ai/providers/openai/authentication", "assistantPriority": -10, "groupId": "openai", "groupLabel": "OpenAI", "groupHint": "Codex login, Sign in with ChatGPT (Beta), or API key" }, { "provider": "openai", "method": "device-code", "personalAccount": true, "choiceId": "openai-device-code", "appGuidedAuth": "device-code", "credentialOnly": true, "channelLogin": { "aliases": [ "codex" ] }, "choiceLabel": "Codex login (device code)", "choiceHint": "Use a browser code when OpenClaw runs on a remote VM", "docsUrl": "https://docs.openclaw.ai/providers/openai/authentication", "assistantPriority": -40, "groupId": "openai", "groupLabel": "OpenAI", "groupHint": "Codex login, Sign in with ChatGPT (Beta), or API key", "onboardingFeatured": true }, { "provider": "openai", "method": "siwc", "personalAccount": true, "choiceId": "openai-token-sharing", "appGuidedAuth": "oauth", "credentialOnly": true, "choiceLabel": "Sign in with ChatGPT (Beta)", "choiceHint": "Authorize OpenClaw for eligible Responses models using your Codex allowance", "docsUrl": "https://docs.openclaw.ai/providers/openai/authentication", "assistantPriority": 0, "groupId": "openai", "groupLabel": "OpenAI", "groupHint": "Codex login, Sign in with ChatGPT (Beta), or API key" }, { "provider": "openai", "method": "api-key", "personalAccount": true, "choiceId": "openai-api-key", "appGuidedSecret": true, "choiceLabel": "OpenAI API Key", "choiceHint": "Use your OpenAI API key directly", "docsUrl": "https://docs.openclaw.ai/providers/openai/authentication", "assistantPriority": 5, "groupId": "openai", "groupLabel": "OpenAI", "groupHint": "Codex login, Sign in with ChatGPT (Beta), or API key", "onboardingFeatured": true, "optionKey": "openaiApiKey", "cliFlag": "--openai-api-key", "cliOption": "--openai-api-key <key>", "cliDescription": "OpenAI API Key" } ], "contracts": { "speechProviders": [ "openai" ], "realtimeTranscriptionProviders": [ "openai" ], "realtimeVoiceProviders": [ "openai" ], "embeddingProviders": [ "openai" ], "mediaUnderstandingProviders": [ "openai" ], "imageGenerationProviders": [ "openai" ], "usageProviders": [ "openai" ] }, "imageGenerationProviderMetadata": { "openai": { "authSignals": [ { "provider": "openai" } ] } }, "mediaUnderstandingProviderMetadata": { "openai": { "capabilities": [ "image", "audio" ], "defaultModels": { "image": "gpt-6-astra", "audio": "gpt-4o-transcribe" }, "autoPriority": { "image": 20, "audio": 20 } } }, "configGroups": [ { "id": "response-style", "title": "Response style", "order": 10, "properties": [ "personality" ] } ], "configSchema": { "type": "object", "additionalProperties": false, "properties": { "personality": { "type": "string", "enum": [ "friendly", "on", "off" ], "default": "friendly", "description": "Controls the canonical OpenAI-family GPT-5 friendly interaction style. Defaults to `friendly`; `on` aliases `friendly`; `off` removes only the style layer while shared stable behavior remains." } } } }