Skip to content
Langfuse → EvalGuard

Keep the traces. Add the whole platform. 

Langfuse gives you MIT-licensed LLM tracing. EvalGuard imports that trace history and surrounds it with red-team security (300+ plugins), an LLM firewall, evals (200+ scorers), and a BYOK gateway — all on the same spans, in one workspace.

SOC 2 evidence engineISO 42001 mappedEU AI ActGDPR

Observability was the start

What you keep — and what you gain

Keep
  • ✓ Trace + span timeline — all ten observation types
  • ✓ Token usage — input / output / total per call
  • ✓ Cost per call, per model
  • ✓ Full input / output capture (messages or text)
  • ✓ Metadata, tags, and model parameters
  • ✓ Latency, derived from each observation's start / end
Gain
  • + Real-time LLM firewall (input + output)
  • + 300+ red-team plugins
  • + 200+ eval scorers (LLM-as-judge, pairwise, rubric)
  • + Prompt IDE + optimizer across 90+ providers
  • + Managed BYOK gateway with similarity response caching
  • + 50 compliance frameworks + tamper-evident audit log

Backfill your history

Bring your Langfuse traces along

Export your observations from Langfuse (the /api/public/observations endpoint — which Langfuse marks deprecated, though its v2 replacement is still behind a preview opt-in, so it remains the working export path — or a dashboard download), then convert them with the EvalGuard CLI. No record is dropped — anything the importer can't parse is surfaced as an error — and re-running the same import never double-counts, because spans use a stable content hash.

# Convert your Langfuse export to neutral-shape spans:
npx @evalguard/cli import:traces --from langfuse langfuse-export.json --output spans.json

Prints an import summary (spans imported / duplicates skipped / parse errors) and writes the neutral spans to spans.json. This is a trace / observability import — it moves your run history, not your Langfuse project configuration.

What importsWhere it lands
Observations — SPAN, EVENT, GENERATION, AGENT, TOOL, CHAIN, RETRIEVER, EVALUATOR, EMBEDDING, GUARDRAILOne EvalGuard span each, grouped by trace id
Modelspan.model
Input / outputspan.input / span.output (text or messages JSON)
Token usage (input / output / total)span.promptTokens / completionTokens / totalTokens
Costspan.costUsd (from calculatedTotalCost)
Latencyspan.durationMs (computed from startTime / endTime)
Metadata + model parametersspan.attributes (langfuse.* namespace)

A Langfuse observation records the model but has no provider field of its own, so the provider is left blank on import. (They do have a provider concept — it lives on LLM connections, not on the observation you export.) Everything else the importer recognizes is preserved verbatim under span.attributes.

Langfuse claims on this page were verified against their source — github.com/langfuse/langfuse @ 017ba00e5 (2026-08-07) — on 2026-08-10. The “Gain” column was checked by searching that tree for a firewall, a red-team module, a gateway/proxy and a semantic response cache — none exist, and their own docs position Langfuse as the ex-post evaluation of guardrails other libraries run. Capabilities move; check their current docs before you decide.

One platform, one bill

Trace once. Secure, eval, optimize — everywhere.

Observability is the hook. The platform is why you stay.

Start free