Skip to content
Langfuse → EvalGuard

Keep the traces. Add the whole platform. 

Langfuse gives you open-source 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 (generations, spans, events)
  • 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 with threat-feed sync
  • + 200+ eval scorers (LLM-as-judge, pairwise, rubric)
  • + Prompt IDE + optimizer across 90+ providers
  • + Managed BYOK gateway with semantic 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, 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 (GENERATION / SPAN / EVENT)One 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)

Langfuse records the model but not a separate provider field, so the provider is left blank on import. Everything else the importer recognizes is preserved verbatim under span.attributes.

One platform, one bill

Trace once. Secure, eval, optimize — everywhere.

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

Start free