Skip to main content
Framework coverage is rolling out. Check the SDK release notes for the current list of supported frameworks and exact signatures.

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:
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:
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.