> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zespan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations overview

> What an 'integration' means in Zespan — auto-instrumentation for LLM providers, agent frameworks, RAG frameworks, and vector databases — and where to start for your stack.

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.

<div style={{position: "relative", margin: "2rem 0 0.5rem"}}>
  <svg viewBox="0 0 760 460" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Zespan's autopatch core connected to five integration categories" style={{width: "100%", height: "auto", display: "block"}}>
    <path d="M 380 240 L 380 70" stroke="var(--border-strong)" strokeWidth="2" />

    <path d="M 380 240 L 542 188" stroke="var(--border-strong)" strokeWidth="2" />

    <path d="M 380 240 L 480 378" stroke="var(--border-strong)" strokeWidth="2" />

    <path d="M 380 240 L 280 378" stroke="var(--border-strong)" strokeWidth="2" />

    <path d="M 380 240 L 218 188" stroke="var(--border-strong)" strokeWidth="2" />

    <rect x="332" y="192" width="96" height="96" rx="48" ry="48" fill="var(--accent-soft)" stroke="var(--accent)" strokeWidth="2" />

    <rect x="325" y="15" width="110" height="110" rx="55" ry="55" fill="var(--bg-surface)" stroke="var(--border-default)" strokeWidth="2" />

    <rect x="487" y="133" width="110" height="110" rx="55" ry="55" fill="var(--bg-surface)" stroke="var(--border-default)" strokeWidth="2" />

    <rect x="425" y="323" width="110" height="110" rx="55" ry="55" fill="var(--bg-surface)" stroke="var(--border-default)" strokeWidth="2" />

    <rect x="225" y="323" width="110" height="110" rx="55" ry="55" fill="var(--bg-surface)" stroke="var(--border-default)" strokeWidth="2" />

    <rect x="163" y="133" width="110" height="110" rx="55" ry="55" fill="var(--bg-surface)" stroke="var(--border-default)" strokeWidth="2" />
  </svg>

  <div style={{position: "absolute", left: "50%", top: "52.17%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(45px, 12%, 90px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>autopatch()</b>
  </div>

  <div style={{position: "absolute", left: "50%", top: "15.22%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(50px, 13%, 100px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>LLM Providers</b>
  </div>

  <div style={{position: "absolute", left: "71.32%", top: "40.87%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(50px, 13%, 100px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>Agent Frameworks</b>
  </div>

  <div style={{position: "absolute", left: "63.16%", top: "82.17%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(50px, 13%, 100px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>RAG Frameworks</b>
  </div>

  <div style={{position: "absolute", left: "36.84%", top: "82.17%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(50px, 13%, 100px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>Vector Databases</b>
  </div>

  <div style={{position: "absolute", left: "28.68%", top: "40.87%", transform: "translate(-50%, -50%)", textAlign: "center", width: "clamp(50px, 13%, 100px)"}}>
    <b style={{color: "var(--fg-primary)", fontSize: "clamp(0.55rem, 2vw, 0.85em)"}}>Custom / Other</b>
  </div>
</div>

## Categories

* **[LLM Providers](/sdk/integrations/openai)** — trace chat completions, streaming, tool calls, and token/cost usage for direct LLM API clients like OpenAI, Anthropic, and Bedrock.
* **[Agent Frameworks](/sdk/integrations/langchain)** — trace chains, agents, tools, and multi-step runs in orchestration frameworks like LangChain, CrewAI, and AutoGen.
* **[RAG Frameworks](/sdk/integrations/llamaindex)** — trace retrieval and generation steps in RAG frameworks like LlamaIndex and Haystack.
* **[Vector Databases](/sdk/integrations/chroma)** — trace query, add, and upsert calls against vector stores like Chroma, Pinecone, Qdrant, and Weaviate.
* **[Custom / Other](/sdk/integrations/custom)** — instrument anything not covered above yourself with `startSpan` / `start_span`.

## Which integration for your stack

| If you're using...                                            | Start here                                      |
| ------------------------------------------------------------- | ----------------------------------------------- |
| OpenAI, Anthropic, or another LLM API directly                | [LLM Providers](/sdk/integrations/openai)       |
| LangChain, CrewAI, AutoGen, or another agent framework        | [Agent Frameworks](/sdk/integrations/langchain) |
| LlamaIndex or Haystack for RAG                                | [RAG Frameworks](/sdk/integrations/llamaindex)  |
| Pinecone, Chroma, Qdrant, or Weaviate directly (no framework) | [Vector Databases](/sdk/integrations/chroma)    |
| None of the above / a custom setup                            | [Custom / Other](/sdk/integrations/custom)      |
