Documentation Index
Fetch the complete documentation index at: https://docs.agnost.ai/llms.txt
Use this file to discover all available pages before exploring further.
The Vercel AI SDK emits ai.* spans natively. Wire an OTel exporter pointing at Agnost, then enable telemetry per call with userId / sessionId.
1. Install
Already have @opentelemetry/sdk-node (or another OTel SDK) and @opentelemetry/exporter-trace-otlp-proto? Skip — you only need the existing packages.
No OTel set up yet?
npm install @opentelemetry/sdk-node @opentelemetry/exporter-trace-otlp-proto
2. Wire the OTel exporter pointing at Agnost
Already exporting OTel? Append Agnost as an additional span processor on your existing TracerProvider:
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
provider.addSpanProcessor(
new BatchSpanProcessor(
new OTLPTraceExporter({
url: 'https://otel.agnost.ai/v1/traces',
headers: { 'X-Agnost-Org-ID': process.env.AGNOST_ORG_ID! },
}),
),
);
No OTel yet? Boot a NodeSDK at startup (e.g. Next.js instrumentation.ts):
import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
new NodeSDK({
traceExporter: new OTLPTraceExporter({
url: 'https://otel.agnost.ai/v1/traces',
headers: { 'X-Agnost-Org-ID': process.env.AGNOST_ORG_ID! },
}),
}).start();
3. Pass userId / sessionId per call
import { generateText } from 'ai';
await generateText({
model: openai('gpt-4o'),
prompt: 'Hello',
experimental_telemetry: {
isEnabled: true,
metadata: {
userId: 'user-42',
sessionId: 'conv-abc123',
},
},
});
experimental_telemetry.isEnabled defaults to false — set it per call.
References