You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 16, 2026. It is now read-only.
Repository navigation
Commit 93fc317
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/adr/2026-06-11-phoenix-observability-adapter.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Relevant existing seams already point in this direction:
20
20
21
21
- Provider and grader registries support narrow registration points.
22
22
-`.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.
24
24
- The trace evaluation plan requires generic OTLP/OpenInference mapping without Phoenix-specific assumptions in core.
25
25
26
26
## Decision
@@ -35,7 +35,10 @@ AgentV core should own:
35
35
- generic OTLP/OpenInference import/export mapping where it is backend-neutral;
36
36
- small registry/discovery primitives for extension points.
37
37
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:
39
42
40
43
- a Phoenix OTel backend resolver;
41
44
- Phoenix/OpenInference span-kind mapping;
@@ -72,7 +75,9 @@ Registration/discovery should remain boring and local-first. In this ADR, "plugi
72
75
- keep `execution.otel_backend: <name>` and `--otel-backend <name>` as the user-facing selectors;
73
76
- do not add package names, package auto-installation, a remote marketplace, trust prompts, or a general-purpose plugin host for this need.
74
77
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.
76
81
77
82
## Migration path for Phoenix
78
83
@@ -81,7 +86,7 @@ The earlier prototype exposed a resolver, for example `phoenixOtelBackend`, so u
81
86
-`OTEL_EXPORTER_OTLP_HEADERS`
82
87
-`--otel-file` for offline OTLP JSON export
83
88
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.
85
90
4. Keep Phoenix out of Dashboard runtime fetch paths; use safe external links instead.
86
91
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.
Copy file name to clipboardExpand all lines: docs/plans/2026-06-06-001-agentv-eval-authoring-extensibility-plan.md
+12-7Lines changed: 12 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Use these as design references, not as feature mandates:
43
43
- 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.
44
44
- 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.
45
45
- 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.
47
47
- promptfoo: Node package and JavaScript assertion/provider hooks make it a good private conversion target, especially for YAML matrix configs and JS assertion migration.
48
48
- 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.
49
49
@@ -113,7 +113,7 @@ Source-backed findings from the initial code analysis:
113
113
- 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.
114
114
- 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.
115
115
- 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.
117
117
118
118
Workspace/container findings from Terminal-Bench, Harbor, and Margin:
119
119
@@ -139,7 +139,10 @@ Extend the existing `agentv create` scaffolding into reusable templates:
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.
143
146
144
147
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.
145
148
@@ -185,7 +188,9 @@ Likely docs locations:
185
188
186
189
Add private examples, not core adapters, for:
187
190
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.
189
194
- promptfoo: convert promptfoo-style YAML or JS assertions into ordinary AgentV evals/assertions where feasible.
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.
261
266
262
267
Initial reference evals to consider:
263
268
@@ -390,7 +395,7 @@ For private conversion work:
390
395
391
396
- Which AgentV evals should be mirrored first: one simple text/rubric eval plus one workspace/tool-trajectory eval, or only WTG-relevant prompt evals?
392
397
- 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.
394
399
395
400
## Decision
396
401
@@ -404,7 +409,7 @@ Proceed as a plan, not a brainstorm, because the product question is now concret
404
409
-`av-r0s.5.6` - analysis(private): compare peer native ports against AgentV
0 commit comments