Skip to main content

Available in arize-phoenix-client 3.4.0+, with trajectory traces in 3.5.0+

Phoenix now ships a job plugin for Harbor. Select it on a Harbor run and the job lands in Phoenix as a dataset, one experiment per resolved agent configuration, a run per trial, and every verifier reward as a named evaluation. No tracing code goes inside the sandbox.

Phoenix dataset page for a Harbor dataset showing eight experiments, with annotation score comparison, run latency, and cost charts above a table listing each experiment's agent configuration, infra_ok score, and a link to its traces
Each agent and model configuration in a Harbor job becomes its own experiment on the job's dataset, so reward, latency, and cost line up across runs.

Rewards Become Scores#

reward distributions show up in experiment comparison. An infra_ok evaluation helps distinguish low task scores from execution errors. health, which tells a failed agent apart from a broken sandbox.

Phoenix experiment comparison for a single Harbor trial, showing the task input and reference output beside the agent's response, with reward, infra_ok, agent_turn_count, and tool_call_count evaluations and their averages
One trial in experiment comparison: the task instruction, the optional reference output, and the agent's final response, with the verifier's rewards recorded as evaluations.

Trajectories Become Traces#

Phoenix experiment run trace for a Harbor trial, with the harbor.trial root span above the codex agent span and its iteration, openai/gpt-5.6 LLM, and exec_command tool spans, beside the selected tool span's input and output
A Harbor trial's trajectory as a Phoenix trace, opened from its experiment run: the `harbor.trial` root, the agent beneath it, and an LLM and a tool span for each iteration.
  • trace_mode="atif" is the default. The plugin reads the saved trajectory after the final trial attempt and converts it into one trace and one session, with AGENT, LLM, and TOOL spans under a harbor.trial root. A multi-step trial adds a span for each attempted step, and context-management operations appear as compaction spans.
  • Tracing never changes a score. If the agent saves no valid trajectory, the plugin logs a warning and records the run and its evaluations without a trace. Pass trace_mode=null on the Harbor command line to turn tracing off entirely.
  • The sandbox stays offline. The plugin converts trajectories after the trial, so the agent’s environment needs no Phoenix endpoint and no Phoenix credentials.

Run a Job with the Plugin#

Install Harbor and the plugin into the same Python environment:

The plugin registers under the name arize-phoenix, so a Harbor run picks it up directly:

Configure it in Python when you want the dataset name or the naming template under version control:

  • Experiment names follow a template. experiment_name_template accepts fields like {job.name}, {agent.name}, {agent.model}, and {agent.short_digest}, and
  • Resuming the same Harbor job reuses its experiments without duplicating recorded runs.
  • Resuming is idempotent, so a re-run adds to the same experiment instead of duplicating it. The plugin requires Harbor 0.21.0+, Python 3.12+, and Phoenix server 15.0+. Endpoint and API key fall back to The plugin requires Harbor 0.21.0+ on Python 3.12+. Endpoint and API key fall back to PHOENIX_COLLECTOR_ENDPOINT and PHOENIX_API_KEY.