phoenix Documentation

AI Observability & Evaluation

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy phoenix on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name phoenix --restart always postgres:18
Configured Services & Ports
βš™οΈ postgresql
image: postgres:18
βš™οΈ mysql
image: mysql:26
βš™οΈ mssql
image: mcr.microsoft.com/mssql/server:2019-latest
βš™οΈ runner
image: phoenix-integration-runner:${ELIXIR_IMAGE_TAG}
docker-compose.yml
yaml (docker-compose.yml)
services:
  postgresql:
    image: postgres:18
    command: -c max_connections=300
    environment:
      POSTGRES_PASSWORD: postgres
    tmpfs:
      - /var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -h 127.0.0.1"]
      start_period: 60s
      start_interval: 2s
      interval: 120s
      timeout: 3s
      retries: 1

  mysql:
    image: mysql:26
    command: --max-connections=300
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    tmpfs:
      - /var/lib/mysql
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 --protocol=TCP --silent"]
      start_period: 60s
      start_interval: 2s
      interval: 120s
      timeout: 3s
      retries: 1

  mssql:
    profiles:
      - mssql
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      ACCEPT_EULA: "Y"
      SA_PASSWORD: "some!Password"
    tmpfs:
      - /var/opt/mssql
    healthcheck:
      test: ["CMD-SHELL", "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P \"$$SA_PASSWORD\" -C -Q 'SELECT 1' 2>/dev/null || /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P \"$$SA_PASSWORD\" -Q 'SELECT 1' 2>/dev/null"]
      start_period: 60s
      start_interval: 2s
      interval: 120s
      timeout: 3s
      retries: 1

  runner:
    profiles:
      - runner
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - ELIXIR_IMAGE_TAG
    image: phoenix-integration-runner:${ELIXIR_IMAGE_TAG}
    init: true
    volumes:
      - ..:/phoenix
      - build_cache:/phoenix/integration_test/_build
      - deps_cache:/phoenix/integration_test/deps
      - installer_generated_apps_tmp:/phoenix/installer/tmp
    working_dir: /phoenix/integration_test
    environment:
      ELIXIR_ASSERT_TIMEOUT: 10000
      MIX_OS_DEPS_COMPILE_PARTITION_COUNT: ${MIX_OS_DEPS_COMPILE_PARTITION_COUNT:-2}
      MAKEFLAGS: ${MAKEFLAGS:--j2}
    depends_on:
      postgresql:
        condition: service_healthy
      mysql:
        condition: service_healthy
      mssql:
        condition: service_healthy
        required: false

volumes:
  build_cache:
    name: phoenix_integration_build_cache_${ELIXIR_IMAGE_TAG}
  deps_cache:
    name: phoenix_integration_deps_cache_${ELIXIR_IMAGE_TAG}
  installer_generated_apps_tmp:

Phoenix is an open-source AI observability platform designed for experimentation, evaluation, and troubleshooting. It provides:

  • Tracing - Trace your LLM application's runtime using OpenTelemetry-based instrumentation.
  • Evaluation - Leverage LLMs to benchmark your application's performance using response and retrieval evals.
  • Datasets - Create versioned datasets of examples for experimentation, evaluation, and fine-tuning.
  • Experiments - Track and evaluate changes to prompts, LLMs, and retrieval.
  • Playground- Optimize prompts, compare models, adjust parameters, and replay traced LLM calls.
  • Prompt Management- Manage and test prompt changes systematically using version control, tagging, and experimentation.
  • PXI (Phoenix Intelligence) - An AI engineering agent built into Phoenix for debugging traces, iterating on prompts, and navigating the product.
  • Remote MCP Server - Connect Claude Code, Cursor, and other MCP clients directly to your Phoenix instance's /mcp endpoint to query traces, datasets, experiments, and more.

Phoenix is vendor and language agnostic with out-of-the-box support for popular frameworks (OpenAI Agents SDK, Claude Agent SDK, LangGraph, Vercel AI SDK, Mastra, CrewAI, LlamaIndex, DSPy) and LLM providers (OpenAI, Anthropic, Google GenAI, Google ADK, AWS Bedrock, OpenRouter, LiteLLM, and more). For details on auto-instrumentation, check out the OpenInference project.

Phoenix runs practically anywhere, including your local machine, a containerized deployment, or in the cloud. See Environments for a walkthrough of each option, or jump straight into the Tracing Quickstart.

Table of Contents

Run Locally

Install Phoenix via pip or conda and have a fully functional Phoenix. For all installation and hosting options, see the install guide.

shell
pip install arize-phoenix
phoenix serve

Or run it with no install using uvx:

shell
uvx arize-phoenix serve

Trace Your Application

The fastest way to send traces is to let your coding agent (Claude Code, Codex, Cursor, and others) instrument your app. From your project directory, run:

shell
npx @arizeai/phoenix-cli setup
# or, with Phoenix installed: px setup

Setup detects your framework and LLM provider, installs the right OpenInference instrumentation, and wires up trace export. Prefer to wire it up in code? See the tracing documentation.

Deploy

Phoenix container images are available via Docker Hub and can be deployed using Docker or Kubernetes via the Helm chart.

For Docker Compose, Kubernetes/Helm, and other deployment options, see the self-hosting documentation.

[!NOTE]
The Google Cloud button builds Phoenix from source in Cloud Shell rather than deploying the prebuilt Docker Hub image. The Azure template serves plain HTTP (Azure Container Instances does not terminate TLS) β€” front it with a TLS proxy such as an Application Gateway before production use.

Packages

The arize-phoenix package includes the entire Phoenix platform. However, if you have deployed the Phoenix platform, there are lightweight Python sub-packages and TypeScript packages that can be used in conjunction with the platform.

Python Subpackages

Package Version & Docs Description
arize-phoenix-otel Provides a lightweight wrapper around OpenTelemetry primitives with Phoenix-aware defaults
arize-phoenix-client Lightweight client for interacting with the Phoenix server via its OpenAPI REST interface
arize-phoenix-evals Tooling to evaluate LLM applications including RAG relevance, answer relevance, and more

TypeScript Subpackages

Package Version & Docs Description
@arizeai/phoenix-otel Provides a lightweight wrapper around OpenTelemetry primitives with Phoenix-aware defaults
@arizeai/phoenix-client Client for the Arize Phoenix API
@arizeai/phoenix-evals TypeScript evaluation library for LLM applications (alpha release)
@arizeai/phoenix-mcp Standalone stdio MCP server for older Phoenix versions (maintenance mode β€” superseded by the remote MCP server built into Phoenix)
@arizeai/phoenix-cli CLI for fetching traces, datasets, and experiments for use with Claude Code, Cursor, and other coding agents

Tracing Integrations

Phoenix is built on top of OpenTelemetry and is vendor, language, and framework agnostic. For details about tracing integrations and example applications, see the OpenInference project and the integrations documentation.

Python Integrations

Integration Package Version
OpenAI openinference-instrumentation-openai
OpenAI Agents openinference-instrumentation-openai-agents
LlamaIndex openinference-instrumentation-llama-index
DSPy openinference-instrumentation-dspy
AWS Bedrock openinference-instrumentation-bedrock
LangChain openinference-instrumentation-langchain
LangGraph openinference-instrumentation-langchain
MistralAI openinference-instrumentation-mistralai
Cohere openinference-instrumentation-cohere
Together AI openinference-instrumentation-together
Ollama openinference-instrumentation-ollama
Google GenAI openinference-instrumentation-google-genai
Google ADK openinference-instrumentation-google-adk
Guardrails openinference-instrumentation-guardrails
VertexAI openinference-instrumentation-vertexai
CrewAI openinference-instrumentation-crewai
Haystack openinference-instrumentation-haystack
LiteLLM openinference-instrumentation-litellm
OpenRouter openinference-instrumentation-openai
OrcaRouter openinference-instrumentation-openai
Groq openinference-instrumentation-groq
Instructor openinference-instrumentation-instructor
Anthropic openinference-instrumentation-anthropic
Smolagents openinference-instrumentation-smolagents
Agno openinference-instrumentation-agno
BeeAI openinference-instrumentation-beeai
Strands Agents openinference-instrumentation-strands-agents
Restate openinference-instrumentation-openai-agents
MCP openinference-instrumentation-mcp
Pydantic AI openinference-instrumentation-pydantic-ai
AG2 openinference-instrumentation-ag2
Autogen AgentChat openinference-instrumentation-autogen-agentchat
Portkey openinference-instrumentation-portkey
Agent Spec openinference-instrumentation-agentspec
Claude Agent SDK openinference-instrumentation-claude-agent-sdk

Span Processors

Normalize and convert data across other instrumentation libraries by adding span processors that unify data.

Package Description Version
openinference-instrumentation-openlit OpenInference Span Processor for OpenLIT traces.
openinference-instrumentation-openllmetry OpenInference Span Processor for OpenLLMetry (Traceloop) traces.

JavaScript Integrations

Integration Package Version
OpenAI @arizeai/openinference-instrumentation-openai
OpenAI Agents @arizeai/openinference-instrumentation-openai-agents
LangChain.js @arizeai/openinference-instrumentation-langchain
TanStack AI @arizeai/openinference-tanstack-ai
Vercel AI SDK @arizeai/openinference-vercel
BeeAI @arizeai/openinference-instrumentation-beeai
Claude Agent SDK @arizeai/openinference-instrumentation-claude-agent-sdk
Mastra @mastra/arize
MCP @arizeai/openinference-instrumentation-mcp

Java Integrations

Integration Package Version
LangChain4j openinference-instrumentation-langchain4j
SpringAI openinference-instrumentation-springAI
Arconia for Spring AI io.arconia:arconia-openinference-semantic-conventions

Go Integrations

Integration Package Version
OpenAI github.com/Arize-ai/openinference/go/openinference-instrumentation-openai-go
Anthropic github.com/Arize-ai/openinference/go/openinference-instrumentation-anthropic-sdk-go

Platforms

Platform Description Docs
BeeAI AI agent framework with built-in observability Integration Guide
Dify Open-source LLM app development platform Integration Guide
Envoy AI Gateway AI Gateway built on Envoy Proxy for AI workloads Integration Guide
LangFlow Visual framework for building multi-agent and RAG applications Integration Guide
LiteLLM Proxy Proxy server for LLMs Integration Guide
Flowise Visual framework for building LLM applications Integration Guide
Prompt Flow Microsoft's prompt flow orchestration tool Integration Guide
NVIDIA NeMo NVIDIA NeMo Agent Toolkit for enterprise agents Integration Guide
Graphite Multi-agent LLM workflow framework with visual builder Integration Guide

Sandboxes

Run Phoenix code evaluators in hosted sandbox providers for kernel-level isolation and runtime dependency installation.

Integration Description Docs
E2B Hosted micro-VM sandboxes for AI-generated code Integration Guide
Daytona Managed development sandboxes with snapshot startup Integration Guide
Vercel Sandbox Ephemeral compute on Vercel's infrastructure Integration Guide
Modal Serverless, Python-first container platform Integration Guide

For Humans and Coding Agents

Phoenix is built to be driven by people and by AI coding agents alike. Three surfaces let agents (Claude Code, Codex, Cursor, and others) work with your traces, datasets, and experiments:

  • CLI β€” npx @arizeai/phoenix-cli fetches traces, datasets, and experiments and instruments your app (setup), so an agent can pull context and act on it from the terminal.
  • Skills β€” .agents/skills/ packages workflows that teach agents how to debug, evaluate, and trace with Phoenix.
  • Remote MCP Server β€” connect any MCP client to your instance's /mcp endpoint to query Phoenix directly.

See the coding agents documentation for setup and usage.

Skill Description
phoenix-cli Debug LLM applications using the Phoenix CLI β€” fetch traces, analyze errors, review experiments, and query the GraphQL API
phoenix-evals Build and run evaluators for AI/LLM applications using Phoenix
phoenix-tracing OpenInference semantic conventions and instrumentation for tracing LLM applications

Security & Privacy

We take data security and privacy very seriously. For more details, see our Security and Privacy documentation.

Telemetry

By default, Phoenix collects basic web analytics (e.g., page views, UI interactions) to help us understand how Phoenix is used and improve the product. None of your trace data, evaluation results, or any sensitive information is ever collected.

You can opt-out of telemetry by setting the environment variable: PHOENIX_TELEMETRY_ENABLED=false

Community

Join our community to connect with thousands of AI builders.

  • 🌍 Join our Slack community.
  • πŸ“š Read our documentation.
  • πŸ’‘ Ask questions and provide feedback in the #phoenix-support channel.
  • 🌟 Leave a star on our GitHub.
  • 🐞 Report bugs with GitHub Issues.
  • 𝕏 Follow us on 𝕏.
  • πŸ’Ό Follow us on LinkedIn.
  • πŸ—ΊοΈ Check out our roadmap to see where we're heading next.
  • πŸ§‘β€πŸ« Deep dive into everything Agents and LLM Evaluations on Arize's Learning Hubs.

Breaking Changes

See the migration guide for a list of breaking changes.

Copyright 2025 Arize AI, Inc. All Rights Reserved.

Portions of this code are patent protected by one or more U.S. Patents. See the IP_NOTICE.

This software is licensed under the terms of the Elastic License 2.0 (ELv2). See LICENSE.