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

# Instrumenting your agent

> Wrap a raw LLM client, or instrument the framework your agent is built on.

<Note>
  Framework coverage is rolling out. Check the SDK release notes for the current
  list of supported frameworks and exact signatures.
</Note>

## Wrapping a client

The simplest integration is to wrap the LLM client your agent already uses.
Visceral observes the traffic and never alters the response:

```python theme={null}
import visceral
from openai import OpenAI

client = visceral.wrap(OpenAI())
```

Use the wrapped client exactly as you used the original.

## Instrumenting a framework

If your agent is built on a framework (for example LangChain or LangGraph),
Visceral can instrument it directly so you don't have to wrap each client by hand:

```python theme={null}
import visceral

visceral.instrument()  # illustrative — see release notes for supported frameworks
```

## Fail open

However you integrate, the guarantee is the same: if Visceral's backend is
unreachable, instrumented calls fall through to the underlying provider unchanged.
Instrumentation can never be the reason a call fails. See
[How it works](/concepts/how-it-works).
