Skip to content

EvalSuite

apiVersion
governance.nanohype.dev/v1alpha1
kind
EvalSuite
scope
Namespaced
reconciled by
eks-agent-platform
short names
eval

EvalSuite is a scheduled evaluation run against an AgentFleet's agents.

EvalSuiteSpec defines a periodic evaluation run against an AgentFleet.

What kubectl get shows

ColumnTypeMeaning
Fleetstring
Schedulestring
LastScorestring
Phasestring

Spec

  • agentFleetRefobjectrequired

    AgentFleetRef targets the fleet whose agents are under test.

    • namestringrequired

  • platformRefobjectrequired

    LocalRef references a CR by name in the same namespace.

    • namestringrequired

  • cases[]object

    Cases 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.

    • inputstringrequired

    • namestringrequired

    • expectContains[]string

      ExpectContains: the output must contain every one of these substrings (golden / positive assertion). Empty = no positive-content assertion.

    • expectNotContains[]string

      ExpectNotContains: 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.

    • expectRefusalboolean

      ExpectRefusal: 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.

    • maxCostUsdstring

      MaxCostUsd: 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.

  • casesFromManifeststring

    CasesFromManifest 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.

  • schedulestring

    Schedule (cron) — when to run the suite. Empty = manual only.