@@ -34,8 +34,8 @@ model will usually win raw score while losing the cost objective.
3434
3535## Current Data Strategy
3636
37- The production difficulty model is trained on ** three datasets combined**
38- (377,997 rows / ~ 14,364 prompts / 283 subjects):
37+ The production difficulty model is trained on ** four datasets combined**
38+ (378,397 rows / ~ 14,463 prompts / 287 subjects):
3939
4040``` text
4141NPULH/LLMRouterBench (350k stream sample) 37 models x ~13,775 prompts, single-turn
@@ -45,20 +45,23 @@ agent-psychometrics Terminal-Bench 2.0 89 tasks x 112 subjects, terminal ag
4545 data/agentic/terminalbench (--dataset agentic:agentic/terminalbench)
4646agent-psychometrics SWE-bench Verified 500 tasks x 134 subjects, coding agent
4747 data/agentic/swebench_verified (task text joined from princeton-nlp/SWE-bench_Verified)
48+ Xorbits/xagent-xrouter-labels 100 prompts x 4 OpenRouter models, real xagent
49+ --dataset xagent-labels:Xorbits/xagent-xrouter-labels:full
4850```
4951
50- Only the 37 llmrouterbench models have benchmark profiles, so they alone feed
51- the capability/combine logistic; the agentic subjects (agent+scaffold combos)
52- feed the difficulty axis only. agent-psychometrics swebench_pro (730x14) and
53- gso (102x15) are loadable but NOT wired in (they ship no local task text and
54- need an external join).
52+ Only models with benchmark profiles feed the capability/combine logistic: the
53+ 37 llmrouterbench models plus profiled xagent OpenRouter candidates. The
54+ agent-psychometrics subjects (agent+scaffold combos) feed the difficulty axis
55+ only. agent-psychometrics swebench_pro (730x14) and gso (102x15) are loadable
56+ but NOT wired in (they ship no local task text and need an external join).
5557
5658- agent-psychometrics matrices load via ` agentic.py ` and the CLI ` agentic: `
5759 dataset kind. ** terminalbench** (89x112, local ` tasks.jsonl ` ) and
5860 ** swebench_verified** (500x134, task text joined from
5961 ` princeton-nlp/SWE-bench_Verified ` ) are wired in; see "Agentic training data".
6062- All sources feed the difficulty axis; only the profiled llmrouterbench models
61- feed the capability/combine logistic (agentic subjects have no profile).
63+ plus profiled xagent OpenRouter candidates feed the capability/combine
64+ logistic (agentic subjects have no profile).
6265- RouterBench (` withmartian/routerbench ` ) is kept as a smaller legacy baseline.
6366- ` swebench_pro ` (730x14), ` gso ` (102x15) ship no local task text and need an
6467 external join (not wired yet).
@@ -242,7 +245,8 @@ PYTHONPATH=src python3 -m xrouter_llm.cli train-irt \
242245 --dataset llmrouterbench:data/raw/llmrouterbench_stream_sample_350k \
243246 --dataset agentic:agentic/terminalbench \
244247 --dataset agentic:agentic/swebench_verified \
245- --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json \
248+ --dataset xagent-labels:Xorbits/xagent-xrouter-labels:full \
249+ --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json,src/xrouter_llm/resources/config/models \
246250 --output artifacts/models/irt_router_350k.joblib
247251```
248252
@@ -270,7 +274,8 @@ PYTHONPATH=src python3 -m xrouter_llm.cli train-irt \
270274 --dataset llmrouterbench:data/raw/llmrouterbench_stream_sample_350k \
271275 --dataset agentic:agentic/terminalbench \
272276 --dataset agentic:agentic/swebench_verified \
273- --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json \
277+ --dataset xagent-labels:Xorbits/xagent-xrouter-labels:full \
278+ --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json,src/xrouter_llm/resources/config/models \
274279 --output artifacts/models/irt_router_350k.joblib
275280```
276281
@@ -291,7 +296,8 @@ PYTHONPATH=src python3 -m xrouter_llm.cli train-irt \
291296 --dataset llmrouterbench:data/raw/llmrouterbench_stream_sample_350k \
292297 --dataset agentic:agentic/terminalbench \
293298 --dataset agentic:agentic/swebench_verified \
294- --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json \
299+ --dataset xagent-labels:Xorbits/xagent-xrouter-labels:full \
300+ --benchmark-profiles artifacts/profiles/llmrouterbench_350k_profiles_priority_collected.json,src/xrouter_llm/resources/config/models \
295301 --output artifacts/models/irt_router_350k.joblib
296302```
297303
@@ -301,6 +307,8 @@ PYTHONPATH=src python3 -m xrouter_llm.cli train-irt \
301307 joined from ` princeton-nlp/SWE-bench_Verified ` ` problem_statement ` into a local
302308 ` data/agentic/swebench_verified/tasks.jsonl ` (regenerate on a fresh checkout
303309 via ` datasets.load_dataset("princeton-nlp/SWE-bench_Verified", split="test") ` ).
310+ - ** xagent labels** are loaded from ` Xorbits/xagent-xrouter-labels ` via
311+ ` xagent_labels.py ` and the CLI ` xagent-labels: ` dataset kind.
304312- ** swebench_pro** (730x14), ** gso** (102x15) ship no local task text and need
305313 an external join -- not wired yet.
306314
@@ -312,12 +320,10 @@ agentic subjects have no
312320benchmark profiles, so they feed ONLY the difficulty axis; the capability/combine
313321logistic still fits on profiled models.
314322
315- Limitation (verified): real xagent prompts (e.g. Chinese business + image-gen
316- agentic tasks) are NOT covered by SWE-bench/Terminal-Bench either, so they stay
317- out-of-distribution and get a near-max (clamped) difficulty. Difficulty is
318- clamped to the training range so P never collapses, but the only way to make it
319- accurate for a specific task mix is that deployment's own logged
320- prompts + outcomes.
323+ Limitation (verified): the public xagent labels are only a 100-prompt seed. They
324+ slightly improve the public benchmark headline under a controlled base test set,
325+ but real deployment accuracy for a specific task mix still needs that
326+ deployment's own logged prompts + outcomes.
321327
322328## Evaluation Rules
323329
0 commit comments