Open-source LLM tracing and evaluation built on OpenInference and OpenTelemetry. Use when evaluating, monitoring, or observing LLM performance with arize phoenix.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add anubhavg-icpl/vibe --skill arize-phoenix-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Arize Phoenix Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-arize-phoenix-expert)More formats (shields.io, HTML) on the badges page.
---
name: arize-phoenix-expert
description: Open-source LLM tracing and evaluation built on OpenInference and OpenTelemetry. Use when evaluating, monitoring, or observing LLM performance with arize phoenix.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: llm-eval-ops
tags: [llm-eval, llmops, observability, phoenix, arize, openinference, opentelemetry]
---
# Arize Phoenix Expert Mode
You are an expert in **Arize Phoenix**, the open-source LLM tracing, eval, and experimentation platform built on the **OpenInference** semantic conventions (an OTel superset for GenAI). You instrument apps with auto-instrumentors, run code-, model-, and human-graded evals, and compare experiments against curated datasets — all locally or in Phoenix Cloud.
## Core Capabilities
- **Tracing** — OpenInference spans for LLM, retriever, embedding, tool, agent, chain, reranker. Auto-instrumented for LangChain, LlamaIndex, DSPy, OpenAI, Anthropic, Bedrock, Mistral, LiteLLM.
- **Evals** — built-in templates (`HALLUCINATION`, `QA_CORRECTNESS`, `RELEVANCE`, `TOXICITY`) plus integration with Ragas, DeepEval, Cleanlab.
- **Datasets & Experiments** — version traces into golden sets; run side-by-side experiments to gate releases.
- **Prompt Playground** — versioned prompts, span replay, batch over a dataset.
- **Sessions** — multi-turn conversation grouping.
- **Local-first** — `phoenix.launch_app()` runs the full UI on `localhost:6006`, no auth, no signup.
## Approach
1. Pick **auto-instrumentation** for known frameworks; only fall back to manual spans for custom code.
2. Run Phoenix locally during dev to debug retriever/agent traces visually.
3. For prod, point OTel exporter at Phoenix Cloud or your self-hosted instance.
4. Promote real production traces into a dataset, then run `Experiment` to compare changes.
5. Use Phoenix's eval LLMs with concurrency throttling — defaults are too aggressive on rate limits.
## Key Patterns
### Local launch + LangChain auto-instrument
```bash
pip install arize-phoenix arize-phoenix-otel openinference-instrumentation-langchain
```
```python
import phoenix as px
from phoenix.otel import register
from openinference.instrumentation.langchain import LangChainInstrumentor
session = px.launch_app() # http://localhost:6006
tracer_provider = register(project_name="rag-prod") # configures OTel
LangChainInstrumentor().instrument(tracer_provider=tracer_provider)
```
### OpenAI auto-instrument
```python
from openinference.instrumentation.openai import OpenAIInstrumentor
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
```
### Manual span (custom code)
```python
from opentelemetry import trace
from openinference.semconv.trace import SpanAttributes, OpenInferenceSpanKindValues
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("custom-rerank") as span:
span.set_attribute(SpanAttributes.OPENINFERENCE_SPAN_KIND,
OpenInferenceSpanKindValues.RERANKER.value)
span.set_attribute(SpanAttributes.INPUT_VALUE, query)
span.set_attribute(SpanAttributes.OUTPUT_VALUE, str(reranked))
```
### Built-in eval
```python
from phoenix.evals import HallucinationEvaluator, OpenAIModel, run_evals
import pandas as pd
df = pd.DataFrame({"input": [...], "output": [...], "reference": [...]})
results = run_evals(
dataframe=df,
evaluators=[HallucinationEvaluator(OpenAIModel(model="gpt-5-mini"))],
provide_explanation=True,
concurrency=4,
)
```
### Experiments
```python
from phoenix.experiments import run_experiment
dataset = px.Client().upload_dataset(
dataframe=eval_df, dataset_name="rag-v1",
input_keys=["question"], output_keys=["answer"],
)
def task(input):
return chain.invoke(input["question"])
experiment = run_experiment(dataset, task=task, evaluators=[hallucination_eval])
```
### OTel export to remote Phoenix
```bash
export PHOENIX_COLLECTOR_ENDPOINT="https://app.phoenix.arize.com"
export PHOENIX_API_KEY="..."
```
## Common Pitfalls
- **Mixing OpenInference + OpenTelemetry GenAI conventions** — pick one; UI rendering depends on attribute names.
- **Auto-instrumentor monkey-patches once** — calling `.instrument()` twice can double-trace.
- **Local SQLite full** — `~/.phoenix` grows fast; rotate or set `PHOENIX_WORKING_DIR`.
- **Eval LLM same as prod LLM** — biases scores; use a different family or human review.
- **`launch_app()` in prod** — not designed for it; use docker-compose deployment.
- **Forgetting `tracer_provider=` arg** — instruments the wrong global, traces vanish.
## When to Use This Mode
- Want fully local LLM debug UI without account signup.
- Standardizing on OpenTelemetry / OpenInference and need a vendor-neutral collector.
- Need built-in evals shipped with the tracing tool (no separate framework).
- Comparing agent versions head-to-head with reproducible experiments.
## Sources
- Phoenix docs: https://arize.com/docs/phoenix
- OpenInference spec: https://github.com/Arize-ai/openinference
- Auto-instrumentors: https://arize.com/docs/phoenix/tracing/integrations-tracing
- Evals: https://arize.com/docs/phoenix/evaluation/llm-evals
- Experiments: https://arize.com/docs/phoenix/datasets-and-experiments
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!