openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
533 lines (532 loc) • 13.4 kB
JSON
{
"id": "openai",
"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-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-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.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",
"choiceLabel": "ChatGPT Login",
"choiceHint": "Sign in with your ChatGPT or Codex subscription",
"assistantPriority": -40,
"groupId": "openai",
"groupLabel": "OpenAI",
"groupHint": "ChatGPT/Codex sign-in or API key",
"onboardingFeatured": true
},
{
"provider": "openai",
"method": "device-code",
"personalAccount": true,
"choiceId": "openai-device-code",
"appGuidedAuth": "device-code",
"choiceLabel": "ChatGPT Device Pairing",
"choiceHint": "Pair your ChatGPT account in browser with a device code",
"assistantPriority": -10,
"groupId": "openai",
"groupLabel": "OpenAI",
"groupHint": "ChatGPT/Codex sign-in 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",
"assistantPriority": 5,
"groupId": "openai",
"groupLabel": "OpenAI",
"groupHint": "ChatGPT/Codex sign-in 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"
],
"videoGenerationProviders": [
"openai"
],
"usageProviders": [
"openai"
]
},
"imageGenerationProviderMetadata": {
"openai": {
"authSignals": [
{
"provider": "openai"
}
]
}
},
"videoGenerationProviderMetadata": {
"openai": {
"authSignals": [
{
"provider": "openai"
}
]
}
},
"mediaUnderstandingProviderMetadata": {
"openai": {
"capabilities": [
"image",
"audio"
],
"defaultModels": {
"image": "gpt-5.6-sol",
"audio": "gpt-4o-transcribe"
},
"autoPriority": {
"image": 20,
"audio": 20
}
}
},
"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."
}
}
}
}