Integrations

Runback sits above your stack.

It doesn't replace LangChain, CrewAI, or the AI SDK — it governs whatever you built on top of them. Use the SDK for the deepest capture, or send traces from any framework over OpenTelemetry.

Your agentsLangChainCrewAIVercel AI SDKyour own loop
One line in
OpenTelemetry
or @runback/sdk
Runback
ObserveReplayGateAudit

Whatever the framework, you can drill into any step:

research-email-agent · run failedclick any step ↓
Tool call · send_email — failed here
tool
send_email
status
error
input
{ "to": "alex[at]acme.co", "body": "Next.js 16 summary…" }
Invalid recipient — the model wrote the address in plain text ("[at]") instead of a valid email. The run failed here.
Using a specific model? Runback is model-agnostic.
OpenAIAnthropicLlamaMistralGeminiCohereGroqBedrock

Whatever model you call, Runback records it automatically — the inspector and monitoring don't care which provider you use. Stepreplay runs Groq-hosted models today; OpenAI and Anthropic are next.

The deepest path

Vercel AI SDKNative SDK · deepest

The richest integration — full context capture, in-process redaction, and step replay. About three lines.

import { withDebugger } from "@runback/sdk";
import { generateText, stepCountIs } from "ai";

const dbg = withDebugger(model, { runName: "agent", redact: "standard" });
const res = await generateText({
  model: dbg.model,
  tools: dbg.tools(myTools),
  stopWhen: stepCountIs(8),
  prompt: task,
});
await dbg.finish({ output: res.text, status: "success" });

Any framework, via OpenTelemetry

Point your OTLP trace exporter at Runback. Every example below also needs these three environment variables:

export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://runback.dev/api/otel/v1/traces"
export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL="http/json"
export OTEL_EXPORTER_OTLP_TRACES_HEADERS="authorization=Bearer <RUNBACK_API_KEY>"
OpenAI / Anthropic SDKsOpenTelemetry · Python or JS

Auto-instrument the official SDKs with OpenLLMetry. No changes to your calls.

pip install traceloop-sdk

from traceloop.sdk import Traceloop
Traceloop.init(
  api_endpoint="https://runback.dev/api/otel",
  headers={"authorization": "Bearer <RUNBACK_API_KEY>"},
)
# your openai / anthropic calls are now traced to Runback
LangChain & LangGraphOpenTelemetry

Instrument with OpenInference (or OpenLLMetry) and point the OTLP exporter at Runback.

pip install openinference-instrumentation-langchain \
            opentelemetry-exporter-otlp-proto-http

# then export the env vars below, and:
#   LangChainInstrumentor().instrument()
CrewAIOpenTelemetry

OpenLLMetry instruments CrewAI agents, tasks, and tool calls out of the box.

pip install traceloop-sdk
# Traceloop.init(...) as above — CrewAI spans flow straight in.
LlamaIndexOpenTelemetry

Trace queries, retrievers, and LLM calls via OpenInference or OpenLLMetry.

pip install openinference-instrumentation-llama-index
# LlamaIndexInstrumentor().instrument(); then the env vars below.
Anything else (raw OpenTelemetry)OpenTelemetry · any language

If it emits GenAI spans, Runback reads it. Set three environment variables and go.

export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://runback.dev/api/otel/v1/traces"
export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL="http/json"
export OTEL_EXPORTER_OTLP_TRACES_HEADERS="authorization=Bearer <RUNBACK_API_KEY>"
Don't see your tool?

If it speaks OpenTelemetry GenAI conventions, it already works. Tell us what you use and we'll confirm the mapping — read the guide or open a live run.