Skip to content

[Leaderboard] fabric-rlm (notebook RLM library) - GPT-5.6 Luna max - 69.57% Pass@1 - #76

Open
pawarbi wants to merge 1 commit into
ucbepic:mainfrom
pawarbi:leaderboard/fabric-rlm-luna
Open

[Leaderboard] fabric-rlm (notebook RLM library) - GPT-5.6 Luna max - 69.57% Pass@1#76
pawarbi wants to merge 1 commit into
ucbepic:mainfrom
pawarbi:leaderboard/fabric-rlm-luna

Conversation

@pawarbi

@pawarbi pawarbi commented Jul 31, 2026

Copy link
Copy Markdown

fabric-rlm - Leaderboard Submission

Agent name: fabric-rlm
Backbone LLM: GPT-5.6 Luna (openai/gpt-5.6-luna via OpenRouter, reasoning effort max), single model, no fallback
Hints: Yes (db_description_withhint.txt appended to the description, as in run_agent.py --use_hints)
Trials: 5 per query (270 records, all 54 queries, empty answers submitted as "" - there were none)
Stratified Pass@1: 69.57% (193/270 records passed, micro 71.48%)

What fabric-rlm is

fabric-rlm is an open-source Python library that implements Recursive Language
Models for Microsoft Fabric notebooks: the data stays outside the model context
in a persistent Python subprocess, and the model works by writing code against
it over multiple turns. It is not an agent product or a CLI. A user imports it
in a notebook, passes file handles, and gets an answer with a full trajectory.
This submission runs that library unchanged from PyPI; the benchmark harness
around it (data loading, ensembling, grading, audit) is about 600 lines of
plain Python, published in full.

As far as we can tell this makes it the only entry whose runtime is a
notebook-importable library rather than a dedicated agent runtime or CLI, and
one of the cheapest end to end: the full 270-trial run cost about $16 in API
spend, roughly $0.06 per trial.

Architecture

Per query, per trial:

  1. All of the dataset's sanctioned stores are consolidated into one DuckDB file:
    SQLite and DuckDB stores are ATTACHed zero-copy, PostgreSQL dumps (all three
    dialects: plain COPY, COPY WITH FORMAT CSV, INSERT VALUES) and MongoDB BSON
    dumps are materialized into schemas. The model sees uniform
    store_name.table_name naming and a compact schema listing in which tables
    with identical column signatures are grouped (stockmarket's 2,754 per-ticker
    tables collapse to two lines).
  2. Two blind solves: the same task is solved twice in fresh contexts with no
    shared state. The RLM writes and executes Python/SQL in its subprocess for
    up to 40 turns.
  3. A structural agreement check compares the two answers in code, not with an
    LLM: numbers must match exactly, semicolon lists must have identical item
    sets, prose is compared normalized.
  4. On agreement the answer is submitted. On disagreement a reconciler runs in a
    third fresh context with the database and both candidate answers,
    instructed to find the exact point of divergence and re-derive. In a
    separate RUNS=3 ablation without hints this ensemble measured +0.076
    stratified Pass@1 over single solves.

No benchmark-tuned prompt: the task template contains the question, the
database description (with hints), how to open the database, and six generic
answer-format rules (state the answer first, put values next to their labels,
decimal forms, complete lists, no empty answers). The full task template and
rules are in the harness source linked below. No per-dataset or per-query
instructions of any kind.

Results

Dataset Pass@1
bookreview 1.00
stockindex 1.00
stockmarket 0.96
yelp 0.74
crmarenapro 0.74
agnews 0.70
googlelocal 0.70
PANCANCER_ATLAS 0.60
music_brainz_20k 0.60
GITHUB_REPOS 0.50
PATENTS 0.47
DEPS_DEV_V1 0.40
Stratified Pass@1 0.6957

Integrity (per SUBMISSION_RUBRIC.md)

  • Grading: the official per-query validate.py, unmodified, over the submitted
    answers. Re-scored from the submission JSON immediately before filing:
    0.6957.
  • Isolation: the model never sees a benchmark path. Each dataset's DuckDB file
    and every attached store are hardlinked into a bare directory and the attach
    statements are rewritten, so nothing reachable from the model's inputs leads
    to query*/ folders, ground_truth.csv, or validate.py. An assertion
    fails the build if a benchmark path survives into model-visible text.
  • Mechanical audit: every ensemble member's trace (both solves and any
    reconciler) is scanned for reads of ground truth, validators, query files,
    hint files, or benchmark-tree walks; any hit forces the record to score
    zero. 0 of 270 records flagged, across roughly 700 audited solver runs.
  • Traces: one JSON per trial in fabric-rlm-luna/fabric-rlm-luna_traces.tar.gz
    (this PR), containing the exact task text of the winning stage, per-turn
    code, stdout, stderr, token counts, and the ensemble verdict
    (agree/reconciled). Submitted answers match traces 270/270 by string
    equality.
  • No external data: the isolation directory contains only the sanctioned
    stores; traces show no network fetches.

Reproduction

Library: https://github.com/pawarbi/fabric-rlm-core (PyPI: fabric-rlm).
Harness, run configs, ablation results and analysis:
https://github.com/pawarbi/fabric-rlm-benchmarks (dab/ directory).

We also measured a minimax-m3 run of the same harness at 0.5902 and may submit
it separately as a budget-backbone reference point.

@Ruiying-Ma

Ruiying-Ma commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Thanks @pawarbi ! We found data leakage in four agnews trials (q3 trial 1, and q4 trials 1, 2 and 5): each one loads the external AG News dataset from Hugging Face and uses its gold label field to produce the submitted answer, and all four pass on that basis.

Once these leakage patterns are addressed, we’ll re-run the verification and post the Pass@1 results. Thank you!

@pawarbi

pawarbi commented Aug 2, 2026

Copy link
Copy Markdown
Author

Thank for the review @Ruiying-Ma . I ran everything in an isolated env but looks like I need to review again. Appreciate it, I will re-run and re-submit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants