Skip to content
This repository was archived by the owner on Oct 16, 2026. It is now read-only.

Commit 93fc317

Browse files
authored
refactor: remove private Phoenix adapter package
1 parent edd7493 commit 93fc317

40 files changed

Lines changed: 48 additions & 2146 deletions

‎.github/workflows/ci.yml‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,5 @@ jobs:
143143
- name: Check evals directories have eval files
144144
run: bun scripts/validate-eval-dirs.ts
145145

146-
- name: Run Phoenix adapter dry-run smoke
147-
run: bun run phoenix:assert-smoke
148-
149146
- name: Validate eval schemas
150147
run: bun apps/cli/dist/cli.js validate 'examples/features/**/evals/**/*.eval.yaml' 'examples/features/**/*.EVAL.yaml'

‎bun.lock‎

Lines changed: 0 additions & 137 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎docs/adr/2026-06-11-phoenix-observability-adapter.md‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Relevant existing seams already point in this direction:
2020

2121
- Provider and grader registries support narrow registration points.
2222
- `.agentv/providers/`, `.agentv/assertions/`, and `.agentv/graders/` use convention-based local discovery instead of a broad plugin host.
23-
- Earlier `packages/phoenix-adapter/` experiments kept Phoenix-specific behavior outside core and reported unsupported mappings explicitly. That experiment is not the supported product path for AgentV completed runs or transcripts.
23+
- Earlier Phoenix adapter experiments kept Phoenix-specific behavior outside core and reported unsupported mappings explicitly. Those experiments are not the supported product path for AgentV completed runs or transcripts.
2424
- The trace evaluation plan requires generic OTLP/OpenInference mapping without Phoenix-specific assumptions in core.
2525

2626
## Decision
@@ -35,7 +35,10 @@ AgentV core should own:
3535
- generic OTLP/OpenInference import/export mapping where it is backend-neutral;
3636
- small registry/discovery primitives for extension points.
3737

38-
Phoenix integration should live outside core behind an adapter boundary, currently `packages/phoenix-adapter/`. The first implementation does not need package loading or package naming; a local resolver module is enough. The adapter boundary may expose:
38+
Phoenix integration should live outside core behind a narrow local adapter or
39+
resolver boundary when needed. No maintained workspace package currently owns
40+
that boundary. The first implementation does not need package loading or package
41+
naming; a local resolver module is enough. Such a custom boundary may expose:
3942

4043
- a Phoenix OTel backend resolver;
4144
- Phoenix/OpenInference span-kind mapping;
@@ -72,7 +75,9 @@ Registration/discovery should remain boring and local-first. In this ADR, "plugi
7275
- keep `execution.otel_backend: <name>` and `--otel-backend <name>` as the user-facing selectors;
7376
- do not add package names, package auto-installation, a remote marketplace, trust prompts, or a general-purpose plugin host for this need.
7477

75-
The earlier prototype exposed a resolver, for example `phoenixOtelBackend`, so users could opt in from project config or a local `.agentv/otel-backends/phoenix.mjs` file. Treat that as a custom/legacy path, not as the supported AgentV-to-Phoenix product boundary.
78+
The earlier prototype exposed a resolver so users could opt in from project config
79+
or a local `.agentv/otel-backends/phoenix.mjs` file. Treat that as a
80+
custom/legacy path, not as the supported AgentV-to-Phoenix product boundary.
7681

7782
## Migration path for Phoenix
7883

@@ -81,7 +86,7 @@ The earlier prototype exposed a resolver, for example `phoenixOtelBackend`, so u
8186
- `OTEL_EXPORTER_OTLP_HEADERS`
8287
- `--otel-file` for offline OTLP JSON export
8388
2. Add a tiny backend resolver seam only if ergonomic backend names are needed.
84-
3. Implement Phoenix endpoint/header/project routing in the Phoenix adapter boundary, not in core.
89+
3. Keep any custom Phoenix endpoint/header/project routing outside core and outside the supported AgentV artifact path.
8590
4. Keep Phoenix out of Dashboard runtime fetch paths; use safe external links instead.
8691
5. Consider moving existing vendor-specific core presets to the same resolver model later, but do not couple that cleanup to the Phoenix decision unless the implementation already touches the preset registry.
8792

‎docs/plans/2026-06-06-001-agentv-eval-authoring-extensibility-plan.md‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Use these as design references, not as feature mandates:
4343
- Margin and Terminal-Bench: filesystem-native benchmark packaging, conventional task files, setup scripts, scoring scripts, and immutable artifacts. AgentV should document and template this shape instead of adding `workspace`, `oracle`, `variants`, or `expected_artifacts` as broad core fields.
4444
- Pi coding agent: skills and extensions separate agent-facing procedural guidance from runtime code. Its docs show skills as portable `SKILL.md` directories with scripts/assets, and extensions as typed runtime hooks. AgentV should copy the progressive-disclosure authoring pattern for eval builders.
4545
- Composio Agent Orchestrator: swappable TypeScript plugin interfaces for narrow responsibilities. Its plugin-slot model is useful as a boundary pattern, but AgentV should avoid a general orchestrator plugin host until concrete runtime extension gaps appear.
46-
- Phoenix: official TypeScript packages (`@arizeai/phoenix-client`, `@arizeai/phoenix-evals`, `@arizeai/phoenix-otel`) make it a good private export/conversion target for result and trace integration.
46+
- Phoenix: official TypeScript packages (`@arizeai/phoenix-client`, `@arizeai/phoenix-evals`, `@arizeai/phoenix-otel`) remain useful peer-framework research material, but the 2026-06-20 product boundary supersedes AgentV-to-Phoenix result or trace export.
4747
- promptfoo: Node package and JavaScript assertion/provider hooks make it a good private conversion target, especially for YAML matrix configs and JS assertion migration.
4848
- Braintrust: TypeScript SDK and `Eval(data, task, scores)` model make it a good private conversion target for dataset/task/score loops, experiment metadata, trial counts, and hosted result upload.
4949

@@ -113,7 +113,7 @@ Source-backed findings from the initial code analysis:
113113
- promptfoo can mirror simple AgentV rubric examples with `llm-rubric` and script assertions. AgentV `tool-trajectory` is the largest parity gap because promptfoo trace/trajectory assertions depend on promptfoo trace conventions rather than AgentV `Message[].toolCalls`; a custom provider/metadata adapter is required.
114114
- Braintrust TypeScript `Eval(name, { data, task, scores })` maps cleanly to AgentV's case/task/score model. The lossy point is that AgentV rich assertion arrays with evidence/verdict/type become Braintrust score metadata unless a deeper adapter is built.
115115
- Phoenix TypeScript is split across dataset creation, experiment running, evaluators, and OTel. It is strong for persisted datasets/experiments and traces, but less direct for local YAML wrapping because normal `runExperiment` flow expects a Phoenix dataset/server round trip.
116-
- AgentV already has a Phoenix adapter package, but its support matrix is intentionally narrow and deterministic. Private experiments should use that as evidence, not widen public scope prematurely.
116+
- AgentV previously carried a private Phoenix adapter experiment with an intentionally narrow and deterministic support matrix. Treat that as historical evidence, not a reason to widen public scope.
117117

118118
Workspace/container findings from Terminal-Bench, Harbor, and Margin:
119119

@@ -139,7 +139,10 @@ Extend the existing `agentv create` scaffolding into reusable templates:
139139
- `agentv create eval --template terminal-task`
140140
- `agentv create eval --template promptfoo-adapter`
141141
- `agentv create eval --template braintrust-export`
142-
- `agentv create eval --template phoenix-export`
142+
143+
Do not add a Phoenix export template. The later Phoenix read-only correlation
144+
boundary supersedes AgentV-to-Phoenix dataset, experiment, result, or trace
145+
export templates.
143146

144147
The first implementation can stay static and local, similar to the current `EVAL_TEMPLATES` object in `apps/cli/src/commands/create/commands.ts`. Do not introduce remote template registries, package installation, trust prompts, or plugin loading yet.
145148

@@ -185,7 +188,9 @@ Likely docs locations:
185188

186189
Add private examples, not core adapters, for:
187190

188-
- Phoenix: export AgentV results/traces into Phoenix using the TS packages.
191+
- Phoenix: compare peer-framework DX around independently emitted traces and
192+
safe `external_trace` link-out metadata. Do not export AgentV-owned results,
193+
traces, transcripts, datasets, experiments, or indexes into Phoenix.
189194
- promptfoo: convert promptfoo-style YAML or JS assertions into ordinary AgentV evals/assertions where feasible.
190195
- Braintrust: export AgentV cases/results into Braintrust's TypeScript `Eval(data, task, scores)` shape.
191196

@@ -257,7 +262,7 @@ framework-parity/
257262
run-phoenix.ts
258263
```
259264

260-
This subtree should be clearly marked private/internal and should not be mirrored into public AgentV examples until findings are scrubbed.
265+
This subtree should be clearly marked private/internal and should not be mirrored into public AgentV examples until findings are scrubbed. Any Phoenix files in this historical peer-framework research tree must stay outside the supported AgentV product path and must not become AgentV-to-Phoenix artifact export guidance.
261266

262267
Initial reference evals to consider:
263268

@@ -390,7 +395,7 @@ For private conversion work:
390395

391396
- Which AgentV evals should be mirrored first: one simple text/rubric eval plus one workspace/tool-trajectory eval, or only WTG-relevant prompt evals?
392397
- Should promptfoo import/export be a CLI command later, or stay as documented conversion scripts until demand is proven?
393-
- Should Phoenix/Braintrust integrations be examples only, or wrappers that consume AgentV JSONL output?
398+
- Should Braintrust integrations be examples only, or wrappers that consume AgentV JSONL output? Phoenix work is superseded by the read-only external-trace correlation boundary.
394399

395400
## Decision
396401

@@ -404,7 +409,7 @@ Proceed as a plan, not a brainstorm, because the product question is now concret
404409
- `av-r0s.5.6` - analysis(private): compare peer native ports against AgentV
405410
- `av-r0s.5.8` - design(private): minimal AgentV workspace/container primitive
406411
- `av-r0s.5.1` - tooling(private): extract promptfoo exporter requirements after hand ports
407-
- `av-r0s.5.2` - tooling(private): prototype Braintrust and Phoenix replay adapters
412+
- `av-r0s.5.2` - tooling(private): prototype Braintrust replay adapters and historical Phoenix peer-framework research only
408413
- `av-r0s.5.3` - docs(agentv): decide sanitized promotion path from private parity experiments
409414
- `av-r0s.5.4` - closed as superseded by source-specific hand-port beads
410415
- `av-w9p` - closed as superseded by `av-r0s.1`

‎docs/plans/2026-06-21-001-feat-av-quf-results-storage-plan.md‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ publication export, an append-only mutable-operation log, and an S3-compatible
1717
object-storage tier.
1818

1919
The canonical AgentV run artifacts stay `benchmark.json`, `index.jsonl`, per-test
20-
grading/timing files, `outputs/trace.json`, and derived transcript artifacts. GitHub,
21-
Backblaze B2, Phoenix, Hugging Face, and Dashboard are projections, viewers, or storage
22-
backends over those artifacts.
20+
grading/timing files, `outputs/trace.json`, and derived transcript artifacts.
21+
GitHub and Backblaze B2 are storage/publication targets over those artifacts.
22+
Dashboard and Hugging Face are viewers or publication surfaces. Phoenix is only
23+
a link-out viewer when safe `external_trace` metadata points at independently
24+
emitted spans; it is not an AgentV artifact projection or storage backend.
2325

2426
---
2527

@@ -58,7 +60,7 @@ without creating another hosted results platform inside AgentV.
5860
- Implementing storage backends, S3, oplog, retention, or export code in this bead.
5961
- Adding GitHub issues or tracker runtime state.
6062
- Creating windowed branches, per-run branches, or a hosted Dashboard replacement.
61-
- Making Phoenix, Hugging Face, B2, or GitHub the canonical results model.
63+
- Making Phoenix canonical, making Phoenix an AgentV artifact projection target, or making Hugging Face, B2, or GitHub the canonical results model.
6264

6365
### Deferred to Follow-Up Work
6466

@@ -852,8 +854,9 @@ results:
852854
- [ ] The artifact sidecar is called `artifacts`, not `artifact-blobs` or `blob`.
853855
- [ ] The plan has no windowed or per-run branches.
854856
- [ ] Path sharding is deferred until realistic measurement proves need.
855-
- [ ] AgentV artifacts remain canonical; Dashboard, Hugging Face, Phoenix, B2, and
856-
GitHub are projections/viewers/storage backends.
857+
- [ ] AgentV artifacts remain canonical; Dashboard and Hugging Face are viewers
858+
or publication surfaces, B2 and GitHub are storage/publication targets, and
859+
Phoenix is link-out correlation only when safe external trace metadata exists.
857860
- [ ] File/function-level implementation guidance names current result repo, remote,
858861
serve, export, artifact-writer, and Dashboard surfaces.
859862
- [ ] Test plan covers core, CLI, Dashboard, and docs-facing behavior.

0 commit comments

Comments
 (0)