Observability
Langfuse
Send Anvia traces to Langfuse.
Use @anvia/langfuse when you want Anvia observer events in Langfuse.
1. Install the Adapter
pnpm add @anvia/langfuseThe adapter is separate from @anvia/core. Core Anvia does not export langfuse.
2. Create the Tracing Observer
Pass Langfuse credentials from your application's configuration.
import { langfuse } from "@anvia/langfuse";
const tracing = langfuse.create({
publicKey,
secretKey,
baseUrl,
environment,
release,
});baseUrl, environment, and release are optional.
3. Attach It to an Agent
const agent = new AgentBuilder("support", model)
.instructions("Answer with a short engineering-focused summary.")
.observe(tracing)
.defaultMaxTurns(2)
.build();4. Send Trace Metadata
const response = await agent
.prompt("Summarize ticket TICKET-1001 for engineering.")
.withTrace({
name: "support-ticket-summary",
userId: "user_123",
sessionId: "session_456",
metadata: {
ticketId: "TICKET-1001",
surface: "support-console",
},
tags: ["support", "anvia"],
})
.send();
console.log(response.trace?.traceId);Langfuse receives the run, model generations, tool observations, usage, errors, and trace attributes.
5. Score a Trace
await tracing.score({
traceId: response.trace?.traceId,
observationId: response.trace?.observationId,
name: "quality",
value: 1,
comment: "Good answer",
metadata: { source: "review" },
});Scoring requires publicKey, secretKey, and a trace id.
6. Flush or Shutdown
await tracing.flush();
await tracing.shutdown();Use flush() after short-lived jobs. Use shutdown() when the process is exiting.
