Integrations
Splyntra ingests agent telemetry over OpenTelemetry (OTLP/HTTP) and understands the GenAI semantic conventions. That means anything that can emit OTel can send data to Splyntra, and the popular agent frameworks work with a one-line SDK init.
All examples assume you've set:
export SPLYNTRA_ENDPOINT="https://ingest.splyntra.com" # or http://localhost:4318 self-hosted
export SPLYNTRA_API_KEY="sk_…"
| Framework | Method | Notes |
|---|---|---|
| LangGraph / LangChain | splyntra.instrument() | Nodes, tools, and model calls traced |
| CrewAI | splyntra.instrument() | Agents and tasks become spans |
| OpenAI Agents SDK | splyntra.instrument() | Runners, handoffs, tools |
| LlamaIndex | splyntra.instrument() | Query engines and retrievers |
| AutoGen | splyntra.instrument() | Conversable agents and group chats |
| Dify | OTLP exporter | Configure the built-in OTel exporter |
| n8n | OTLP / HTTP node | Emit spans from workflow nodes |
| Any OTel source | OTLP/HTTP | Point your exporter at the endpoint |
LangGraph
from splyntra import instrument
instrument(endpoint=..., api_key=..., project="support-agent")
from langgraph.prebuilt import create_react_agent
agent = create_react_agent(model, tools)
agent.invoke({"messages": [("user", "Where is my order?")]})
Each graph node, tool call, and model invocation is captured as a span in the run tree.
CrewAI
from splyntra import instrument
instrument(endpoint=..., api_key=..., project="ops-crew")
crew.kickoff() # each agent and task is traced automatically
OpenAI Agents SDK
from splyntra import instrument
instrument(endpoint=..., api_key=..., project="research-agent")
from agents import Agent, Runner
Runner.run_sync(Agent(name="researcher", instructions="Cite sources."), "…")
Handoffs between agents show up as nested spans, so multi-agent flows stay readable.
LlamaIndex
from splyntra import instrument
instrument(endpoint=..., api_key=..., project="rag-app")
# Query engines, retrievers, and LLM calls are traced.
response = query_engine.query("What changed in the Q3 policy?")
AutoGen
from splyntra import instrument
instrument(endpoint=..., api_key=..., project="autogen-lab")
# Conversable agents and group chats are captured as spans.
Dify
Dify can export OpenTelemetry directly. In your Dify deployment, enable the OTLP exporter and set the endpoint and headers:
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.splyntra.com
OTEL_EXPORTER_OTLP_HEADERS=x-splyntra-api-key=${SPLYNTRA_API_KEY}
n8n
Use an HTTP Request node (or the OpenTelemetry community node) to emit spans for each
workflow step to the OTLP/HTTP endpoint, passing the API key as the
x-splyntra-api-key header.
Raw OpenTelemetry
Any language or framework with an OTel SDK can send data — no Splyntra SDK required:
export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.splyntra.com"
export OTEL_EXPORTER_OTLP_HEADERS="x-splyntra-api-key=${SPLYNTRA_API_KEY}"
export OTEL_SERVICE_NAME="my-agent"
Emit the standard gen_ai.* attributes (model, token usage, prompts) and Splyntra will
populate cost, model breakdowns, and detection with no extra configuration.
Next steps
- Quickstart — end-to-end setup.
- Traces & risk — what the ingested spans become.