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

# Versions not verified

> What BotGauge does with framework versions it hasn't certified: traces them with a warning, skips known-broken ones, and lets CI enforce verified versions.

BotGauge calls a version **verified** only when that exact framework and instrumentor pair passed certification, as listed on the [supported frameworks](https://www.botgauge.com/docs/integrations/overview.md) page. Every other version may work, but isn't verified. That includes versions that are:

* older than the oldest verified version, which may lack what tracing needs
* between two verified versions
* newer than the latest verified version
* a verified framework version with a different instrumentor version
* a pre-release, because BotGauge verifies final releases only

## What botgauge instrument does

`botgauge instrument` still traces these versions. Startup logs one line per framework with the reason, for example:

```text theme={null}
botgauge: tracing openai at a version BotGauge has not verified: openai 3.40.0 is newer than the latest version BotGauge verified (3.35.1); verified: openai 2.45.0 with openinference-instrumentation-openai 0.1.61; ...
```

You can change that behavior.

| Control | Effect |
| - | - |
| `BOTGAUGE_VERIFIED_ONLY=1` | Traces only verified versions. The others are skipped, and a startup line says why. |
| `botgauge instrument --strict` | Won't start your app when BotGauge would trace a framework at a version that isn't verified. Exits 1 with `botgauge: --strict: not starting the application: version not verified: openai (...)`. Use it as a CI gate. |
| `BOTGAUGE_PRODUCER_OWNER=<framework>=customer` | Turns BotGauge off for one framework you instrument yourself. Those frameworks aren't checked by `--strict`. |

A version BotGauge knows breaks tracing is never traced. Startup logs `instrumentor selection skipped` with the reason. Upgrade or downgrade the framework, or upgrade BotGauge if a newer release supports it.

> [!WARNING]
>
> Span names and attributes can differ from the verified versions. Check a few traces before relying on an unverified version.

## Instrumentors that don't support your version

An instrumentor that doesn't support your framework version can fail in two ways. Google ADK shows both.

> **It declines**
>
> Instrumentor 1.0.0 and newer (the `[google-adk]` extra installs 1.0.4) requires google-adk 2.10 or newer. On 2.9.2 it patches nothing. BotGauge reports ADK as skipped with `instrumentor did not instrument: DependencyConflict: requested: "google-adk >= 2.10.0" but found: "google-adk 2.9.2"`, so it never claims ADK is traced. Only ADK's own built-in spans arrive.
>
> Upgrade ADK. For ADK 2.9.x, install `botgauge` without the extra, plus `openinference-instrumentation-google-adk==0.1.28`, which traced ADK 2.9.2 as a version that isn't verified.

> **It raises**
>
> Instrumentor 0.1.28 raises `AttributeError` part-way through setup on google-adk 2.10.0. Under `botgauge instrument`, BotGauge catches it and logs `failed to activate instrumentor 'google_adk' (AttributeError)`. The app runs normally but is only partly traced: you get the instrumentor's `agent_run` and invocation spans plus ADK's own spans.
>
> BotGauge catches errors while it activates an instrumentor, not errors raised later inside your app's own calls.

> [!WARNING]
>
> In code, an instrumentor that doesn't support your framework version can crash your app at startup. With google-adk 2.10.0 and instrumentor 0.1.28, `GoogleADKInstrumentor().instrument()` raises `AttributeError` and the app exits. The `[google-adk]` extra installs instrumentor 1.0.4, which works on ADK 2.10 and newer, so don't pin 0.1.28 with ADK 2.10. Run your app once with tracing on before you deploy.

## Already instrumented, or a framework that isn't listed

> **You already have the instrumentor installed**
>
> `pip install botgauge` is enough. `botgauge instrument` finds installed instrumentors whichever way they were installed. If your app already calls `.instrument()` itself, BotGauge leaves it alone instead of instrumenting twice. `BOTGAUGE_PRODUCER_OWNER=<framework>=customer` makes that explicit.

> **You already use OpenTelemetry**
>
> `tracing.init()` attaches to your existing tracer provider instead of replacing it, so spans from your instrumentation reach BotGauge too, with the same privacy masking.

> **Your framework isn't in the table**
>
> Zero-code doesn't trace it, but in code you can. Install its OpenInference instrumentor, or any instrumentor that follows the OpenTelemetry GenAI conventions, and call `.instrument(tracer_provider=provider)` after `provider = tracing.init()`. BotGauge exports those LLM and tool spans with the same privacy masking, though they aren't versions BotGauge has verified.

> **Your framework calls the OpenAI or Anthropic SDK underneath**
>
> The `[openai]` or `[anthropic]` extra traces those LLM calls, zero-code included, without the framework's own steps.

## In code with a version that isn't verified

The in-code samples also work with unverified versions, as long as the instrumentor supports them. Install `botgauge` without an extra, your framework, and the framework's latest instrumentor.

```bash terminal theme={null}
# botgauge (no extra), your framework version, and the latest instrumentor for it
pip install botgauge openai openinference-instrumentation-openai
```

| Framework | Instrumentor package |
| - | - |
| LangChain | `openinference-instrumentation-langchain` |
| LangGraph | `openinference-instrumentation-langchain` |
| OpenAI SDK | `openinference-instrumentation-openai` |
| Anthropic SDK | `openinference-instrumentation-anthropic` |
| LlamaIndex | `openinference-instrumentation-llama-index` |
| CrewAI | `openinference-instrumentation-crewai` |
| OpenAI Agents | `openinference-instrumentation-openai-agents` |
| Google ADK | `openinference-instrumentation-google-adk` |
| AutoGen | `openinference-instrumentation-autogen-agentchat` |
| PydanticAI | `openinference-instrumentation-pydantic-ai` |
| MCP | `openinference-instrumentation-mcp` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.