Skip to content

fix(curator): respect curator.auxiliary config for review model - #18039

Closed
apcjoaofilho wants to merge 1 commit into
NousResearch:mainfrom
apcjoaofilho:fix/curator-auxiliary-model
Closed

fix(curator): respect curator.auxiliary config for review model#18039
apcjoaofilho wants to merge 1 commit into
NousResearch:mainfrom
apcjoaofilho:fix/curator-auxiliary-model

Conversation

@apcjoaofilho

Copy link
Copy Markdown

Problem

The _run_llm_review function in agent/curator.py was always resolving the model/provider from cfg['model'], ignoring any curator.auxiliary settings in config.yaml.

This caused the curator to always run on the user's main (often expensive) model even when curator.auxiliary was explicitly configured to use a cheaper auxiliary model.

Root Cause

Introduced by commit fa9383d ("feat(curator): umbrella-first prompt, inherit parent config"). The fix for an OpenRouter empty-credentials path replaced the curator.auxiliary read entirely instead of falling back to it.

Changes

  • Read curator.auxiliary.provider and curator.auxiliary.model first
  • Fall back to cfg['model'] only when curator.auxiliary is unset
  • Preserves backward compatibility — existing configs without curator.auxiliary continue to work exactly as before

Verification

  • Syntax check passes (python3 -m py_compile agent/curator.py)
  • Tested locally with curator.auxiliary configured → curator now uses the configured auxiliary model
  • Tested locally without curator.auxiliary → curator falls back to main model (previous behavior)

Fixes #17572

The _run_llm_review function in agent/curator.py was always resolving
the model/provider from cfg['model'], ignoring any curator.auxiliary
settings in config.yaml.

This caused the curator to always run on the user's main (expensive)
model even when curator.auxiliary was configured to use a cheaper
auxiliary model.

Changes:
- Read curator.auxiliary.provider and curator.auxiliary.model first
- Fall back to cfg['model'] only when curator.auxiliary is unset
- Preserves backward compatibility (existing configs without
  curator.auxiliary continue to work exactly as before)

Fixes NousResearch#17572
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint duplicate This issue or pull request already exists labels Apr 30, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #17868 (merged) — curator.auxiliary config resolution was already fixed and unified under the auxiliary.curator slot with CLI picker and deprecation-compatible fallback.

1 similar comment
@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #17868 (merged) — curator.auxiliary config resolution was already fixed and unified under the auxiliary.curator slot with CLI picker and deprecation-compatible fallback.

@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #17868 (merged).

1 similar comment
@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #17868 (merged).

@teknium1

teknium1 commented May 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the fix @apcjoaofilho — unfortunately this was already resolved by PR #17868 ("fix(curator): unify under auxiliary.curator"), which landed a few weeks before your submission.

Current agent/curator.py has _resolve_review_model() (called by _run_llm_review()) reading in this precedence:

  1. auxiliary.curator.{provider,model} (new unified location)
  2. Legacy curator.auxiliary.{provider,model} (with a deprecation warning)
  3. Fall back to cfg['model']

So the behavior you wanted — curator.auxiliary being honored over the main model — already works on main via the legacy-fallback path, plus there's a newer canonical location at auxiliary.curator now. Closing as redundant. Thanks for taking the time to write it up and include a clear root-cause note.

@teknium1 teknium1 closed this May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint duplicate This issue or pull request already exists P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: curator.auxiliary config is dead — curator always runs on main model

3 participants