role-model
Reference

Reason codes and rejection taxonomy

The stable vocabulary for candidate exclusions and selection explanations.

Reason codes are the stable vocabulary used to explain why candidates were rejected and why one candidate won.

Exclusion codes

CodeMeaningCurrent reference-router emission
CAPABILITY_MISSINGa required capability is absentemitted
MODALITY_UNSUPPORTEDa required modality is absentemitted
CONTEXT_TOO_SMALLcontext window is insufficientemitted
TOOLS_UNSUPPORTEDtool use was required but unsupportedemitted
POLICY_DENY_ENDPOINTpolicy removed the candidateemitted
POLICY_DENY_REMOTEremote execution is forbiddenemitted
BUDGET_EXCEEDEDobserved cost exceeds budgetemitted
PROVIDER_OFFLINEprovider is offlineemitted
REVOKEDendpoint is revokedemitted
TASK_NOT_SUPPORTEDthe requested role does not support the taskemitted
ROLE_NOT_ALLOWEDthe task does not allow the requested roleemitted
ROLE_BINDING_INACTIVEthe relevant role binding is not activeemitted
VARIANT_INCOMPATIBLEvariant does not satisfy request constraintsreserved vocabulary; not currently emitted
ENTITLEMENT_MISSINGa required entitlement is absentreserved vocabulary; not currently emitted
PACKAGE_NOT_INSTALLEDendpoint package is unavailable locallyreserved vocabulary; not currently emitted

Selection reasons

CodeMeaning
BEST_TOTAL_SCOREthe candidate won the final ranking
MEASURED_PROFILE_USEDobserved performance data contributed to ranking
DECLARED_PROFILE_USEDdeclared capability data contributed to ranking
DEFAULT_PROFILE_USEDmissing measured data forced neutral defaults
LOCAL_PREFERENCE_APPLIEDlocality preference favored or evaluated the candidate as local
REMOTE_PREFERENCE_APPLIEDlocality preference favored or evaluated the candidate as remote
BUDGET_OPTIMIZATIONcost strategy was active
LOW_LATENCY_TARGET_METlatency strategy was active
HIGH_QUALITY_TARGET_METquality strategy was active
ROLE_PREFERENCE_APPLIEDrole preferred-capability matches improved the candidate
TASK_REQUIREMENTS_SATISFIEDtask preferred-capability matches improved the candidate
FALLBACK_CHAIN_COMPUTEDmore than one eligible candidate existed, so fallbacks were ordered

Semantics to keep straight

  • exclusion codes explain why a candidate never reached scoring
  • selection reasons explain why a scored candidate became the chosen endpoint
  • a decision can contain both rejected candidates and a fully explained winning endpoint

In other words, reason codes are not just error labels. They are the protocol's explainability vocabulary.

On this page