feat(cron): per-job reasoning_effort override - #64565
Closed
teknium1 wants to merge 1 commit into
Closed
Conversation
Adds a first-class reasoning_effort field to cron jobs, resolving per-run as: job field > agent.reasoning_overrides (per-model) > agent.reasoning_effort (global). Closes #23524. - cron/jobs.py: validated field on create_job/update_job (rejects unknown levels at write time; empty clears) - cron/scheduler.py: job field consulted before the shared resolve_reasoning_config chokepoint - cronjob tool: reasoning_effort param on create/update, surfaced in list/show output - hermes cron create/edit: --reasoning-effort flag + display - docs: new 'Per-job reasoning effort' section in cron.md - tests: 7 new cases (validation, storage round-trip, priority order)
Collaborator
Duplicate of #7382 (earliest open, MikelCalvo) — same feature (per-job cron |
Contributor
Author
|
Closing — decided against adding per-job reasoning to the cron surface; going with per-auxiliary-task reasoning_effort instead. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cron jobs can now set their own reasoning effort — a first-class
reasoning_effortfield on the job record, so a lightweight hourly scan runs atlowwhile a morning-briefing job on the same model runs atxhigh. Fixes #23524.Resolution priority per run: job field >
agent.reasoning_overrides(per-model) > globalagent.reasoning_effort— the lower two tiers resolve through the shared chokepoint from #64458.Changes
cron/jobs.py:reasoning_effortoncreate_job/update_jobwith write-time validation (_normalize_job_reasoning_effort— unknown levels raise ValueError at create/update, never at run time; empty string clears)cron/scheduler.py: job field consulted before per-model/global resolutiontools/cronjob_tools.py:reasoning_effortparam on thecronjobtool (create/update), surfaced in list/show outputhermes_cli/subcommands/cron.py+hermes_cli/cron.py:--reasoning-effortonhermes cron create/edit, echoed in create/edit/list detailwebsite/docs/user-guide/features/cron.md: new "Per-job reasoning effort" sectionnone-beats-per-model)no_agentjobs ignore the field (they never touch the inference layer). Existing jobs are unaffected — absent field means per-model/global resolution, exactly as before.Validation
tests/cron/test_reasoning_config_per_model.py)tests/cron/, cronjob tool, cron CLI)nonedisables, list surfaces field, disk persistencehermes cron create+cron run, logging proxy → real OpenRouter)xhigh→reasoning: {effort: "xhigh"}on the wire; no job field → per-modellowapplied; 3/3 jobs completedInfographic