mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 22:08:26 +00:00
fix(subagents): add model fallback support to sessions_spawn tool (#17197)
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 5d20c2cd37
Co-authored-by: misterdas <170702047+misterdas@users.noreply.github.com>
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com>
Reviewed-by: @sebslight
This commit is contained in:
@@ -396,13 +396,17 @@ export async function agentCommand(
|
||||
opts.replyChannel ?? opts.channel,
|
||||
);
|
||||
const spawnedBy = opts.spawnedBy ?? sessionEntry?.spawnedBy;
|
||||
// When a session has an explicit model override, prevent the fallback logic
|
||||
// from silently appending the global primary model as a backstop. Passing an
|
||||
// empty array (instead of undefined) tells resolveFallbackCandidates to skip
|
||||
// the implicit primary append, so the session stays on its overridden model.
|
||||
// When a session has an explicit model override, keep the candidate chain
|
||||
// anchored to that override (no implicit configured-primary append), while
|
||||
// still preserving configured fallback lists unless the agent explicitly
|
||||
// overrides fallbacks with its own list (including an empty list to disable).
|
||||
const agentFallbacksOverride = resolveAgentModelFallbacksOverride(cfg, sessionAgentId);
|
||||
const defaultFallbacks =
|
||||
typeof cfg.agents?.defaults?.model === "object"
|
||||
? (cfg.agents.defaults.model.fallbacks ?? [])
|
||||
: [];
|
||||
const effectiveFallbacksOverride = storedModelOverride
|
||||
? (agentFallbacksOverride ?? [])
|
||||
? (agentFallbacksOverride ?? defaultFallbacks)
|
||||
: agentFallbacksOverride;
|
||||
|
||||
// Track model fallback attempts so retries on an existing session don't
|
||||
|
||||
Reference in New Issue
Block a user