Arize Phoenix Integration¶
Observe with Phoenix, detect with Pisama.
Arize Phoenix (9,200+ stars) is the most popular open-source LLM observability platform. It captures traces from every major agent framework. Pisama adds multi-agent failure detection on top of those traces.
Phoenix tells you what happened. Pisama tells you what went wrong and why.
How It Works¶
Your Agents → Phoenix (tracing) → Export traces → Pisama (failure detection)
↓
Pisama → Phoenix (results as spans)
Pisama supports bidirectional Phoenix integration:
- Import: Ingest Phoenix trace exports for failure analysis
- Export: Send Pisama detection results back to Phoenix as OTEL spans
Import Phoenix Traces¶
Option 1: Export from Phoenix UI¶
- In Phoenix, select the traces you want to analyze
- Export as JSON (OTEL format)
- Import into Pisama:
# CLI
pisama analyze phoenix_export.json
# Or via API
curl -X POST https://pisama-api.fly.dev/api/v1/traces \
-H "Authorization: Bearer $PISAMA_API_KEY" \
-H "Content-Type: application/json" \
-d @phoenix_export.json
Option 2: Bulk Import¶
For historical analysis of many traces:
curl -X POST https://pisama-api.fly.dev/api/v1/import-jobs \
-H "Authorization: Bearer $PISAMA_API_KEY" \
-F "file=@phoenix_traces.json" \
-F "format=phoenix"
Monitor import progress:
Option 3: Python SDK¶
from pisama import analyze
# Analyze a Phoenix JSON export directly
result = analyze("phoenix_export.json")
for issue in result.issues:
print(f"[{issue.type}] {issue.summary} (severity: {issue.severity})")
print(f" Agent: {issue.agent_id}")
print(f" {issue.recommendation}")
Export Results to Phoenix¶
Pisama can export calibration runs and detection results as OTEL spans that appear in the Phoenix UI:
from pisama.exporters import PhoenixExporter
exporter = PhoenixExporter(phoenix_url="http://localhost:6006")
exporter.export_calibration_run(run_id=10)
This creates spans in Phoenix showing:
- Detection results per trace (pass/fail, failure type, severity)
- Detector performance metrics (F1, precision, recall)
- Cost and latency per detection tier
Framework Auto-Detection¶
When importing Phoenix traces, Pisama automatically detects the agent framework from OTEL gen_ai.system and gen_ai.provider.name semantic conventions:
| Framework | Auto-Detected | Additional Detectors |
|---|---|---|
| LangGraph | Yes | 6 LangGraph-specific (recursion, state corruption, etc.) |
| CrewAI | Yes | Core 20 detectors |
| AutoGen | Yes | Core 20 detectors |
| OpenAI Agents SDK | Yes | Core 20 detectors |
| Claude Agent SDK | Yes | Core 20 detectors |
| Amazon Bedrock | Yes | Core 20 detectors |
| Google Vertex AI | Yes | Core 20 detectors |
Typical Workflow¶
- Instrument your agents with Phoenix (one-line auto-instrumentation)
- Run your agents — Phoenix captures all traces
- Export traces from Phoenix (JSON or via API)
- Analyze with Pisama — get failure classifications, severity scores, and fix recommendations
- Review detection results in Pisama dashboard or exported back to Phoenix
Why Both?¶
| Capability | Phoenix | Pisama |
|---|---|---|
| Trace capture & visualization | Yes | Via import |
| LLM call cost tracking | Yes | Yes |
| Multi-agent trace graphs | Yes | Yes |
| Failure pattern detection (25 types) | No | Yes |
| Framework-specific detectors (24 types) | No | Yes |
| Tiered detection ($0 for 90%+) | No | Yes |
| Self-healing & fix generation | No | Yes |
| F1-calibrated accuracy scores | No | Yes |
Phoenix is the best open-source observability platform. Pisama is the best open-source failure detection platform. Use both.
Supported Formats¶
The Phoenix importer handles:
- Phoenix JSON export: Native format from Phoenix UI export
- OTEL JSON (
resourceSpansformat): Standard OTEL trace export - JSONL: Line-delimited JSON traces
All formats are auto-detected — just pass the file and Pisama figures out the format.