Specify the benchmark workbench, starting with AgentX

e1727b62a20b · AtlantisPleb · · parent 211046e909d9

Specify the benchmark workbench, starting with AgentX

Three axes over one discipline: AgentX trace replay measures how the
compute mix serves coder-shaped traffic per dollar; a graded
effectiveness suite makes cost per accepted outcome a number that moves
when the coder changes; and a consent-gated thread-to-WEKA exporter
turns our own transcripts into a replayable corpus. The InferenceX
methodology rules — validate scores not file existence, evidence before
gates, smoke runs are never claims — are adopted wholesale.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GoYpb8FEmdxVErsv7ABCYi
Co-Authored-By
Claude Fable 5 <noreply@anthropic.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

pushed
by user · WAL seq 314 · 2026-08-24T21:22:58.217974Z

Changed files

  • added docs/2026-08-24-benchmark-workbench-agentx.md

Diff

1 file changed, +182 -0

docs/2026-08-24-benchmark-workbench-agentx.md added +182

@@ -0,0 +1,182 @@

1
# Benchmark workbench: AgentX first
2
3
Date: 2026-08-24
4
5
Status: specification
6
7
A repeatable workbench for measuring the OpenAgents agent as it evolves,
8
starting with AgentX — SemiAnalysis's open source (Apache 2.0) multi-turn
9
agentic coding inference benchmark from InferenceXv3
10
(`github.com/SemiAnalysisAI/InferenceX`, cloned read-only at
11
`projects/repos/InferenceX`; announcement article 2026-08-23). Tracked as
12
the Benchmark workbench project; first issues filed from section 7.
13
14
## 1. What AgentX is, and what it is not
15
16
AgentX replays anonymized real coding-agent traffic — 393 sessions drawn
17
from an 8,000-session, $3M proxy corpus of Claude Code and Codex use —
18
against an OpenAI-compatible server, preserving the four properties that
19
make agentic traffic unlike chatbot traffic: multi-turn accumulation, long
20
context (to 1M), very high prefix reuse (KV-cache hit rates above 95
21
percent), and sub-agent bursts with fresh context. The replay harness is
22
AIPerf (`inferencex-agentx-mvp` trace replay); traces are stored in the
23
WEKA trace format, with content tokenized into 64-token blocks and each
24
block replaced by a session-scoped chained hash, so matching prompt
25
prefixes produce matching hash prefixes without revealing content. Headline
26
metrics are performance per dollar versus interactivity (TPOT), TTFT, and
27
throughput under realistic load.
28
29
Two things AgentX is not:
30
31
- **It is not a task-success benchmark.** It measures how well a serving
32
  stack carries coder-shaped traffic, not whether the agent solved the
33
  task. Measuring "effectiveness of our agent" needs a second, graded
34
  axis (section 4).
35
- **It is not point-in-time.** InferenceX's founding argument is that
36
  fixed-date benchmarks go stale in days because inference software moves
37
  daily. The workbench inherits that: continuous runs, not a one-off
38
  report.
39
40
The methodology discipline in the InferenceX repo is as valuable as the
41
dataset, and the workbench adopts it wholesale
42
(`docs/eval-agentx-procedures.md` in that repo):
43
44
1. Validate scores, not file existence; every published point has a floor
45
   in a `thresholds.yaml` and a row whose score is never null.
46
2. Evidence uploads before gates evaluate (`always()` before score
47
   validation), so failed evidence survives.
48
3. Fast/smoke modes are bring-up evidence, never publishable claims, and
49
   are marked ineligible for reuse.
50
4. Configs track what real customers run, not benchmaxed images.
51
5. Every point carries CI provenance: the exact command, logs, and
52
   server-metrics exports staged as artifacts.
53
54
These are the house rules restated — receipts, falsifiable greens,
55
evidence over narration — which is why this benchmark is the right first
56
tenant for the workbench.
57
58
## 2. Why this matters to the coder push
59
60
The compute mix (`docs/2026-08-24-coder-first-cloud-complements.md`
61
section 5) makes OpenAgents a buyer and, later, a seller of agentic
62
inference. AgentX is the measurement instrument for both sides:
63
64
- **Lane 1 (house providers).** Which provider serves coder-shaped
65
  traffic best per dollar, and how much the inference proxy costs on top.
66
  The proxy currently buffers the whole SSE body, so TTFT through it is
67
  degraded by design — the bench will put a number on that known caveat
68
  and motivate the chunked-streaming work honestly.
69
- **Lane 2 (metered offering).** Pricing a metered offering without
70
  measured cost per million tokens under realistic load is guesswork.
71
- **Lane 3 and beyond (user compute, provider mode, owned serving).** If
72
  Psionic-class serving or provider-mode supply ever carries coder
73
  traffic, AgentX is the qualification gate — the same claim/validate
74
  discipline the Pylon era already established.
75
- **The trace flywheel.** AgentX's corpus came from a proxy in front of
76
  Claude Code. OpenAgents already owns the equivalent, better positioned:
77
  thread transcripts on the forge, consent-tiered (#205), exportable, and
78
  ATIF-projected. Our own traffic can become an OpenAgents trace corpus in
79
  the same WEKA format with the same chained-hash anonymization —
80
  replayable by us and, under the opt-in licensing posture, publishable.
81
82
## 3. Workbench axis 1: serving (AgentX proper)
83
84
**Goal:** a repeatable run that answers "how do the lanes of our compute
85
mix perform under coder-shaped load, per dollar," on demand and on a
86
schedule.
87
88
Shape:
89
90
- A `bench/` lane in the `openagents` monorepo: pinned AIPerf and dataset
91
  versions, run recipes as data, one entry point per target class.
92
- Targets, in order of usefulness: (a) each model catalog entry through
93
  `POST /api/inference/proxy` (what the coder actually experiences), (b)
94
  the same upstream models direct (isolating proxy overhead), (c) any
95
  future owned serving endpoint.
96
- Metrics per point: TTFT, TPOT, tokens per second at fixed concurrency
97
  ladders, and cost per million tokens derived from the provider's
98
  pricing and the grant's metered usage — the same usage records the
99
  leaderboard consumes, so bench numbers and billing numbers cannot
100
  diverge silently.
101
- Every run is receipted: the exact command, config digest, dataset
102
  digest, and results land as artifacts in a `bench-results` forge
103
  repository, and the run itself is a thread so the transcript is the
104
  provenance.
105
- Constraint to respect: hosted-provider terms and rate limits. AgentX at
106
  full concurrency is a load test; against third-party APIs the recipes
107
  run at bounded concurrency with provider consent where terms require
108
  it. Full-ladder runs are for endpoints we own.
109
110
## 4. Workbench axis 2: effectiveness (graded agent runs)
111
112
**Goal:** a number that moves when `openagents coder` gets better or
113
worse, computed the same way every time.
114
115
Shape:
116
117
- A curated task suite replayed through the real CLI, not a harness fork:
118
  start with a bounded public set (a SWE-bench-lite subset is the obvious
119
  candidate; InferenceX itself wires SWE-bench rows into its agentic
120
  evals) plus an owned set drawn from this tracker's own closed issues —
121
  tasks with known accepted outcomes and receipts.
122
- Each run pins: CLI version, model catalog revision, plugin set, task
123
  digest. Scores validate against floors in a `thresholds.yaml`; a run
124
  below floor fails the gate rather than shipping a quiet regression.
125
- Headline metric: **cost per accepted outcome** (the episode 237/243
126
  vocabulary, already the house's stated favorite), alongside task
127
  success rate, wall-clock, tokens, and tool-call counts — all derivable
128
  from thread transcripts and ATIF exports the coder already produces.
129
- The compute mix makes this comparative for free: the same suite runs
130
  per lane — house models through the proxy, and foreign-harness
131
  delegation (Fable through Claude Code) once monorepo #25's lane exists
132
  — so "which lane should this task class route to" gets an evidence-
133
  backed answer instead of a vibe.
134
- Cadence: per-release for the gate, weekly for the trend line. Results
135
  append-only in `bench-results`; a later status-page panel reads them.
136
137
## 5. Workbench axis 3: the OpenAgents trace corpus
138
139
**Goal:** replay our own traffic shape, not only SemiAnalysis's.
140
141
- An exporter from `thread_events` to the WEKA trace format with the
142
  64-token chained-hash anonymization, preserving timing, sub-agent
143
  structure (once the nested-thread ledger exists), and prefix-reuse
144
  patterns while revealing no content — the same privacy construction
145
  AgentX uses.
146
- Strictly consent-gated: only threads whose tier permits it (#205,
147
  THREAD-002), aggregated under the opt-in licensing posture. This is the
148
  trace-licensing lane from the registry strategy given its first
149
  concrete consumer.
150
- Payoff: lane comparisons run against traffic that looks like OpenAgents
151
  users, and — if published — the corpus is a contribution back to the
152
  AgentX ecosystem under our own consent rules.
153
154
## 6. Non-goals
155
156
- No 2MW GPU fleet, no hardware SKU comparisons — that is InferenceX's
157
  job; we consume their published data for hardware questions.
158
- No benchmark-specific agent builds: the suite runs the shipped CLI, per
159
  the "measure what customers experience" rule.
160
- No published score without a threshold, a digest-pinned config, and
161
  staged evidence. A fast run is never a claim.
162
163
## 7. First issues
164
165
1. **Stand up the AgentX serving replay against the compute mix**
166
   (monorepo): the `bench/` lane, pinned AIPerf plus dataset, recipes for
167
   proxy-vs-direct per catalog model at bounded concurrency, receipted
168
   results into `bench-results`. Acceptance: one honest comparison table
169
   for two models with proxy overhead quantified.
170
2. **Effectiveness suite v1** (monorepo): 20–30 graded tasks through the
171
   real CLI with thresholds and cost-per-accepted-outcome reporting.
172
   Acceptance: two consecutive scheduled runs producing comparable rows,
173
   and one deliberate regression caught by the floor.
174
3. **Thread-to-WEKA trace exporter** (openagents.com): consent-gated
175
   export of thread transcripts in the WEKA trace format with chained-hash
176
   anonymization. Acceptance: an exported OpenAgents corpus replays under
177
   the axis-1 harness.
178
179
Later, recorded here rather than filed: a status-page trend panel over
180
`bench-results`; per-lane routing recommendations feeding the capability
181
selector; corpus publication under the licensing posture; qualification
182
recipes for provider-mode supply.

This page updates live while a promote is in flight · changelog