mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-18 03:31:37 +00:00
* feat(agents): derive a provider-declared default utility model when unset When agents.defaults.utilityModel is not set, utility tasks (titles, progress narration) now use the primary provider's declared small model (modelCatalog.providers.<id>.defaultUtilityModel: OpenAI -> gpt-5.6-luna, Anthropic -> claude-haiku-4-5). Auth is inherent because derivation follows the agent's primary provider. Setting utilityModel to an empty string disables utility routing entirely; narration turns on automatically when a default resolves and stays off otherwise. Formatting/lint/tests verified on Testbox (oxfmt, oxlint, plugins:inventory, docs:map, import-cycles, check:test-types, 4 test files). * fix(ai): drop the temperature parameter for models that reject it The GPT-5.6 family 400s on temperature via the Responses API (live-verified: gpt-5.6-luna/-terra reject it; gpt-5.5 and gpt-5.4-mini/nano accept it). supportsOpenAITemperature gates all three OpenAI payload builders, with a catalog compat override (compat.supportsTemperature) declared for the 5.6 family in the openai manifest. Without this, utility tasks (titles, narration) would fail once gpt-5.6-luna becomes the derived default. Gates on Testbox: oxfmt, oxlint, plugins:inventory, import-cycles, check:test-types, 6 test files. Live proof on Testbox: gpt-5.6-luna and claude-haiku-4-5 one-shot completions succeed with temperature requested. * fix(agents): carry the primary model's auth profile onto the derived utility default A primary like openai/gpt-5.5@work previously reached utility tasks via the profiled fallback; the derived default shares the provider, so its trailing auth profile carries over instead of silently switching to default credentials (Codex review). Gates on Testbox: oxfmt, check:test-types, tests. * docs: realign the manifest provider-fields table after adding defaultUtilityModel
321 lines
9.5 KiB
JSON
321 lines
9.5 KiB
JSON
{
|
|
"id": "anthropic",
|
|
"icon": "https://cdn.simpleicons.org/anthropic",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"enabledByDefault": true,
|
|
"providers": ["anthropic"],
|
|
"providerUsageAuthEnvVars": {
|
|
"anthropic": ["ANTHROPIC_ADMIN_KEY", "ANTHROPIC_ADMIN_API_KEY"]
|
|
},
|
|
"providerCatalogEntry": "./provider-discovery.ts",
|
|
"modelCatalog": {
|
|
"runtimeAugment": true,
|
|
"providers": {
|
|
"claude-cli": {
|
|
"models": [
|
|
{
|
|
"id": "claude-sonnet-5",
|
|
"name": "Claude Sonnet 5 (Claude CLI)",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000
|
|
},
|
|
{
|
|
"id": "claude-opus-4-8",
|
|
"name": "Claude Opus 4.8 (Claude CLI)",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 128000
|
|
},
|
|
{
|
|
"id": "claude-opus-4-7",
|
|
"name": "Claude Opus 4.7 (Claude CLI)",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-sonnet-4-6",
|
|
"name": "Claude Sonnet 4.6 (Claude CLI)",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-opus-4-6",
|
|
"name": "Claude Opus 4.6 (Claude CLI)",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
}
|
|
]
|
|
},
|
|
"anthropic": {
|
|
"baseUrl": "https://api.anthropic.com",
|
|
"api": "anthropic-messages",
|
|
"defaultUtilityModel": "claude-haiku-4-5",
|
|
"models": [
|
|
{
|
|
"id": "claude-fable-5",
|
|
"name": "Claude Fable 5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"cost": { "input": 10, "output": 50, "cacheRead": 1, "cacheWrite": 12.5 },
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"thinkingLevelMap": {
|
|
"off": "low",
|
|
"minimal": "low",
|
|
"xhigh": "xhigh",
|
|
"max": "max"
|
|
}
|
|
},
|
|
{
|
|
"id": "claude-sonnet-5",
|
|
"name": "Claude Sonnet 5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"cost": { "input": 2, "output": 10, "cacheRead": 0.2, "cacheWrite": 2.5 },
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"thinkingLevelMap": {
|
|
"xhigh": "xhigh",
|
|
"max": "max"
|
|
}
|
|
},
|
|
{
|
|
"id": "claude-mythos-5",
|
|
"name": "Claude Mythos 5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"cost": { "input": 10, "output": 50, "cacheRead": 1, "cacheWrite": 12.5 },
|
|
"contextWindow": 1000000,
|
|
"maxTokens": 128000,
|
|
"thinkingLevelMap": {
|
|
"off": "low",
|
|
"minimal": "low",
|
|
"xhigh": "xhigh",
|
|
"max": "max"
|
|
}
|
|
},
|
|
{
|
|
"id": "claude-opus-4-8",
|
|
"name": "Claude Opus 4.8",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 1048576,
|
|
"maxTokens": 128000
|
|
},
|
|
{
|
|
"id": "claude-opus-4-7",
|
|
"name": "Claude Opus 4.7",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 2576, "preferredSidePx": 2576, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-haiku-4-5",
|
|
"name": "Claude Haiku 4.5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-haiku-4-5-20251001",
|
|
"name": "Claude Haiku 4.5",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-sonnet-4-6",
|
|
"name": "Claude Sonnet 4.6",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
},
|
|
{
|
|
"id": "claude-opus-4-6",
|
|
"name": "Claude Opus 4.6",
|
|
"reasoning": true,
|
|
"input": ["text", "image"],
|
|
"mediaInput": {
|
|
"image": { "maxSidePx": 1568, "preferredSidePx": 1568, "tokenMode": "provider" }
|
|
},
|
|
"contextWindow": 200000,
|
|
"maxTokens": 64000
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"discovery": {
|
|
"claude-cli": "static",
|
|
"anthropic": "static"
|
|
}
|
|
},
|
|
"modelSupport": {
|
|
"modelPrefixes": ["claude-"]
|
|
},
|
|
"modelIdNormalization": {
|
|
"providers": {
|
|
"anthropic": {
|
|
"aliases": {
|
|
"opus-4.8": "claude-opus-4-8",
|
|
"opus": "claude-opus-4-8",
|
|
"opus-4.6": "claude-opus-4-6",
|
|
"mythos-5": "claude-mythos-5",
|
|
"sonnet-5": "claude-sonnet-5",
|
|
"sonnet": "claude-sonnet-5",
|
|
"sonnet-4.6": "claude-sonnet-4-6"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"modelPricing": {
|
|
"providers": {
|
|
"anthropic": {
|
|
"openRouter": {
|
|
"modelIdTransforms": ["version-dots"]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"providerEndpoints": [
|
|
{
|
|
"endpointClass": "anthropic-public",
|
|
"hosts": ["api.anthropic.com"]
|
|
}
|
|
],
|
|
"providerRequest": {
|
|
"providers": {
|
|
"anthropic": {
|
|
"family": "anthropic"
|
|
}
|
|
}
|
|
},
|
|
"cliBackends": ["claude-cli"],
|
|
"syntheticAuthRefs": ["claude-cli"],
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "anthropic",
|
|
"envVars": ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"]
|
|
}
|
|
]
|
|
},
|
|
"providerAuthChoices": [
|
|
{
|
|
"provider": "anthropic",
|
|
"method": "cli",
|
|
"choiceId": "anthropic-cli",
|
|
"deprecatedChoiceIds": ["claude-cli"],
|
|
"choiceLabel": "Anthropic Claude CLI",
|
|
"choiceHint": "Reuse a local Claude CLI login on this host",
|
|
"assistantPriority": -20,
|
|
"groupId": "anthropic",
|
|
"groupLabel": "Anthropic",
|
|
"groupHint": "Claude CLI + API key",
|
|
"onboardingFeatured": true
|
|
},
|
|
{
|
|
"provider": "anthropic",
|
|
"method": "setup-token",
|
|
"choiceId": "setup-token",
|
|
"appGuidedSecret": true,
|
|
"choiceLabel": "Anthropic setup-token",
|
|
"choiceHint": "Manual token path",
|
|
"assistantPriority": 40,
|
|
"groupId": "anthropic",
|
|
"groupLabel": "Anthropic",
|
|
"groupHint": "Claude CLI + API key + token",
|
|
"onboardingFeatured": true
|
|
},
|
|
{
|
|
"provider": "anthropic",
|
|
"method": "api-key",
|
|
"choiceId": "apiKey",
|
|
"appGuidedSecret": true,
|
|
"choiceLabel": "Anthropic API key",
|
|
"groupId": "anthropic",
|
|
"groupLabel": "Anthropic",
|
|
"groupHint": "Claude CLI + API key",
|
|
"onboardingFeatured": true,
|
|
"optionKey": "anthropicApiKey",
|
|
"cliFlag": "--anthropic-api-key",
|
|
"cliOption": "--anthropic-api-key <key>",
|
|
"cliDescription": "Anthropic API key"
|
|
}
|
|
],
|
|
"contracts": {
|
|
"mediaUnderstandingProviders": ["anthropic"],
|
|
"usageProviders": ["anthropic"]
|
|
},
|
|
"mediaUnderstandingProviderMetadata": {
|
|
"anthropic": {
|
|
"capabilities": ["image"],
|
|
"defaultModels": {
|
|
"image": "claude-opus-4-8"
|
|
},
|
|
"autoPriority": {
|
|
"image": 20
|
|
},
|
|
"nativeDocumentInputs": ["pdf"]
|
|
}
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {}
|
|
}
|
|
}
|