Skip to Content
RiusSDKIntegrations

Integrations

Rius integrates with the client libraries, agent frameworks, and protocols agents are built on: model calls arrive as generations with tokens and cost, and run structure arrives from the framework’s own spans or a thin layer of observe wrappers. Each integration’s page covers setup, what lands in the trace, and the blind spots.

Support matrix

IntegrationTypeModel calls captured byPythonTypeScript
OpenAIClient librarythe openai instrumentation
AnthropicClient librarythe anthropic instrumentation
LangChainFrameworkits callbacks, hooked by the langchain instrumentation
LlamaIndexFrameworkthe llama-index instrumentationN/A
LiteLLMRouterthe litellm instrumentationN/A
MCPProtocolinstrumentation bundled in the SDK
Vercel AI SDKFrameworkits OpenTelemetry telemetryN/A
OpenAI Agents SDKAgent frameworkthe openai instrumentation underneathN/A
Pydantic AIAgent frameworkits native OpenTelemetry spansN/A
CrewAIAgent frameworkthe openai instrumentation (litellm when LiteLLM is installed)N/A
AutoGenAgent frameworkits native OpenTelemetry spans plus the openai instrumentationN/A
Claude Agent SDKAgent frameworkmanual tracing: an observe root plus a generation filled from the run resultN/A

“N/A” means no integration in that language today; trace those calls with manual generations. Install commands and package names live on each integration’s page.

Installing

Each integration is an optional extra, and extras can be combined:

pip install "glassflow-rius[openai]" pip install "glassflow-rius[anthropic,langchain]" pip install "glassflow-rius[instruments]" # all of them

Each extra installs the instrumentation for a library, never the library itself. glassflow-rius[anthropic] expects anthropic to be in your environment already, which it is in any project that calls Anthropic: Rius deliberately takes no dependency on provider SDKs, so it never pins or upgrades the versions your code runs against. An extra installed without its library makes init() log a DependencyConflict from OpenTelemetry and leaves that integration off, which is the one failure worth recognizing here; see Troubleshooting.

mcp needs no extra at all. Its instrumentation ships inside the SDK rather than as a separate package, so there is nothing for an extra to add: it turns itself on whenever the mcp package is importable, which it is in any agent that calls MCP tools.

The client-library integrations are powered by OpenInference , the open source (Apache-2.0) instrumentation project from Arize AI; the SDK bundles its instrumentors and wires them into the Rius pipeline. The MCP integration is built into the SDK itself.

Enabling

With a default (global) init(), every installed integration is enabled automatically:

rius.init() # everything installed rius.init(instruments=["openai"]) # only OpenAI rius.init(instruments=[]) # none

Details worth knowing:

  • Requesting an integration whose package is not installed logs a warning and continues; a broken instrumentor never blocks init().
  • If a library is already instrumented by other OpenTelemetry code (not by this SDK), it is left alone.
  • Scoped clients (set_global=False) do not auto-instrument, because instrumentors patch libraries process-wide; pass instruments=[...] explicitly to opt in.

In TypeScript the loud and quiet cases are deliberately split: a package you did not install stays silent, while a package that is installed but fails to load logs a warning naming the integration and the underlying error. Either way init() continues, and the remaining integrations still attach.

Last updated on