feat(evals): run judges at low inference priority - #6794
Merged
Conversation
Judges fan out concurrently once a session ends, so a run adds a burst of gateway requests that no caller is waiting on. Tagging them `low` keeps them out of the quota that live voice traffic competes for.
u9g
force-pushed
the
fix/drop-hotel-judge-group
branch
from
August 11, 2026 19:59
b91d0d5 to
58f01b3
Compare
adrian-cowham
approved these changes
Aug 11, 2026
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.
Judges fan out concurrently the moment a session ends (
asyncio.gatherover every judge), so each run adds a burst of gateway requests that no caller is waiting on. Today those requests carry no priority header at all —JudgeGroupnever passesinference_class, and the header is only set when it is truthy — so they land in the same lane as live voice traffic and eat into the same RPM/TPM quota.InferenceClassgainslowalongsidepriority/standard.JudgeGrouppassesinference_class="low"when it builds the LLM from a model string. Passing a configuredLLMinstance still wins, so callers keep full control.This is the framework half of the problem raised in #team-inference on 2026-07-20: simulations hitting the LLM requests-per-minute limit, with LLM-as-a-judge named as the driver. Gateway-side scheduling is tracked separately in LKINF-387.
Needs confirming before merge: the
lowvalue matches the header value quoted in #team-inference (X-LiveKit-Inference-Priority: low), but I have not verified the gateway accepts it. If unknown values are ignored this is inert until LKINF-387 lands; if the gateway validates and rejects, it would break judge runs.Cross-SDK parity:
agents-jshas the same union atagents/src/inference/llm.tsand needs the same widening. It has noJudgeGroup, so the default has no counterpart there.