Skip to content

Repository files navigation

AutoSciRub logo

AutoSciRub

Learning to Evaluate Before Improving: Automatic Rubric Induction for Automatic Research Agents

Turn underspecified scientific research instructions into executable rubrics for guided execution, verification, and targeted revision.

arXiv paper Hugging Face paper Framework: AutoSciRub Hosts: Codex, Claude Code, and OpenClaw MIT license

AutoSciRub is a plugin bundle for AI research agents. It packages the workflow from the paper Learning to Evaluate Before Improving: Automatic Rubric Induction for Automatic Research Agents as installable skills that work across Codex, Claude Code, and OpenClaw.

The trajectories, reports, and evaluation records from our main ResearchClawBench experiments are available on Hugging Face.

News

2026-09-03 — AutoSciRub achieved a higher score on the latest ResearchClawBench leaderboard, reaching 33.2 Pass@1 with Codex + GPT-5.6-Sol.

AutoSciRub on the latest ResearchClawBench leaderboard

ResearchClawBench leaderboard snapshot recorded on 2026-09-03 04:05 UTC.

2026-08-13 — AutoSciRub achieved 2nd place on the ResearchClawBench leaderboard, with a 25.1 Pass@1 score using Codex + GPT-5.6-Terra.

Highlights

  • Rubric induction at inference time — builds a goal skeleton, grounds it in literature, and adapts to the data actually available in the task.
  • Executable rubric contract — each criterion names the required analysis, evidence artifacts, and satisfaction condition.
  • Criterion-level verification — verification reports which specific criteria are unmet and why, instead of a single score.
  • Targeted revision loop — revisions are driven by failed criteria, not vague feedback.
  • Configurable retrieval backends — built-in support for arXiv, OpenAlex, Semantic Scholar, and Tavily through a single script and a shared YAML config.
  • Framework-agnostic — no fixed paths, no fixed Python environments, no hidden benchmark assumptions. Works in any research project directory.

Quick Start

Requires Python 3.10+ and a research agent (Codex, Claude Code, or OpenClaw). AutoSciRub's scripts prepare and inspect a project; your agent performs the research.

1. Set up once

Linux / macOS:

git clone https://github.com/zjunlp/AutoSciRub.git
cd AutoSciRub
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python scripts/install.py codex  # or: claude, openclaw

Windows PowerShell:

git clone https://github.com/zjunlp/AutoSciRub.git
cd AutoSciRub
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe scripts/install.py codex

Use this Python environment when running the helpers. In PowerShell, replace python below with .\.venv\Scripts\python.exe if you have not activated it.

2. Check the offline example

python scripts/autoscirub.py demo --project ./autoscirub-demo

No model, API key, PDF upload, or external query is used. The demo copies a tiny synthetic task into a new directory and checks that exactly one allowed local document is indexed while the excluded folder is omitted. It is a setup check, not a claim that an agent has completed the scientific task.

To try the complete workflow, open your agent in autoscirub-demo/ and ask: “Use AutoSciRub to complete INSTRUCTIONS.md using local files only.” The sample explains its expected numerical results in examples/minimal/README.md.

3. Use your own project

Run these commands from the AutoSciRub checkout:

python scripts/autoscirub.py init --project /path/to/my-research
python scripts/autoscirub.py doctor --project /path/to/my-research

On Windows use a quoted Windows project path. init creates a config without overwriting an existing one; it does not copy or alter your research data.

Open a new agent session in your research project, using the Python environment above if you want the bundled helpers, and give it a concrete instruction:

Use AutoSciRub to compare treatment and control in data/measurements.csv. Save the analysis code, a results table, and a short report. Use local sources from papers/ and perform at most one revision round.

Other supported scopes:

  • Rubric only: “Use AutoSciRub to make an executable rubric for this task. Stop before experiments.”
  • Verification only: “Verify report.md against the existing AutoSciRub rubric. Do not revise it.”

Installation and updates

The installer copies all eight skills and their bundled resources into the platform's personal skill directory. It does not register a marketplace or run the agent. These directories follow the platform documentation:

Platform Personal directory Documentation
Codex .agents/skills under your user directory Codex skills
Claude Code .claude/skills under your user directory Claude skills
OpenClaw .openclaw/skills under your user directory OpenClaw skills

Preview or check an installation:

python scripts/install.py codex --dry-run
python scripts/install.py codex --check

--check verifies the installed files against this checkout. To verify actual discovery, open a new agent session and ask it to list the AutoSciRub skills. Agent policy or workspace-level overrides can still affect availability.

After updating your checkout, rerun the installer. Identical files are left alone. Previously installed, unmodified skills are updated; locally edited or unmanaged same-name skills cause an actionable error before any skill is changed. For a custom location, use --skills-dir and configure your agent to load it.

The existing Bash and PowerShell wrappers call the same installer: ./scripts/install.sh codex or .scriptsinstall.ps1 codex. PowerShell also accepts -Check, -DryRun, and -SkillsDir.

Existing marketplace users may continue using the plugin package. Avoid enabling both that plugin and the personal copies simultaneously. The manifests remain in plugins/autoscirub/; the personal-skill installer does not update an existing plugin cache.

Configuration

init creates PROJECT/.autoscirub/config.yaml. YAML is parsed with PyYAML; the same JSON Schema validates both partial overrides and the resolved settings. Comments, quoted strings, lists, and anchors are supported. Duplicate keys, unknown fields, misspelled provider names, and invalid types fail before retrieval. YAML merge keys that create duplicate keys are rejected; use explicit sections.

For local-only work, a complete minimal config is:

retrieval:
  enabled_sources: [local_literature]
  local_literature:
    paths: [papers]
  exclusions:
    excluded_paths: [papers/private]

Local inputs and exclusions are exact files or directories, not glob patterns. Directories are searched recursively; excluded subtrees and links to excluded files are omitted. Local indexing provides filenames and paths, not full-text search or scientific relevance ranking. It does not upload documents.

Path rules:

  • --project selects the research root; otherwise the current directory is used.
  • With no --config, read PROJECT/.autoscirub/config.yaml if it exists.
  • An explicit --config path is relative to the shell's current directory.
  • All paths inside the config are relative to the research root, not the config file.
  • State directory precedence: --state-dirAUTOSCIRUB_STATE_DIR → config state_dir.autoscirub.
  • Retrieval output defaults to STATE/literature_sources.json; --out overrides it.
  • MinerU output defaults to STATE/cache/mineru/; its --output-dir overrides it.
  • AutoSciRub skills use the same resolved state directory. Reports, code, and scientific results stay in the locations agreed with the user.
python scripts/autoscirub.py config validate --project /path/to/my-research
python scripts/autoscirub.py retrieve --project /path/to/my-research --query "research question"

Use repeatable --query arguments for separate queries, or --goals for a rubric skeleton. Run retrieve --help for the complete options. The original skill script remains directly executable.

Full defaults: config/sources.example.yaml. The editor-facing config/sources.schema.json points to the canonical schema bundled with the retrieval skill.

Network services

The default config enables arXiv, OpenAlex, Semantic Scholar, and local indexing. Tavily is opt-in: add it to enabled_sources and set its provider enabled: true. Credentials are read only from environment variables:

Variable Purpose
OPENALEX_EMAIL OpenAlex contact email
OPENALEX_API_KEY OpenAlex access, when required by the service
SEMANTIC_SCHOLAR_API_KEY Semantic Scholar authentication/rate allowance
TAVILY_API_KEY Required for Tavily
MINERU_API_TOKEN MinerU standard API

Remote retrieval sends query text to the selected providers. MinerU is a separate, optional converter that uploads input documents; leave it disabled for local-only work. API access, rates, and costs are controlled by those services. web means the agent's native web search, not an implemented provider in this script.

Progress and troubleshooting

The retriever prints each source's progress and saves structured provider_results.

Situation Behavior / next step
Invalid configuration Exit 2 with the field to correct; no requests made
Missing Python dependency Install requirements.txt using the same Python executable
Missing local document Check project-relative local_literature.paths; shown as a failed source
Missing required key Source skipped with the variable name to set
Successful query, no usable results Status empty, exit 0; try broader terms or local papers
Some sources fail Status partial, exit 0; available sources retained with failure details
Every source fails or none can run Exit 3; write literature_sources.failure.json, preserving the previous index
HTTP 401 / 403 / 429 Check provider access or rate allowance; no automatic unbounded retries
Skill not available in agent Run install --check, restart the agent, inspect its local skill settings
Installer detects local edits Preserve your changes or choose a different configured skill directory

A default request can wait up to 30 seconds before a network timeout. This version uses sequential requests and reports progress; it does not automatically retry or resume requests. doctor checks local configuration, dependencies, paths, and environment-variable presence without making paid requests or testing keys.

Workflow and state

The controller performs seven steps: instruction goals, literature grounding, data exploration, criterion synthesis, research execution, criterion verification, and bounded revision. The agent runs the scientific experiments; the CLI does not replace it. Simple tasks need only a few goals and criteria, not a fixed quota.

The default revision limit is one round (workflow.max_revision_rounds). Every full-workflow revision is followed by verification. Missing inputs remain explicit unmet requirements; all_satisfied cannot be true while any in-scope criterion is unmet. Verification-only requests never authorize edits.

Framework state includes:

  • run_manifest.json: controller-maintained task, stage, budget, and output locations.
  • rubric_skeleton.json, literature_grounding.json, task_data_profile.json, and executable_rubric.json: planning and evidence contracts.
  • literature_sources.json: optional helper-generated retrieval index.
  • verification_report.json and revisions/round-NNN/: checks and revisions.
  • cache/mineru/: optional converted literature.

Development checks

python -m pip install -r requirements.txt
python scripts/validate.py
python -m unittest discover -s tests -v

Tests use local fixtures and mocked network responses. GitHub Actions runs them on Linux, macOS, and Windows with Python 3.10 and 3.12, plus Bash and PowerShell installer smoke checks. They verify helper behavior, not model reasoning quality or live provider availability.

Citation

If you use AutoSciRub in your research, please cite our paper:

@article{autoscirub,
  title={Learning to Evaluate Before Improving: Automatic Rubric Induction for Automatic Research Agents},
  author={Wang, Xuehai and Qin, Haowei and Liu, Tongxin and Li, Junkai and Xu, Buqiang and Zhang, Jintian and Chen, Yijun and Xue, Zirui and Deng, Shumin},
  journal={arXiv preprint arXiv:2608.31076},
  year={2026},
  doi={10.48550/arXiv.2608.31076},
  url={https://arxiv.org/abs/2608.31076}
}

License

MIT. See LICENSE.

About

Learning to Evaluate Before Improving: Automatic Rubric Induction for Automatic Research Agents

Topics

Resources

Stars

32 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages