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

# Integrations Overview

> Choose the right Xenovia integration for your SDK, framework, or OpenAI-compatible runtime.

If your stack can speak the OpenAI API, Xenovia usually fits with a `base_url` change. Start there unless you need to govern actions that happen outside the model call itself.

## Recommended order

1. Start with the framework your production workload already uses.
2. If you are unsure, use the [OpenAI SDK](/integrations/openai-sdk) guide because it maps cleanly to most OpenAI-compatible clients.
3. Add the [Xenovia Python SDK](/integrations/xenovia-sdk) when you need policy checks around downstream actions.

## Proxy mode integrations

Xenovia Runtime is an OpenAI-compatible proxy. Any client that accepts a custom `base_url` works without further changes, and every call passes through Xenovia's policy and trace pipeline.

```text theme={null}
https://runtime.xenovia.io/a/{proxy_id}/openai/v1
```

Provider credentials are configured in the proxy and resolved server-side.

<CardGroup cols={2}>
  <Card title="OpenAI SDK" icon="python" href="/integrations/openai-sdk">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/openai.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=06ad71a542411a44f5b39d53233af4a6" alt="OpenAI SDK badge" width="260" height="72" data-path="images/integrations/openai.svg" />

    Python and Node.js. Best default starting point for any OpenAI-compatible client.
  </Card>

  <Card title="LangChain" icon="link" href="/integrations/langchain">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/langchain.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=d56e3ac77fce96b9b64d8e4e134e2647" alt="LangChain badge" width="260" height="72" data-path="images/integrations/langchain.svg" />

    Python and JS chains, agents, and RAG pipelines.
  </Card>

  <Card title="LlamaIndex" icon="database" href="/integrations/llamaindex">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/llamaindex.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=007d0fb2058602d695db9ad0dffe10d8" alt="LlamaIndex badge" width="260" height="72" data-path="images/integrations/llamaindex.svg" />

    RAG pipelines and agentic query engines.
  </Card>

  <Card title="OpenAI Agents SDK" icon="robot" href="/integrations/openai-agents-sdk">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/openai-agents.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=ca1aa6839929f1afd886c883ddd1c6fe" alt="OpenAI Agents badge" width="260" height="72" data-path="images/integrations/openai-agents.svg" />

    Multi-agent orchestration with the Responses API.
  </Card>

  <Card title="Vercel AI SDK" icon="triangle" href="/integrations/vercel-ai-sdk">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/vercel.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=de88b570963f2e94ec10cb94314dadef" alt="Vercel AI SDK badge" width="260" height="72" data-path="images/integrations/vercel.svg" />

    Next.js and edge streaming.
  </Card>

  <Card title="AutoGen / CrewAI" icon="users" href="/integrations/autogen-crewai">
    <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/autogen-crewai.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=effefd9ba92dc5e90e789db7e080fa05" alt="AutoGen and CrewAI badge" width="260" height="72" data-path="images/integrations/autogen-crewai.svg" />

    Multi-agent frameworks that can sit on top of an OpenAI-compatible endpoint.
  </Card>
</CardGroup>

## SDK mode

The [Xenovia Python SDK](/integrations/xenovia-sdk) (`pip install xenovia-sdk`) gates arbitrary agent actions such as tool calls, database writes, API requests, and file operations without proxying an LLM call.

```python theme={null}
from xenovia_sdk import Xenovia

xenovia = Xenovia(api_key="xe_...", identity_id="billing-agent")

@xenovia.guard(capability="payments.transfer")
def transfer_funds(payload: dict) -> dict:
    return run_transfer(payload["amount"], payload["to"])

result = transfer_funds({"amount": 500, "to": "acct_123"})
```

<Card title="Xenovia Python SDK" icon="python" href="/integrations/xenovia-sdk">
  <img src="https://mintcdn.com/xenovia/HGGXwqWhKQ35yRdl/images/integrations/xenovia-sdk.svg?fit=max&auto=format&n=HGGXwqWhKQ35yRdl&q=85&s=45f5c5401a0072df4422193cb1696e40" alt="Xenovia SDK badge" width="260" height="72" data-path="images/integrations/xenovia-sdk.svg" />

  Full SDK reference for `execute()`, `@guard()`, session handling, and error behavior.
</Card>

## Choose the right guide

|                          | Proxy mode                                            | SDK mode                                                |
| ------------------------ | ----------------------------------------------------- | ------------------------------------------------------- |
| **What is governed**     | Every LLM call through the proxy                      | Arbitrary agent actions such as tools, writes, and APIs |
| **Code change required** | `base_url` swap only                                  | `execute()` call or `@guard()` decorator                |
| **Policy input**         | Full LLM request context                              | Capability string plus payload                          |
| **Trace contains**       | LLM request and response, tokens, latency, tool calls | Capability, payload, decision, and session              |
| **Session tracking**     | Automatic via Xenovia session resolution              | Explicit `session_id` or `auto_session=True`            |

Use both together: proxy mode for LLM governance, SDK mode for downstream tool governance.

## If your framework is not listed

* If it accepts an OpenAI-compatible `base_url`, start from the [OpenAI SDK](/integrations/openai-sdk) guide.
* If it only needs HTTP access, point it at `https://runtime.xenovia.io/a/{proxy_id}/openai/v1`.
* If the framework makes risky local calls after the model response, add the [Xenovia Python SDK](/integrations/xenovia-sdk) alongside it.

## Supported proxy endpoints

| Endpoint                    | Use case                              |
| --------------------------- | ------------------------------------- |
| `POST /v1/chat/completions` | Chat, agents, tool calling            |
| `POST /v1/responses`        | OpenAI Agents SDK and multi-step runs |
| `POST /v1/embeddings`       | RAG and vector search                 |
| `POST /v1/completions`      | Legacy text completions               |
