mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-14 21:46:08 +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