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-indexUse
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_index— expected, 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_toolis 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 helperBench example (agent runnable, telemetry pending): agents/llamaindex/python in
radicas-integrations.