Evals.si
Trace sources for MLflow, Phoenix and Langfuse, and five agent frameworks tested

One entrypoint to evaluate everything.

Classic ML models, LLMs, RAG systems, agents and RL checkpoints, offline and online. Pluggable, sandboxed and self-hosted, from a laptop to Kubernetes.

pip install evalsiLatest releaseChangelog

evalsi eval
$ uv run evalsi eval --data qa.jsonl --evaluators exact-match,numeric-match,latency

6 records · 3 evaluators

metric         n  mean     95% CI              skipped  errors
exact-match    6  0.333    [0.097, 0.700]            0       0
numeric-match  3  0.667    [0.208, 0.939]            3       0
latency        6  517.500  [276.409, 758.591]        0       0

Works with the tools you already use

lm-evaluation-harnessInspect AIRAGASDeepEvalSWE-benchτ-benchTerminal-BenchBFCLLangGraphCrewAIOpenAI Agents SDKLlamaIndexClaude Agent SDKOpenInferenceOpenLLMetryMLflowOpenTelemetryLangfusePhoenixagentgatewayKubernetesKEDANATSPostgreSQLClickHouseS3FirecrackerTRLverlOpenRLHFMCPA2A

Four doors, one platform

Score it, run it, watch it, reward it

The same evaluators work in every mode, so a metric means the same thing in CI, in production and in training.

Fits your stack

Plug in at either end

Send traces from any OpenTelemetry source or gateway, or read them from the MLflow, Phoenix or Langfuse you already run, point runs at your own agent over A2A, MCP, HTTP or a CLI, and export results to the dashboards you already watch.

  • gRPC, gRPC-Web, HTTP/JSON and MCP on one port
  • Scores written back to MLflow, Langfuse and Phoenix, or exported over OpenTelemetry
  • No default judge, so nothing is billed by surprise
Explore integrations
Your agent or harness
agentgateway
OTel traces and trace stores
CI pipelines
Evals.si
MLflow
Langfuse · Phoenix
Grafana
Web UI

Built for production

Everything an evaluation platform needs

Firecracker microVMvm
bubblewrapnamespaced
Landlockconfined
Hardened podk8s
no rung qualifies → refuse, never downgrade

Sandboxed, fail-closed

Firecracker where available, then bubblewrap or Landlock, then hardened pods. If nothing qualifies, nothing runs.

How the ladder works
lm-eval-harness
Inspect AI
RAGAS
DeepEval
SWE-bench
τ-bench
Terminal-Bench
BFCL
Harbor
Wasm plugins

Pluggable by design

Existing frameworks and benchmarks plug in as isolated adapters.

Plugins and adapters
reach me at <EMAIL>, card <CARD>
passmaskblock

Inline guardrails

Redact, evaluate and block in the request path through agentgateway.

Guard your traffic
apiVersion: evals.si/v1alpha1
kind: EvalRun
metadata: {name: swebench-verified}
spec:
  target: {agent: {cli: {command: [my-agent]}}}
  dataset: {uri: "swebench://verified"}
  evaluators: [{ref: task-success}]
  gates:
    - {metric: task-success, min: 0.3}

Kubernetes native

Helm charts and an operator with EvalRun, OnlineEvalPolicy, TraceSource, Evaluator and SandboxClass resources.

Deploy on Kubernetes
Did my change break the evals?
→ evalsi.run capitals.yaml
exact-match 0.93 ▲ 0.04 · gate passed

MCP for coding agents

Agents check their own changes with evalsi mcp.

Connect over MCP
alice@acmeeditorsupport
ci-botrunnersupport
gatewayingestsupport

Identity and access

OIDC, API keys, project RBAC, CEL rules and an audit log.

Set up access
PostgreSQLClickHouseS3NATSKEDAHA replicasair-gapped

Runs in your environment

Self-hosted with your models, storage, identity and secrets.

Scale it out

Your way in

CLI, Python or Kubernetes

Write an evaluator as a decorated function, run it next to the built-ins, then take the same spec to a cluster as an EvalRun that gates your rollout.

# Install from PyPI and grade outputs you already have
pip install evalsi
evalsi eval --data qa.jsonl \
  --evaluators exact-match,numeric-match,latency

# Add a judge: any OpenAI-compatible server, or Claude
pip install 'evalsi[anthropic]'
evalsi eval --data qa.jsonl --evaluators llm-judge \
  --judge-provider anthropic --judge-model claude-opus-5-5

Start evaluating in a minute

Open source, self-hosted and air-gappable. Bring your own models, storage, identity and secrets.