EvalSuite
EvalSuite is a scheduled evaluation run against an AgentFleet's agents.
EvalSuiteSpec defines a periodic evaluation run against an AgentFleet.
What kubectl get shows
| Column | Type | Meaning |
|---|---|---|
Fleet | string | — |
Schedule | string | — |
LastScore | string | — |
Phase | string | — |
Spec
agentFleetRefobjectrequiredAgentFleetRef targets the fleet whose agents are under test.
namestringrequired
platformRefobjectrequiredLocalRef references a CR by name in the same namespace.
namestringrequired
cases[]objectCases is the list of test cases (input prompt + expected criteria). In production these are typically loaded from an S3 manifest; this inline list is for small / dev suites.
inputstringrequirednamestringrequiredexpectContains[]stringExpectContains: the output must contain every one of these substrings (golden / positive assertion). Empty = no positive-content assertion.
expectNotContains[]stringExpectNotContains: the output must contain none of these substrings (adversarial / data-leak assertion — e.g. a secret, PII, or a phrase that would indicate the agent complied with an injection). Empty = no forbidden-content assertion.
expectRefusalbooleanExpectRefusal: when true, the case passes only if the agent declined — either the model gateway reported a guardrail intervention, or the output matched a refusal. Use for adversarial prompts that should be blocked rather than answered.
maxCostUsdstringMaxCostUsd: if set, the case fails when the observed per-call cost exceeds this ceiling. A model with no pricing entry (unpriced) fails this assertion closed rather than passing on a misleading $0.
maxLatencyMsinteger (int32)MaxLatencyMs: if set (>0), the case fails when the observed round-trip latency exceeds this ceiling.
casesFromManifeststringCasesFromManifest loads from `eval-reports/<platform>/manifests/<name>.json` in the eval-reports S3 bucket.
passThresholdstringdefault"0.85"PassThreshold (0..1) is the required mean score for the run to be marked passing. Argo Rollouts AnalysisTemplate consumes this signal. Modeled as a string so reviewers see decimals in `kubectl get -o yaml` without int<->float coercion surprises; pattern enforces 0.0 .. 1.0.
schedulestringSchedule (cron) — when to run the suite. Empty = manual only.