Answers you can trust, from Codeables
Every page on Codeables is structured and verified — built so people and the AI agents they rely on can trust it. Explore more from the source behind this answer.
Explore CodeablesArize vs DeepEval: when do we outgrow an eval framework and need observability + online monitoring?
Most teams start with an eval framework like DeepEval and feel productive: you define a few tests, wire them into CI, and ship your first LLM app or agent. The cracks only show up later—when traffic spikes, agents take strange paths, quality drifts overnight, and your static eval runs say everything is “green” while support tickets say otherwise. That’s the moment you’ve quietly outgrown an eval framework and need full-stack observability plus online monitoring.
Quick Answer: DeepEval and similar eval frameworks are great for early-stage and offline evaluation, but they stop being enough once you have live traffic, non-deterministic agents, and strict SLOs. At that point, you need an AI & Agent Engineering Platform like Arize AX that connects evals to production traces, monitors online behavior, and closes the loop between development and real-world performance.
Why This Matters
If you only have offline eval runs, you’re effectively testing agents in a lab but flying blind in production. Modern agents don’t just answer once and stop—they route, tool-call, branch, and sometimes “fail forward” to decent answers despite weird internal steps. Without observability and online monitoring, you can’t see those paths, can’t catch regressions in real time, and can’t turn production edge cases into the datasets that make your system better.
That gap shows up as:
- Silent hallucinations that clear offline tests but spike in real traffic.
- Latency/cost blowups from new tool patterns or model changes.
- Multi-agent workflows that “work in staging” but fail under production load.
- Regulators and internal risk teams asking for traceability you can’t provide.
Key Benefits:
- Move from one-off evals to continuous monitoring: Arize ties evals to production traces and sessions so you track quality over time, not just at merge time.
- Detect regressions instantly, not after an incident: CI/CD Experiments and Online Evals gate deployments and raise alerts when quality or behavior drifts.
- Turn production into your best dataset: Annotation queues, replay, and dataset curation let you mine real failures and edge cases into golden eval sets.
Core Concepts & Key Points
| Concept | Definition | Why it's important |
|---|---|---|
| Eval framework | Library (like DeepEval) you import to define and run tests/evals against LLM outputs, usually offline or in CI. | Great for getting started, but it has no inherent view of production data, traces, or real-time drift. |
| Observability | Continuous tracing, logging, and monitoring of models and agents in production (spans, traces, sessions, dashboards, alerts). | Lets you see every step of an agent’s path, understand failures, and correlate them with data, models, and code changes. |
| Online monitoring & evals | Evals and checks that run on live or near-live traffic, with thresholds, alerts, and dashboards. | Catches hallucinations, regressions, cost/latency spikes, and drift as they happen—not days later via offline tests. |
How It Works (Step-by-Step)
The pattern I’ve seen—both at my own marketplace and now across Arize customers—is roughly:
-
Start with an eval framework (DeepEval stage).
You wire DeepEval (or equivalent) into your codebase to:- Define metrics like correctness, faithfulness, toxicity, or tool-call accuracy.
- Run offline evals on curated datasets before shipping changes.
- Maybe plug into CI so your prompt changes don’t merge if a test fails.
This is a massive upgrade from manual spot checks, but it’s still “outside” production. The eval runner has no idea what’s happening at 3 p.m. when traffic spikes or when a new retrieval pattern surfaces a novel failure mode.
-
Hit production complexity and visibility gaps.
As traffic and complexity grow, you see questions an eval framework alone can’t answer:- “Why did this agent call the pricing service four times on this request?”
- “Why did hallucination rate jump this morning for only EU users?”
- “This path looks wrong, but the final answer is okay—how do we score that?”
- “Which prompt/router version is actually in front of users right now?”
You need:
- Tracing: spans and traces for every call, tool, and agent step.
- Session-level views: multi-turn conversations stitched together.
- Live metrics and dashboards: quality, latency, cost, drift by slice.
- Alerts: catch issues the moment they appear, not at the next CI run.
This is where Arize comes in: OTEL-based traces, OpenInference semantics, and storage that can handle billions of spans without locking you into a proprietary format.
-
Close the loop: evals + experiments + monitoring (Arize AX stage).
You still use eval frameworks—but you don’t stop there. With Arize AX:- Trace everything: Instrument agents and tools with OpenTelemetry; log “the full flow” like Booking does, including tool inputs/outputs, retries, and multi-agent branches.
- Attach evals to traces: Use LLM-as-a-Judge templates, code evals, and human annotations directly on spans and sessions—both offline and online.
- Run CI/CD Experiments: Route traffic to candidate prompts/models, run the same evaluators, and gate releases on real metrics, not hunches.
- Monitor in real time: Set up Online Evals and alerts for hallucination rate, tool-call correctness, latency, cost, and slice-specific performance.
- Feed production back into development: Spin up annotation queues for the worst production traces, refine your datasets, and rerun experiments.
DeepEval remains useful as one of the ways you define evaluators. Arize is where those evaluators meet production, governance, and scale.
When You’ve Outgrown Just DeepEval
If you’re trying to decide “Do I stick with an eval framework or do I need something like Arize AX?”, use these checkpoints.
You’re probably still fine with “just” DeepEval if:
- Your traffic is low, and you’re mostly running internal pilots or demos.
- Your agent flows are simple (single model call, minimal tool use).
- You don’t have strict SLOs, regulators, or external customers yet.
- You can manually inspect failures in logs without burning hours.
You’ve outgrown a standalone eval framework if any of these are true:
-
You have real users and real SLOs.
- NPS, resolution rate, hallucination rate, or response time is now a reported KPI.
- Incidents are “production issues” that impact customers, not internal test users.
- You’re being asked for auditability—“show me how this answer was generated.”
-
You can’t explain failures without replaying full traces.
- DeepEval tells you a test failed, but you can’t see which tools, models, or branches were involved.
- Different runs produce different failures because of non-determinism, and you have no consistent trace view.
- Multi-agent orchestration or routers sometimes “converge to the right answer” via bizarre internal paths you can’t debug.
-
You have multiple model/prompt variants in the wild.
- You’re A/B testing models or prompts without a unified experiment view.
- You’re not sure which version is responsible for an incident in production.
- You can’t easily compare traces and metrics between old and new versions.
-
Quality issues show up only on specific slices.
- Failures cluster by geography, language, device, or customer segment.
- Your offline eval dataset doesn’t capture those live slices yet.
- You need drift monitoring on embeddings or features to catch distribution shifts.
-
Your incidents are “surprises” instead of monitored regressions.
- Support or ops discovers quality regressions before your tests or CI do.
- Latency and cost jump with no clear signal in your eval pipeline.
- You have no Online Evals tied to alerts on top of production traces.
Once you recognize yourself in a few of these, it’s time to treat eval frameworks like unit tests: necessary but not sufficient. You need an observability and monitoring layer built for agents.
Arize vs DeepEval: Different Layers in the Stack
It helps to think of these as complementary layers, not direct substitutes.
What DeepEval excels at
One library. Defined in code. Great for:
-
Local and CI-based eval runs.
- Developers define test suites in the repo:
test_tool_selection,test_summary_quality, etc. - You can run these on demand and block merges if eval scores drop.
- Developers define test suites in the repo:
-
Fast iteration on evaluators.
- You try different LLM judges, thresholds, and metrics.
- You experiment with evaluation criteria without standing up infra.
Where it stops:
- No built-in notion of spans, traces, or multi-step agent paths.
- No production ingestion, dashboards, or long-term retention.
- No Online Evals or alerts—unless you custom-build them around the library.
Where Arize extends and connects the stack
Arize isn’t a replacement for the idea of evals; it’s the system that:
-
Traces agents in production.
- OTEL-based tracing that works with your framework (LangChain, LlamaIndex, custom orchestration, etc.).
- Multi-agent graphs, spans, and sessions so you can see the entire flow—inputs, tools, intermediate states, outputs.
-
Attaches evals directly to traces.
- LLM-as-a-Judge templates for:
- Hallucinations / grounding
- Tool selection and parameter extraction
- Conversation helpfulness and safety
- Code evals for deterministic parts (JSON validity, schema adherence, function outputs).
- Human annotation queues for edge cases that need judgment calls.
- LLM-as-a-Judge templates for:
-
Runs CI/CD Experiments at scale.
- Route real traffic to candidate prompts/models.
- Compare performance using the same evaluators you trust in DeepEval-style tests.
- Gate releases automatically when metrics regress.
-
Monitors online behavior with dashboards and alerts.
- Online Evals that run on live traffic, not just test datasets.
- Dashboards for:
- Quality scores over time
- Response latency and rate limits
- Token and cost tracking per model, tool, or tenant
- Alerts when:
- Hallucination or tool-failure rate crosses a threshold
- Performance drifts by slice (e.g., a particular region or language)
- New failure modes emerge in previously healthy segments
-
Keeps everything open and interoperable.
- Built on OpenTelemetry and OpenInference: no proprietary tracing frameworks.
- Standard data file formats: no data lock-in, easy to export or replay elsewhere.
- Integrates with open-source evaluators and OSS tracing via Arize Phoenix if you want to self-host.
You still define evaluators the way you’re used to—but now those evaluators are attached to actual production behavior and used both offline and online.
Common Mistakes to Avoid
-
Mistake 1: Treating eval frameworks as “done” observability.
Running DeepEval in CI does not mean you have monitoring. You’re still blind to:- Drift in production inputs.
- Non-deterministic agent paths.
- Slice-specific failures and cost/latency anomalies.
How to avoid it: Use eval frameworks as your test-definition layer, but plan early for OTEL-based tracing and Online Evals. Instrument your agents so every production request produces a trace that can be evaluated and monitored.
-
Mistake 2: Mixing proprietary tracing with open eval tooling.
It’s tempting to adopt a vendor-specific tracing SDK because it looks quick, then wire DeepEval on top. Later, you realize you can’t easily export traces, change vendors, or standardize across teams.
How to avoid it: Standardize on OpenTelemetry and OpenInference from day one. Arize is built on these standards, so you can:- Reuse instrumentation across tools.
- Avoid lock-in.
- Plug eval frameworks like DeepEval into a broader, open pipeline.
Real-World Example
At my marketplace, we started with an eval framework almost identical to DeepEval:
- We had Python-based evaluators for:
- Retrieval grounding
- Tool-call correctness
- Safety and policy compliance
- We ran them in CI on a small curated dataset before shipping prompt and router changes.
It worked—until we rolled out to a few million users in Europe and saw:
- A spike in “partially correct” answers on marketplace policy questions.
- Latency regressions only for certain tools during peak traffic.
- Multi-agent flows where the final answer was acceptable, but intermediate calls hammered a pricing API and tripled our cost.
Our offline evals were all green. DeepEval had done its job. But we couldn’t answer:
- Which specific agent paths were causing the bad behavior?
- How widespread the issue was by geography and customer segment?
- Whether the new router logic or the model upgrade was at fault?
We instrumented the entire stack with OpenTelemetry and sent traces into Arize AX:
- Every agent step and tool call became a span.
- We attached LLM-as-a-Judge evals and code checks to the relevant spans.
- We spun up CI/CD Experiments to compare our old and new routing strategies.
- We set Online Evals and alerts on hallucination rate, tool error rate, and latency by region.
Within days:
- We pinpointed a specific tool-call pattern that only triggered for EU users with a certain profile.
- We rolled back the problematic router change via a guarded experiment.
- We added those traces as labeled examples in an annotation queue, turned them into a golden dataset, and tightened our eval suite.
DeepEval-level tests still existed; they just weren’t the control plane anymore. Arize’s traces, experiments, and monitors were.
Pro Tip: If you’re already using DeepEval, don’t rip it out—wrap it. Instrument your agents with OTEL, ingest traces into Arize, and then call your DeepEval-style evaluators inside Arize’s experiment and monitoring workflows. That way, you reuse your existing metrics but now see them in the context of real traces, slices, and alerts.
Summary
Eval frameworks like DeepEval are a great starting point: they give you a language to define “good” vs “bad” outputs and wire basic quality checks into CI. You outgrow them the moment real users, non-deterministic agents, and strict SLOs enter the picture.
At that point, you need more than offline tests:
- Observability: OTEL-based spans, traces, and sessions so you can see every step an agent took.
- Online monitoring: Evals and metrics computed over live traffic with dashboards and alerts.
- Closed-loop iteration: Experiments, annotation queues, and dataset curation so production behavior continuously improves your models, prompts, and policies.
Arize AX is built for that stage: an AI & Agent Engineering Platform that unifies development, evaluation, and observability so you can ship agents that work—and prove it in production. DeepEval remains a useful component for evaluator logic, but the control plane moves into a system that sees and monitors the whole flow.