Radicas Docs
Framework integrationsAgent frameworks

LlamaIndex

Connect LlamaIndex agents and workflows to Radicas via the OpenInference instrumentor.

Status: experimental — the strategy is implemented, but the deep-dive has NOT validated this path: no captured fixture and no registry card yet (expected card: openinference.llama_index).

Install

pip install "radicas[llamaindex]"   # = radicas + openinference-instrumentation-llama-index

Use

import radicas

radicas.init(service="pricing-agent", feature="flight-pricing")
# instrument="auto" detects llama_index and activates
# LlamaIndexInstrumentor().instrument() — or: radicas.init(instrument=["llamaindex"])

from llama_index.core.agent.workflow import FunctionAgent
agent = FunctionAgent(tools=[...], llm=llm)
response = await agent.run(prompt)
radicas.shutdown()

What it emits

  • Scope name: openinference.instrumentation.llama_indexexpected, pending fixture.
  • Namespace: llm.* / openinference.*, built on LlamaIndex's own instrumentation dispatcher (llama_index.core.instrumentation).
  • Coverage: expected, pending fixture — no registry card yet.

Shim behavior

  • Client-side adapter: intended, pending card — spans pass through unmapped until the registry card lands.
  • Server-side OTTL: pending the same card.

Known limitations

  • Not fixture-verified end-to-end.
  • LlamaIndex spans lean toward retrieval/workflow steps; how cleanly the LLM calls and tool calls map to generate_content / execute_tool is the deep-dive's question to answer.

Verify it works

SELECT model, input_tokens, output_tokens, estimated_cost_usd
  FROM otel.llm_call ORDER BY ts DESC LIMIT 5;
SELECT DISTINCT ScopeName, SpanName FROM otel_traces ORDER BY 1, 2;   -- deep-dive helper

Bench example (agent runnable, telemetry pending): agents/llamaindex/python in radicas-integrations.

On this page