feat(curator): support reasoning effort override - #50416
Conversation
533124a to
92f8638
Compare
teknium1
left a comment
There was a problem hiding this comment.
Thanks for routing the setting through Hermes' normalized reasoning_config mechanism. Current main's curator fork has no curator-specific reasoning resolver or AIAgent plumbing (agent/curator.py:1758-1803, agent/curator.py:1875-1934), so this remains a valid addition.
Problems
hermes_cli/config.py:3304bumps_config_versionfor a default-only key.AGENTS.md:584-590says new keys in an existing section are supplied by the deep merge and do not require a version bump. As written,migrate_config()persists a version-only rewrite (hermes_cli/config.py:6197-6200) even thoughload_config()already merges the new default (hermes_cli/config.py:6953-6967).
Suggested changes
- Retain version 33 and adjust the lean-config test to verify the default through
load_config()without invoking a version migration.
Automated hermes-sweeper review.
| @@ -3303,7 +3304,7 @@ def _ensure_hermes_home_managed(home: Path): | |||
| }, | |||
There was a problem hiding this comment.
Please do not bump _config_version for this default-only field. load_config() deep-merges new keys from DEFAULT_CONFIG, while the version bump makes migrate_config() persist a version-only rewrite. AGENTS.md:584-590 reserves bumps for active config transformations.
There was a problem hiding this comment.
Addressed in c71716a68: rebased onto current upstream/main, retained config version 33, removed the redundant hermes_cli/config.py diff, and replaced the migration-based test with a load_config()-only no-write contract. Refreshed curator/config suite: 339 passed.
92f8638 to
c71716a
Compare
c71716a to
1a2276a
Compare
What does this PR do?
Adds a curator-specific
reasoning_effortoverride for the LLM consolidation/review fork, using Hermes' normalized reasoning configuration instead of provider-specific request-body hacks.This lets users keep ordinary chat at one reasoning level while giving curator consolidation a different level, or explicitly disable curator reasoning with
none.Behavior
Reasoning precedence for the curator review fork is:
auxiliary.curator.reasoning_effortcurator.auxiliary.reasoning_effortwhen the canonical key is absent or emptyagent.reasoning_overridesentryagent.reasoning_effortAdditional semantics:
noneand YAMLfalseexplicitly disable reasoning and stop fallback.Type of Change
Changes Made
agent/curator.py_ReviewRuntimeBindingalongside the existing provider, model, credential, and request overrides.reasoning_configinto the forkedAIAgentwithout disturbing credential pools, ACP settings, or output caps.hermes_constants.pyauxiliary.curator.reasoning_effortschema default already present on currentmain.load_config()deep merge without migration or user-YAML rewrites.none, YAMLfalse, invalid values, exact-once logging, runtime binding, constructor plumbing, provider-resolution failure, schema defaults, and no-write config loading.How to Test
Candidate head:
1a2276ae649298771b5a0c8aa3aa9609b77d341bResult:
Additional verification:
The full Python suite was run with the exact locked CI dependency set and an 8-worker cap:
All 13 failures reproduced exactly on pristine
f88ed6c7in the same environment (72 passed, 13 failedacross the seven failing files). They are pre-existing host-state/timing failures outside this PR's files.Scope
The refreshed PR is one commit on
upstream/main(f88ed6c7), touching 8 feature files (+469/-14). It ports the original intent onto the current curator runtime architecture without replaying obsolete migration machinery or restoring tests pruned from currentmain.Checklist
Code
Documentation & Housekeeping
cli-config.yaml.exampleupdatedScreenshots / Logs
Not applicable; this changes curator/config behavior and documentation, not UI.