ASI-Bench: AI Scientist’s Last Exam
A Project-Level Benchmark for Evaluating LLM Agents on AI for Science
Core Authors
Junwei Zhou3,†, Zhen Sun1,2,†, Binyu Li1,2, Jiangyu Zhou1,2, Yuexi Pan1,2, Hengyu Wang1,2, Honghe Ren1, Xiaohan Jia1,2, Xueyang Zhou1,2, Yongchao Chen1,2,*
† Equal contribution · * Corresponding author
Contributors
Yuanning Feng1,2, Junhao Wu1,2, Xiaoyu Cao1,2, Cheng Zhang3, Sijia Chen5, Haoyu Xue1,2, Chengsong You1,2, Huan Wang1,2, Peigan Gao4, Jiakun Wu1, Koutian Wu3, Wenzhe Li1, Ergan Shang6, Jingjing Zhou1, Ruixuan Jia1,2, Qingyuan Zheng1, Yan Xu7, Hongrui Zhang8, Xiao-Han Ma4, Zhengxiang Cheng1,2, Yuexing Hao7, Liting Mai9, Xianglin Ji7, Wenjun Zhang10, Zhuofan Chen1,2, Yixiao Huang1, Chi Wang11, Wenyue Hua12, Yilun Hao7, Yuantao Zhai2
1 Tsinghua University ·
2 Apex Intelligence ·
3 Independent Researcher ·
4 University of Science and Technology of China ·
5 Flatiron Institute ·
6 Carnegie Mellon University ·
7 Massachusetts Institute of Technology ·
8 Boston University ·
9 University of Illinois Urbana–Champaign ·
10 University of Queensland ·
11 AG2 AI ·
12 Microsoft Research
Figure 1: Overview of ASI-Bench. Left: B3 performance across agents. Right: scores from B1 to B4.
Overview
ASI-Bench evaluates scientific autonomy: whether an AI agent can translate a scientific objective into an executable and independently validated workflow, rather than merely follow prescribed procedures.
| Benchmark scope | Description |
|---|---|
| Tasks | 60 project-level tasks |
| Scientific coverage | 11 domains |
| Information levels | B1–B4, with progressively less methodological guidance |
| Evaluation | Expert cross-review, execution testing, and reliable scoring |
| Evaluated systems | 18 agent–model configurations |
Across all evaluated systems, the average scores are 50.92 at B1, 29.64 at B2, 27.17 at B3, and 27.33 at B4 as concrete procedural guidance is progressively removed. The sharp drop after B1 and persistently lower scores at B2–B4 show that strong workflow execution does not yet imply independent scientific problem-solving.
Resources
| Resource | Link |
|---|---|
| Project homepage & documentation | asibench.apexin.ai |
| Source code | apexin-ai/ASI-Bench |
| Leaderboard | View official results |
| Dataset · seed42 | Apexintelligence-AI/ASI-Bench-seed42 |
| Dataset · seed31415 | Apexintelligence-AI/ASI-Bench-seed31415 |
| Python package | asibench on PyPI |
Quick start
1. Install ASI-Bench
pip install asibench
asibench --help
Requirements: Python 3.11 or later. The default installation is lightweight and includes everything needed to download public benchmark instances. For local agent execution or task authoring, install the optional full stack:
asibench is the canonical CLI. The legacy ai4sci-bench command remains only
as a backwards-compatibility alias.
pip install 'asibench[full]'
2. Download a benchmark set
Each fixed-seed dataset contains its own prompts and input data. Choose one seed for each run:
mkdir asi-bench-run
cd asi-bench-run
asibench task pull \
--repo seed42 \
--output-dir hf_instances_seed42/
3. Run an agent
asibench run \
--instances-dir hf_instances_seed42/ \
--agent-cmd 'python my_agent.py --workspace {workspace}' \
--sandbox linux_ns \
--output-dir out_seed42/
The command above evaluates all four prompt levels (b1,b2,b3,b4). Use
--prompt-levels only when intentionally running a subset.
4. Submit for official scoring
asibench login
asibench submit --results-dir out_seed42/
submit creates an authenticated draft on the ASI-Bench website. Review the
completeness summary and confirm the draft to enter the official scoring queue.
Local benchmark runs do not calculate official scores.
Run configuration
| Setting | Behavior |
|---|---|
| Dataset seed | seed42 and seed31415 are separate runs; use distinct instance and output directories |
| Prompt levels | All four levels run by default; select a subset with --prompt-levels |
| Timeout | --timeout defaults to 10,800 seconds and applies uniformly to every task |
| Submission | submit uploads a draft by default; --no-upload creates a local bundle only |
| Custom agents | --agent-cmd supports the none and linux_ns sandboxes |
| Built-in agents | Use --agent with --agent-config; compatible adapters can use Docker-based os isolation |
Platform note: The examples use Linux Bash, and the
linux_nssandbox requires Linux. Windows users should run it through WSL2. PowerShell and Command Prompt use different line-continuation and JSON-escaping syntax.
See Getting Started for agent configuration, sandbox selection, and platform-specific commands.
Package and CLI compatibility
asibenchis the only published Python distribution and the canonical CLI.- Existing Python integrations may continue to import
ai4sci_bench. ai4sci-benchremains available as a legacy CLI alias.- Benchmark instances are downloaded separately with
asibench task pull. - Runtime and declared-output metadata come from
tasks/or--tasks-dir. - Retired internal orchestration commands are not part of the public CLI. Use
run,report,batch-report,review, and the Portal workflows.
Built-in CLI agents — installation
Install the CLI agent you want to evaluate, then select its ASI-Bench adapter
with --agent.
- New model, existing harness. When a supported harness such as Codex CLI,
Claude Code, or Kimi Code adds a model, select the new model through
--agent-config. If the model is served through a third-party endpoint and the adapter supports that route, also setapi_base,api_key, andapi_protocol(openaioranthropic). No ASI-Bench code change is normally needed while the harness accepts the model and the endpoint remains protocol compatible. - New agent harness. A new CLI or runtime can be used immediately through
--agent-cmdwhen it can read the prepared workspace and write result files; this generic mode supportsnoneandlinux_ns. First-class built-in integration—its own--agentname, harness-specific authentication and configuration, proxy wiring, and Docker-basedossupport—requires ASI-Bench maintainers to implement and test a new adapter.
| Agent | Install command | Notes |
|---|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
Requires Anthropic API key or local login (claude /login) |
| Codex CLI | npm install -g @openai/codex |
Requires OpenAI API key |
| Kimi Code | npm install -g @moonshot-ai/kimi-code |
Use the npm package. The PyPI package (kimi-cli) has different CLI arguments and is not compatible with this adapter. Requires Moonshot API key or local login (kimi /login) |
| CodeWhale | See CodeWhale docs | Requires DeepSeek API key by default |
| AntiGravity | npm install -g @anthropic-ai/antigravity |
Experimental |
Example with Kimi Code:
asibench run --agent kimi_code_cli \
--agent-config '{"model": "kimi-k2.7"}' \
--output-dir out/
Framework-managed model proxies use text-only input by default. For endpoints
that accept images, set "supports_image_input": true in --agent-config.
Without this flag, image attachments are replaced with a short notice before
the next model request. Direct endpoints outside the framework proxy remain the
responsibility of the connected agent.
Contribute a task
We welcome project-level scientific tasks from the research community. Authors can draft a task locally or in the Portal, validate it, and submit a frozen revision for review.
Quick start for task authors
# 1. Create a task scaffold
asibench task create --domain physics --name my_new_task
# 2. Edit the generated files in tasks/physics/my_new_task/:
# - task_meta.yaml — task metadata (public)
# - task_eval.yaml — evaluation config: scoring rules, parameter space (private)
# - generate_gt.py — ground-truth generator (private)
# - custom_scorer.py — custom scoring logic, if needed (private)
# - prompt_b1.md … prompt_b4.md — difficulty-ladder prompts (public)
# 3. Required pre-submit validation
asibench validate --pre-submit tasks/physics/my_new_task/
# 4. Required same-model trial across B1, B2, B3, and B4
asibench difficulty-check --task physics.my_new_task
# 5. Open the Portal task-submission form
asibench task submit
Submission requirements
- Complete
validate --pre-submitand a same-modeldifficulty-checkacross B1–B4 before submission. - Use lowercase letters, digits, and underscores for task IDs. The canonical
form is
domain.task_name. asibench task submitopens the Portal form; files are uploaded and reviewed in the browser, not from the terminal.- Set
ASIBENCH_NO_BROWSER=1to print the form URL without opening a browser. - The Portal requires
local_testing_doneand one finite score for each level before freezing a revision. - Authors do not create repository pull requests. Administrators publish accepted tasks after review.
The default submission form is
asibench.apexin.ai/submit/proposals/new.
Use --endpoint or ASIBENCH_SUBMIT_ENDPOINT to select another Portal.
Runnable samples from the official benchmark
The following final tasks can be used to verify the runner workflow:
| Task | Domain | Description |
|---|---|---|
astronomy.nbody_close_encounters |
Astronomy | Close-encounter few-body scattering |
math.homotopy_poly_roots |
Math | Isolated complex roots via homotopy continuation |
Pull and run one in produce-only mode:
asibench task pull \
--repo seed42 \
--tasks astronomy.nbody_close_encounters \
--output-dir example_instances/
asibench run \
--instances-dir example_instances/ \
--tasks astronomy.nbody_close_encounters \
--agent-cmd 'python my_agent.py --workspace {workspace}' \
--sandbox linux_ns \
--output-dir example_results/
asibench submit --results-dir example_results/
For official benchmark tasks, the GitHub catalog contains metadata only. Prompts and input data come from Hugging Face, while reference answers and scorers remain on the private scoring service.
Five opt-in sample tasks are fully public examples. Their B1–B4 prompts,
ground-truth generators, and scorer implementations or configurations are
available under tasks/:
robotics.minimum_snap_trajectory_conditioningchemistry.bsse_counterpoise_cbs_extrapolationmaterials.phonon_dispersionmedicine.ethics_disclosure_diagnosis_1670medicine.jama_id0014_malignant_an
The examples were synchronized from
apexin-ai/Agent-AI4Sci-Bench
at revision 2ba9258442bf53ad6c4911957234e03e767476ad.
Dataset layout
| Item | Contract |
|---|---|
| Official tasks | 60 final task definitions shared by both fixed-seed datasets |
| Public examples | 5 opt-in sample tasks with complete prompts and scoring assets |
| Instance layout | <output-dir>/<instance-id>/ after asibench task pull |
| Default selection | Unfiltered official runs exclude sample tasks |
| Including samples | Use --include-sample or name a sample explicitly with --tasks |
Pull the two fixed-seed datasets separately:
asibench task pull --repo seed42 --output-dir hf_instances_seed42/
asibench task pull --repo seed31415 --output-dir hf_instances_seed31415/
seed42 and seed31415 are the only official Hugging Face contracts, and
--repo is required. They share task schemas and declared outputs but contain
different generated inputs. Matching schemas live in
tasks/**/task_meta.yaml; private manifests, references, and scorers stay on
the scoring side.
The task workflow uses the grouped asibench task create, task pull, and
task submit commands. See Contribute a Task
for the complete authoring guide.
How scoring works (and stays fair)
- Public execution framework: agent adapters, sandboxes, instance loading, output collection, and submission packaging are auditable in this repository.
- Centralized official scoring:
asibench loginidentifies the submitter, andasibench submitsends a draft for confirmation and scoring. Self-reported scores are not accepted.
Sandboxing & reproducibility
- Runs support
task,os, andlinux_nssandboxes with pinned per-task runtimes. - Every run records agent, model, effort, sandbox, and framework provenance.
- Source checkouts are installed editable into task environments; wheel-based
runs install the matching
asibenchversion. - Mutable caches live under
~/.asibench/, never undersite-packages. - Namespace and Docker prerequisites are checked before execution. Missing prerequisites produce a non-zero CLI exit.
Documentation
Installation, execution, submission, task contribution, catalog, and leaderboard documentation are available on the ASI-Bench website.
License
See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asibench-0.1.2.tar.gz.
File metadata
- Download URL: asibench-0.1.2.tar.gz
- Upload date:
- Size: 241.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5b5acc5df6df6f3898d6bc9acb88cdc080747a39900c9ad6c4eb3bc30669436
|
|
| MD5 |
978388f5c6f1663468cfe9d735badaa2
|
|
| BLAKE2b-256 |
e7e2522466175e673359db66e66670792384ee94555c50c8606514fff1600b0e
|
File details
Details for the file asibench-0.1.2-py3-none-any.whl.
File metadata
- Download URL: asibench-0.1.2-py3-none-any.whl
- Upload date:
- Size: 291.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4c4582fb02b000ea51caf5477f23c93982e1089d7b8889a72fd29df4f20983a
|
|
| MD5 |
3a6ed6c5777c0ce1b1e546b8ee932949
|
|
| BLAKE2b-256 |
f6f705ef1703263732154f2c12f50163e5b11fc57e8fc596dad6f6c99e57f2d8
|