Framework adapters

Five-minute wiring, zero lock-in. ReasonRank's primary integration path is generic OpenTelemetry: any stack emitting OTel GenAI semconv, OpenInference, or OpenLLMetry attributes works with no adapter at all. The adapters below are deliberately thin conveniences — exporter wiring + attribute conventions + payload-capture toggles — never runtimes, and none depends on its framework at runtime.

The vocabulary they emit is owned by @reasonrank/otel — the same package the ingest path uses for normalization — so adapters and ingestion cannot drift apart. It exports reasonRankOtlpConfig({ baseUrl, ingestKey }) (OTLP/HTTP endpoint + auth headers for any OTel SDK) and the reasonrank.* attribute constants (RR_ATTR) that attach spans to a specific agent, workflow, or prompt version.

PackageFrameworkShape
@reasonrank/vercel-aiVercel AI SDKreasonrankTelemetry(...)experimental_telemetry settings
@reasonrank/openai-agentsOpenAI Agents SDK (JS)ReasonRankTraceExporter trace processor → OTLP JSON
@reasonrank/langgraphLangChain / LangGraph JSReasonRankCallbackHandler → OTLP JSON
reasonrank (Python)Pydantic-AI / any OTelinstrument_pydantic_ai(...) / configure_reasonrank_otel(...)

Shared guarantees

  • Metadata-only by default. Every adapter takes capturePayloads (default false). Payload capture is an explicit opt-in at the exporter — the same boundary the SDKs and ingest API enforce. Captured tool spans are what make sessions promotable to replay cassettes (design-partner preview).
  • Fail-open. Exporters batch, flush on interval, and swallow network errors — telemetry can never take the host app down.
  • Versioned independently. Each adapter is its own package with its own tests; the OTel path remains the zero-dependency fallback for any framework not listed.

See each package's README for its copy-paste quickstart.