Repository navigation
Ask Jev for reasoning effort as a second decision question - #30
Merged
Merged
Conversation
A jev alias with `jev.reasoning_efforts` set asks a second choice question in the same Decisions API call: how much reasoning effort the request needs, answered from that list only. - The answer replaces the configured reasoning_effort of every planned candidate that sets one, and is never added to one that sets none: a route without an effort may not accept the parameter at all. The list keeps Jev to values every such route accepts. A caller's own stated effort still wins unless the candidate sets reasoning_effort_override. - Each answer is vetted on its own: an effort outside the list leaves the configured effort standing whatever the model answer was. With one model left the call is still made, for the effort alone; with neither question to ask, no call and no request text leaves. - DispatchPlan may change the effort of a target that sets one and nothing else; dispatch refuses any other difference from a configured target. - Validation refuses an efforts list with fewer than two values, a repeat, or no pool candidate whose effort it could replace. - The decision adapter now carries a list of questions and returns one answer per question. The jev telemetry record gains effort, effort_confidence and effort_reason; /admin/routes and the console show which efforts Jev may choose. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P4Nm4MVSMmG6JyZi8WumtK
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
Follow-up to Deep-Sixed/Cerberus#29. A
jevalias can now ask Jev, in the same Decisions API call, how much reasoning effort a request needs, as well as which model should serve it.Where the answer applies
reasoning_effortof every planned candidate that sets one, and is never added to a candidate that sets none. Cerberus already configures effort per route, and some providers reject the parameter (OpenAI rejects it for non-reasoning models), so adding it everywhere could turn a working route into a 400.reasoning_effortslist keeps Jev to values every such route accepts. For example, leave outminimalif one of those routes rejects it.reasoning_effortwins unless the candidate setsreasoning_effort_override.Each answer is checked on its own
DispatchPlanmay change the effort of a target that already sets one, and nothing else about it.dispatch()refuses any other difference from a configured target.Validation
jev.reasoning_effortsis refused when it:minimal/low/medium/highreasoning_effortfor the answer to replace, since it would never be appliedWire and telemetry
route: unchangedeffort:{"id": "effort", "type": "choice", "question": …, "options": [...]}jevrecord gainseffort,effort_confidenceandeffort_reason. The reason is one ofnot_requested,not_applicable,no_choice,choice_outside_options, or the reason the call failed.reasoning_effortfield shows the effort that was applied./admin/routesand the console show which efforts Jev may choose.Test plan
./scripts/ci.sh: ruff clean, 431 passed. 12 new tests intests/test_jev_dispatch.pyand 1 new schema test.node --check src/cerberus/ui/static/app.jspython scripts/check-public-history.py: 0 findings.🤖 Generated with Claude Code
https://claude.ai/code/session_01P4Nm4MVSMmG6JyZi8WumtK
Generated by Claude Code