Install any skill in seconds. Free to start, no credit card required.
Get Started Free →You are an expert in Arize and its open-source Phoenix library for AI observability. You help developers monitor LLM applications with tracing, evaluation, embedding analysis, drift detection, and retrieval quality metrics — using Phoenix for local development (open-source, self-hosted) and Arize platform for production monitoring at scale.
.claude/skills/terminalskills-arize/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 7 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 29% | 0% |
You are an expert in Arize and its open-source Phoenix library for AI observability. You help developers monitor LLM applications with tracing, evaluation, embedding analysis, drift detection, and retrieval quality metrics — using Phoenix for local development (open-source, self-hosted) and Arize platform for production monitoring at scale.
pythonimport phoenix as px from phoenix.otel import register # Launch Phoenix locally (browser UI on localhost:6006) px.launch_app() # Register as OpenTelemetry trace provider tracer_provider = register(project_name="my-llm-app") # Auto-instrument OpenAI from openinference.instrumentation.openai import OpenAIInstrumentor OpenAIInstrumentor().instrument(tracer_provider=tracer_provider) # Now all OpenAI calls are traced import openai client = openai.OpenAI() response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Explain CRDT to a junior dev"}], ) # Open localhost:6006 — see traces, latency, tokens, cost
pythonfrom phoenix.evals import ( HallucinationEvaluator, QAEvaluator, RelevanceEvaluator, run_evals, ) from phoenix.evals.models import OpenAIModel eval_model = OpenAIModel(model="gpt-4o") # Evaluate RAG quality on your traces hallucination_eval = HallucinationEvaluator(eval_model) qa_eval = QAEvaluator(eval_model) relevance_eval = RelevanceEvaluator(eval_model) # Pull traces from Phoenix traces_df = px.Client().get_spans_dataframe( filter_condition="span_kind == 'LLM'", ) # Run evaluations results = run_evals( dataframe=traces_df, evaluators=[hallucination_eval, qa_eval, relevance_eval], provide_explanation=True, ) # Results: per-trace hallucination scores, QA accuracy, retrieval relevance # All visible in Phoenix UI with explanations
pythonimport phoenix as px import pandas as pd # Analyze embedding drift and clustering embeddings_df = pd.DataFrame({ "text": documents, "embedding": embeddings, # numpy arrays "category": categories, }) # Launch with embedding visualization session = px.launch_app( primary=px.Inferences(embeddings_df, schema=px.Schema( embedding=px.EmbeddingColumnNames( vector_column_name="embedding", raw_data_column_name="text", ), tag_column_names=["category"], )), ) # UMAP visualization in browser — see clusters, outliers, drift
pythonfrom arize.pandas.logger import Client from arize.utils.types import ModelTypes, Environments arize_client = Client( space_key=os.environ["ARIZE_SPACE_KEY"], api_key=os.environ["ARIZE_API_KEY"], ) # Log predictions for monitoring arize_client.log( dataframe=predictions_df, model_id="support-chatbot-v2", model_version="2.1.0", model_type=ModelTypes.GENERATIVE_LLM, environment=Environments.PRODUCTION, schema=arize_schema, ) # Arize platform: drift detection, performance dashboards, alerting
bashpip install arize-phoenix # Open-source local pip install arize # Arize platform client pip install openinference-instrumentation-openai # Auto-instrumentation
px.launch_app(); free, open-source, no data leaves your machine| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | pass→fail | 16,965 | 14,629 | -14% | 1 | 1 | 0% | 3,614 | 4,236 | +17% | 0 | 0 | — |
case-02 | pass→pass | 11,470 | 5,645 | -51% | 1 | 1 | 0% | 2,125 | 2,341 | +10% | 0 | 0 | — |
case-01 | fail→pass | 11,831 | 4,712 | -60% | 1 | 1 | 0% | 2,204 | 1,973 | -10% | 0 | 0 | — |
case-03 | pass→pass | 6,972 | 2,337 | -66% | 1 | 1 | 0% | 1,364 | 1,557 | +14% | 0 | 0 | — |
case-04 | pass→pass | 10,612 | 9,625 | -9% | 1 | 1 | 0% | 1,979 | 2,688 | +36% | 0 | 0 | — |
case-05 | fail→pass | 6,616 | 3,125 | -53% | 1 | 1 | 0% | 1,232 | 1,624 | +32% | 0 | 0 | — |
case-06 | pass→pass | 12,464 | 6,424 | -48% | 1 | 1 | 0% | 2,331 | 2,399 | +3% | 0 | 0 | — |
case-07 | pass→pass | 7,555 | 6,468 | -14% | 1 | 1 | 0% | 1,350 | 2,090 | +55% | 0 | 0 | — |
case-08 | fail→pass | 8,463 | 5,423 | -36% | 1 | 1 | 0% | 1,494 | 2,160 | +45% | 0 | 0 | — |
case-09 | pass→pass | 10,908 | 7,456 | -32% | 1 | 1 | 0% | 2,143 | 2,502 | +17% | 0 | 0 | — |
case-10 | pass→pass | 4,546 | 3,071 | -32% | 1 | 1 | 0% | 780 | 1,602 | +105% | 0 | 0 | — |
case-11 | fail→pass | 6,597 | 4,044 | -39% | 1 | 1 | 0% | 1,262 | 1,843 | +46% | 0 | 0 | — |
case-16 | pass→pass | 2,812 | 4,980 | +77% | 1 | 1 | 0% | 416 | 1,832 | +340% | 0 | 0 | — |
case-12 | pass→pass | 7,766 | 3,254 | -58% | 1 | 1 | 0% | 1,403 | 1,731 | +23% | 0 | 0 | — |
case-13 | pass→pass | 12,675 | 2,852 | -77% | 1 | 1 | 0% | 2,186 | 1,530 | -30% | 0 | 0 | — |
case-14 | fail→pass | 6,720 | 3,286 | -51% | 1 | 1 | 0% | 1,289 | 1,659 | +29% | 0 | 0 | — |
case-15 | pass→pass | 3,675 | 2,972 | -19% | 1 | 1 | 0% | 630 | 1,699 | +170% | 0 | 0 | — |
case-17 | fail→pass | 8,066 | 5,442 | -33% | 1 | 1 | 0% | 1,614 | 2,164 | +34% | 0 | 0 | — |
case-18 | pass→pass | 6,107 | 3,071 | -50% | 1 | 1 | 0% | 944 | 1,676 | +78% | 0 | 0 | — |
case-19 | fail→pass | 8,802 | 3,381 | -62% | 1 | 1 | 0% | 1,679 | 1,914 | +14% | 0 | 0 | — |
case-20 | pass→fail | 14,636 | 24,075 | +64% | 1 | 1 | 0% | 3,192 | 5,189 | +63% | 0 | 0 | — |
case-22 | pass→pass | 13,399 | 11,414 | -15% | 1 | 1 | 0% | 2,640 | 3,570 | +35% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.