Agentic Benchmark — Evaluator Cards
The 68 evaluators that have an EvaluatorCard are listed below by category, with their key and
implementing class. The Foundry URI column repeats the Azure AI Foundry entry in the card's
compatibleWith list. Where the card lists none, the cell says what the class's own source comment
says about its origin; "AgentEval-original" means the class cites no Foundry source.
The eight Glass Box Diagnostics evaluators that AgenticBenchmark.GlassBoxDiagnostics uses gained
cards in 0.43 (they had none, and none had a cost tier, so a cost cap dropped all eight); they are
listed under Glass Box Diagnostics. They read the trace attached
to the input, not the key registry, so they are not resolved by key.
The authoritative source for each evaluator's full metadata — score formula, severity, pass
threshold, expected inputs, recommended visualisation, and external compatibility — is the
matching EvaluatorCard JSON under src/AgentEval.Evals.Agentic/EvaluatorCards/<key>.json.
At runtime, Mission Control loads these into the GraphQL evaluators query (see
Mission Control Getting Started), and the
Portal-Ready Evaluators guide documents
the schema for new evaluator authors. Phase 6 evaluators (memory, multi-turn, reasoning,
calibration, UX, adversarial, efficiency) are listed in Cost Guidance.
System Evaluators (Phase 1 — 5 evaluators)
| Key |
Class |
Foundry URI |
task_completion |
TaskCompletionEval |
azureai://built-in/evaluators/task_completion |
task_adherence |
TaskAdherenceEval |
azureai://built-in/evaluators/task_adherence |
intent_identification |
IntentIdentificationEval |
None in the card; the class says it was split out of Foundry's intent_resolution |
intent_resolution |
IntentResolutionEval |
azureai://built-in/evaluators/intent_resolution |
task_navigation_efficiency |
TaskNavigationEfficiencyEval |
azureai://built-in/evaluators/task_navigation_efficiency (hybrid; the class describes its LLM half as having no direct Foundry equivalent) |
Process Evaluators (Phase 1 — 6 evaluators)
| Key |
Class |
Foundry URI |
tool_selection |
ToolSelectionEval |
azureai://built-in/evaluators/tool_selection |
tool_input_accuracy |
ToolInputAccuracyEval |
azureai://built-in/evaluators/tool_input_accuracy |
tool_output_utilization |
ToolOutputUtilizationEval |
azureai://built-in/evaluators/tool_output_utilization |
tool_call_success |
ToolCallSuccessEval |
None in the card; the class's LLM-fallback reference prompt is AgentEval's own text, modelled on Foundry's tool_call_success evaluator concept |
tool_efficiency |
ToolEfficiencyEval |
None in the card; the class's reference prompt is modelled on the efficiency part of Foundry's tool_call_accuracy evaluator concept |
tool_call_accuracy |
ToolCallAccuracyAggregateEval |
azureai://built-in/evaluators/tool_call_accuracy (aggregate of the five tool evaluators above) |
Quality / RAG Evaluators (Phase 2 — 7 evaluators)
| Key |
Class |
Foundry URI |
groundedness |
GroundednessEval |
azureai://built-in/evaluators/groundedness |
relevance |
RelevanceEval |
azureai://built-in/evaluators/relevance |
coherence |
CoherenceEval |
azureai://built-in/evaluators/coherence |
fluency |
FluencyEval |
azureai://built-in/evaluators/fluency |
similarity |
SimilarityEval |
azureai://built-in/evaluators/similarity |
response_completeness |
ResponseCompletenessEval |
azureai://built-in/evaluators/response_completeness |
f1_score |
F1ScoreEval |
None in the card (pure-code token overlap; the class lives in AgentEval.Core) |
| Key |
Class |
Notes |
judge_agreement |
JudgeAgreementEval |
Cohen's kappa across judge panel |
calibration_accuracy |
CalibrationAccuracyEval |
Accuracy vs hand-labeled verdicts |
judge_drift |
JudgeDriftEval |
Score delta between two run snapshots |
Telemetry Evaluators (Phase 5 — 6 evaluators)
| Key |
Class |
Score formula |
latency |
LatencyEval |
Linear on P99 vs threshold; high severity above threshold |
token_usage |
TokenUsageEval |
Linear on tokens vs budget |
cost |
CostEval |
Linear on USD vs budget |
error_rate |
ErrorRateEval |
1 - (errors / totalCalls) |
retry_rate |
RetryRateEval |
1 - (retries / totalCalls) |
tool_latency |
ToolLatencyEval |
Linear on worst-tool mean latency vs per-tool budget |
Stochastic Stability (Phase 5 — 1 evaluator)
| Key |
Class |
Score formula |
stochastic_stability |
StochasticStabilityEval |
Weighted sum: success_rate 0.50 + variance_inverse 0.30 + failure_mode_consistency 0.20 |
Glass Box Diagnostics (8 evaluators)
| Key |
Class |
Score formula |
tool_reliability |
ToolReliabilityEval |
Lowest per-tool success rate across the trace's tool executions (bar 0.90; high) |
tool_error_pattern |
ToolErrorPatternEval |
1 − largest (tool, normalised error) failure cluster / all tool calls (bar 0.80; medium) |
safety_intervention |
SafetyInterventionEval |
1 − content_filter turns / chat responses (bar 1.0; medium) |
argument_sanitization |
ArgumentSanitizationEval |
PII / secret markers in tool arguments on the wire (bar 1.0; high) |
system_prompt_drift |
SystemPromptDriftEval |
1.0 when every chat request has the same system prompt, else 0.0 (bar 1.0; medium) |
system_prompt_injection |
SystemPromptInjectionEval |
System prompts vs a trusted baseline (bar 1.0), else the judge (bar 0.75); high |
truncation_detection |
TruncationDetectionEval |
1 − length-finish turns / chat responses (bar 1.0; low) |
token_distribution |
TokenDistributionEval |
1 − largest turn's completion tokens / all, 3+ turns (bar 0.5; low) |
UX Evaluators (Phase 6 — 3 evaluators)
| Key |
Class |
Foundry URI |
verbosity_appropriateness |
VerbosityAppropriatenessEval |
AgentEval-original |
tone_appropriateness |
ToneAppropriatenessEval |
AgentEval-original |
refusal_quality |
RefusalQualityEval |
AgentEval-original |
Adversarial-Resistance Evaluators (Phase 6 — 3 evaluators)
| Key |
Class |
Foundry URI |
direct_injection |
DirectInjectionEval |
AgentEval-original (mirrors OWASP LLM01) |
persona_attack |
PersonaAttackEval |
AgentEval-original |
jailbreak_resistance |
JailbreakResistanceEval |
AgentEval-original (mirrors OWASP LLM01) |
The calibration runner also accepts two adversarial keys that have no card and no class of their
own. AgenticEvalRegistration maps them onto existing evaluators so their golden entries can be
graded:
| Calibration-only key |
Evaluated by |
prompt_leak |
SystemPromptLeakageEval (the system_prompt_leakage evaluator below) |
escalation_resistance |
JailbreakResistanceEval (privilege-escalation prompts treated as jailbreak variants) |
Reasoning Evaluators (Phase 6 — 5 evaluators)
| Key |
Class |
Foundry URI |
reasoning_correctness |
ReasoningCorrectnessEval |
AgentEval-original |
intermediate_step_hallucination |
IntermediateStepHallucinationEval |
AgentEval-original |
plan_formulation_quality |
PlanFormulationQualityEval |
AgentEval-original |
goal_decomposition_quality |
GoalDecompositionQualityEval |
AgentEval-original |
self_correction_quality |
SelfCorrectionQualityEval |
AgentEval-original. Its card and namespace put it in the calibration category; the calibration runner files it under reasoning |
agenteval bench agentic calibrate runs intermediate_step_hallucination on golden cases that carry the tool calls
and context it checks the answer against. It skips plan_formulation_quality, whose only failing case has no plan the
evaluator recognises, and self_correction_quality, whose correction turn has room for one message
(BenchAgenticCalibrateCommand.s_carveOutKeys).
| Key |
Class |
Notes |
confidence_calibration |
ConfidenceCalibrationEval |
Expected to be noisy; the calibration category is gated at a relaxed 0.75 / 0.55 (s_categoryOverrides) |
uncertainty_acknowledgment |
UncertaintyAcknowledgmentEval |
Expected to be noisy; the calibration category is gated at a relaxed 0.75 / 0.55 (s_categoryOverrides) |
Memory / Multi-Turn Evaluators (Phase 6 — 5 evaluators)
Note: these evaluators grade a reply against the earlier conversation turns. Their golden cases carry those turns as
conversationHistory, and agenteval bench agentic calibrate runs four of the five. It skips
long_conversation_coherence, whose golden cases describe the conversation instead of containing it
(BenchAgenticCalibrateCommand.s_carveOutKeys).
| Key |
Class |
Foundry URI |
memory_recall_accuracy |
MemoryRecallAccuracyEval |
AgentEval-original |
turn_coherence |
TurnCoherenceEval |
AgentEval-original |
goal_tracking |
GoalTrackingEval |
AgentEval-original |
clarification_appropriateness |
ClarificationAppropriatenessEval |
AgentEval-original |
long_conversation_coherence |
LongConversationCoherenceEval |
AgentEval-original |
Safety / Content-Classifier Evaluators (Phase 4 — 12 evaluators)
All twelve are reported under the safety calibration category (CalibrationDataset.DeriveCategory).
Four of them — hate_unfairness, self_harm, sexual and violence — accept an optional
IContentSafetyClient and use it before the LLM judge when one is supplied; the calibration runner
passes none. prohibited_actions needs an IPolicyResolver and a subject id, so the calibration
runner does not dispatch it.
| Key |
Class |
Foundry URI |
hate_unfairness |
HateUnfairnessEval |
azureai://built-in/evaluators/hate_unfairness |
self_harm |
SelfHarmEval |
azureai://built-in/evaluators/self_harm |
sexual |
SexualEval |
azureai://built-in/evaluators/sexual |
violence |
ViolenceEval |
azureai://built-in/evaluators/violence |
code_vulnerability |
CodeVulnerabilityEval |
azureai://built-in/evaluators/code_vulnerability |
ungrounded_attributes |
UngroundedAttributesEval |
azureai://built-in/evaluators/ungrounded_attributes |
sensitive_data_leakage |
SensitiveDataLeakageEval |
None in the card; the class calls it analogous to Foundry's sensitive_data_leakage concept, with an AgentEval-original regex path |
protected_material |
ProtectedMaterialEval |
azureai://built-in/evaluators/protected_material |
unsafe_tool_use |
UnsafeToolUseEval |
AgentEval-original |
indirect_attack |
IndirectAttackEval |
azureai://built-in/evaluators/indirect_attack |
system_prompt_leakage |
SystemPromptLeakageEval |
AgentEval-original |
prohibited_actions |
ProhibitedActionsEval |
AgentEval-original |
Cost / Quality Efficiency (Phase 6 — 1 evaluator)
| Key |
Class |
Score formula |
cost_quality_efficiency |
CostQualityEfficiencyEval |
clamp((scenario_score / max(cost_usd, 0.001)) / 5.0, 0, 1); default pass threshold 0.50 |
QA Composite (Phase 2 — 1 evaluator)
| Key |
Class |
Notes |
qa_composite |
QaCompositeEval |
Weighted sum of the seven RAG evaluators: groundedness 0.30, response completeness 0.20, relevance 0.15, similarity 0.15, F1 0.10, coherence 0.05, fluency 0.05; pass threshold 0.70. The card lists azureai://built-in/evaluators/qa |
Per-evaluator descriptions, input contracts, default thresholds and Foundry cross-references live in
the EvaluatorCard JSON files (60 total under src/AgentEval.Evals.Agentic/EvaluatorCards/).
The same metadata is available at runtime via Mission Control's GraphQL evaluators query.