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 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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.
| 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.