LLM apps use increasingly complex abstractions (chains, agents with tools, advanced prompts). The nested traces in Langfuse help to understand what is going on and get to the root cause of problems.

Why use tracing for your LLM app?

  1. Collect user feedback from the frontend
  2. Filter down to executions that had poor quality
  3. Use the debugging UI to get to the root cause of the problem


A trace in Langfuse consists of the following objects:

  • Each backend execution is logged with a single trace.
  • Each trace can contain multiple observations to log the individual steps of the execution.
    • Observations are of different types:
      • Events are the basic building block. They are used to track discrete events in a trace.
      • Spans represent durations of units of work in a trace.
      • Generations are spans which are used to log generations of AI models. They contain additional attributes about the model, the prompt/completion. For generations, token usage and costs are automatically calculated.
    • Observations can be nested.

Get Started

Follow the quickstart to add Langfuse tracing to your LLM app.

If you use one of the following tools, follow the respective integration guide.


Check out the interactive demo to browse production traces in Langfuse.

Was this page useful?

Questions? We're here to help

Subscribe to updates