arena-autoresearch
Start and operate the autonomous reward-R&D experiment loop (setup, confirm, then run until interrupted).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Start and operate the autonomous reward-R&D experiment loop (setup, confirm, then run until interrupted).
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Operate the Open Arena REST API: start the server and make authenticated requests.
Run the arena evaluation sweep and interpret last_run.tsv and the leaderboard matrix.
Add or iterate on a custom reward in src/rewards/ and wire it into the sweep.
Configure an Open Arena sweep: author/edit config.yaml datasets, rewards, metrics, and experiments blocks.
Prepare evaluation datasets: write prepare_data.py, wire loaders in config.yaml, smoke-test that rows load.
استنادا إلى تصنيف SOC المهني
| name | arena-autoresearch |
| description | Start and operate the autonomous reward-R&D experiment loop (setup, confirm, then run until interrupted). |
Read AUTORESEARCH.md end-to-end before starting. Read AGENTS.md / CLAUDE.md for the trigger phrases. This skill summarizes the protocol; the source doc is authoritative.
Any of these (or an obvious paraphrase) kicks off setup:
Agree on a run tag — propose <monthday> (e.g. jun23). The branch autoresearch/<tag> must not already exist.
Create the branch:
git checkout master && git pull --ff-only
git checkout -b autoresearch/<tag>
Read in-scope files — do NOT skip this step:
README.md, AGENTS.md / CLAUDE.mdsrc/evaluate.py (harness — do not modify)src/program.py (editable program graph)src/config.py (Pydantic schema — do not modify)src/rewards/__init__.py, src/rewards/multi_judge_panel.py, src/rewards/rlm_as_judge.pyREWARDS_BUILDING.mdconfig.yaml (read-mostly; only metrics: block is editable)config.example.yaml (reference only)Smoke-test datasets:
uv run python -c "
import yaml
from src.datasets import load_dataset_from_yaml
cfg = yaml.safe_load(open('config.yaml'))
for n in cfg['experiments']['datasets']:
it = iter(load_dataset_from_yaml('config.yaml', name=n))
next(it); print('ok', n)
"
If credentials are missing for a cloud provider, report to the human.
Initialize results.tsv:
printf 'commit\tcandidate\ttop1\tpairwise\tsp_min\tsp_med\tsp_max\tn_usable\tstatus\tdescription\n' > results.tsv
Confirm and go — wait for explicit human confirmation, then enter the loop.
Loop indefinitely:
git status && git log --oneline -5
Pick an idea and apply it:
agreement_thresholdmax_iterations / max_llm_calls on the recursive judgesrc/rewards/<name>.py and register in src/rewards/__init__.py:_LOCAL_REWARDSmetrics: block in config.yamlgit add -A && git commit -m "<short description>"
Clear stale cache when the metric set changed:
rm -rf .open-arena/*/
Run the sweep (redirect everything):
uv run arena > .open-arena/run.log 2>&1
Cap dataset limit: so one full sweep finishes in ~5 minutes. If a run exceeds 10 minutes, kill it: pkill -f 'src.evaluate'
Score the run by reading .open-arena/last_run.tsv directly:
model<TAB>dataset<TAB>metric<TAB>value<TAB>directionreward vs candidate alias).open-arena/frontier.tsvCrash check:
test -s .open-arena/last_run.tsv || tail -n 80 .open-arena/run.log
Log the result to results.tsv (tab-separated, 10 columns):
commit candidate top1 pairwise sp_min sp_med sp_max n_usable status description
status is keep, discard, or crash. Do NOT git add results.tsv — it stays untracked.
COMMIT=$(git rev-parse --short HEAD)
printf '%s\t%s\t%.6f\t%.6f\t%.6f\t%.6f\t%.6f\t%d\t%s\t%s\n' \
"$COMMIT" "alias" top1 pairwise sp_min sp_med sp_max n_usable "keep" "description" >> results.tsv
If improved — keep the commit, advance the branch.
If equal or worse — revert:
git reset --hard HEAD~1
src/rewards/multi_judge_panel.py, src/rewards/rlm_as_judge.pysrc/rewards/<name>.py and register in src/rewards/__init__.py:_LOCAL_REWARDSmetrics: block in config.yamlsrc/evaluate.py, src/config.py, or src/datasets/prepare_data.py autonomously (requires human approval)datasets: block or experiments.language_models / experiments.datasets in config.yamlconfig.example.yamlOnce the loop has begun (after human confirmation), do NOT pause to ask "should I keep going?". Run autonomously until the human interrupts you. If you run out of ideas, re-read config.example.yaml for unexplored knobs (mask config, schema toggles, embedding-based rewards), revisit existing rewards you haven't touched, or try more radical reward designs.