Radicas Docs
Python SDK

Installation

Install the radicas package, pick your framework extra, and choose between the local lab and hosted Radicas.

Requirements

  • Python 3.10+ (3.10 – 3.13 tested in CI on 3.10 and 3.12)
  • An OTLP-reachable Radicas: either a local Radicas instance (localhost:4317) or a hosted Radicas ingest endpoint plus an API key

The core package depends only on the OpenTelemetry SDK and OTLP exporters — framework instrumentors come in via extras so you install exactly what you use.

Pick your extra

pip install "radicas[adk]"

Agent frameworks (build the agent loop for you):

ExtraInstallsFor
radicas[adk]google-adkGoogle ADK (native gen_ai.* — the extra is just the framework itself)
radicas[pydantic-ai]pydantic-aiPydantic AI (native OTel)
radicas[langchain]openinference-instrumentation-langchainLangChain and LangGraph
radicas[crewai]openinference-instrumentation-crewaiCrewAI
radicas[llamaindex]openinference-instrumentation-llama-indexLlamaIndex
radicas[openai-agents]openinference-instrumentation-openai-agentsOpenAI Agents SDK

Providers (raw LLM SDK / router — you hand-write the loop):

ExtraInstallsFor
radicas[litellm]litellmLiteLLM router/proxy (native gen_ai.* callback)
radicas[anthropic]openinference-instrumentation-anthropicraw Anthropic SDK calls
radicas[openai]openinference-instrumentation-openairaw OpenAI SDK calls

radicas[all] installs everything above — kitchen sink, not recommended for production images.

Plain pip install radicas (no extra) is valid too: you get transport, validation, feature tagging, and client-side normalization — useful when your framework is already installed or when it needs no instrumentor (ADK works with the plain install if google-adk is present).

LOCAL lab vs ONLINE

The SDK picks its defaults from one signal: is an API key present?

LOCAL (no API key)ONLINE (RADICAS_API_KEY set)
Endpointhttp://localhost:4317https://ingest.radicas.io
ProtocolgRPChttp/protobuf
Authnone (lab shim)Authorization: Bearer header
Tenantradicas.tenant_id resource attribute (from RADICAS_TENANT_ID, default radicas-lab)resolved from the key by the gateway — never sent by the client

LOCAL expects a local Radicas collector running on :4317. Going ONLINE is an environment swap, not a code change:

export RADICAS_API_KEY=rad_...        # issued once at onboarding
python my_agent.py                    # same code, now exporting to hosted Radicas

Every default can be overridden — see configuration.

Verify the install

import radicas
print(radicas.__version__)            # 0.1.0
radicas.init(instrument="none")       # logs "radicas telemetry ready: ..." on success,
                                      # or ONE actionable warning if the endpoint is down

On this page