Skip to main content
An “integration” in Zespan is auto-instrumentation, not a data connector. There’s no one-way webhook or export job to configure — you call zespan.autopatch() or a specific patch_X() function in Python, or use the SDK’s wrap_X() / patch_X() functions in TypeScript, and Zespan traces the calls your existing code already makes to that library. No changes to call sites, no separate sync process, and nothing leaves your app until the library method you patched is actually invoked.
autopatch()
LLM Providers
Agent Frameworks
RAG Frameworks
Vector Databases
Custom / Other

Categories

  • LLM Providers — trace chat completions, streaming, tool calls, and token/cost usage for direct LLM API clients like OpenAI, Anthropic, and Bedrock.
  • Agent Frameworks — trace chains, agents, tools, and multi-step runs in orchestration frameworks like LangChain, CrewAI, and AutoGen.
  • RAG Frameworks — trace retrieval and generation steps in RAG frameworks like LlamaIndex and Haystack.
  • Vector Databases — trace query, add, and upsert calls against vector stores like Chroma, Pinecone, Qdrant, and Weaviate.
  • Gateways — trace every call passing through a self-hosted LLM gateway (LiteLLM Proxy, Kong AI Gateway, Cloudflare AI Gateway), independent of which app or language made the call.
  • Custom / Other — instrument anything not covered above yourself with startSpan / start_span, or, if it already emits OpenTelemetry spans (OpenLLMetry, OpenInference, etc.), point that straight at Zespan with no Zespan SDK at all.
Some pages above (Ollama, DSPy, OpenAI Agents SDK, Strands Agents, Mastra, Agno, and everything in Gateways) work via OpenTelemetry auto-instrumentation rather than a Zespan SDK wrapper — each says so at the top. Same trace quality, no wrapX()/patch_X() call because there isn’t a Zespan-maintained wrapper for that one, just a .instrument() call or config pointed at Zespan’s endpoint.

Which integration for your stack