Langfuse captures every LLM call with its prompt, response, token usage, and latency, then maps parent/child relationships across LangGraph nodes. You can replay a real session, surface prompt regressions, and run evals against golden traces.
@observe() decorator wraps any function; Langfuse times it.
CallbackHandler on ChatGroq/LangChain captures prompts + completions automatically.
Tracing should be enabled in BOTH dev and prod, not just dev.
call -> Langfuse trace span (model, tokens, latency)
Parent chain links LangGraph nodes
Always-on tracing is cheap insurance. Dev-only tracing doesn’t help when prod goes down.