README.md

June 17, 2026 Β· View on GitHub

CoDA-Bench

arXiv homepage data python license wechat


Code and data for [ICML 2026] CoDA-Bench: Can Code Agents Handle Data-Intensive Tasks?

Authors: Yuxin Zhang, Ju Fan, Meihao Fan, Shaolei Zhang*, Xiaoyong Du

Renmin University of China

πŸ‘‹ Overview

CoDA-Bench (Code and Data-intensive Benchmark) is a benchmark for evaluating AI agents on data-intensive analytical tasks. Given a natural language question and access to a Linux sandbox containing hundreds of data files, an agent must discover relevant data, write code, and produce the correct answer.

https://github.com/user-attachments/assets/34e50a62-744b-4079-8988-6a8bbfe166a0

▢️ Demo video. If it does not play inline, download/watch it here.

Unlike existing benchmarks that provide oracle data directly, CoDA-Bench requires agents to:

  • πŸ” Discover relevant data among hundreds of semantically similar files
  • πŸ—‚οΈ Navigate complex file hierarchies in a Linux sandbox
  • πŸ”— Integrate information from multiple heterogeneous data sources
  • πŸ’» Generate correct code for data-driven analytical tasks

πŸ“° News

  • [Jun. 8, 2026]: CoDA-Bench v1.0 released with Docker evaluation!
  • [Jun. 1, 2026]: CoDA-Bench paper accepted at ICML 2026!

πŸ“Š Dataset Statistics

MetricValue
Total Tasks1,009 (full) / 119 (hard subset)
Communities31 (full) / 15 (hard subset)
Source Datasets199 Kaggle datasets
Avg Files per Task~980 files
Total Size~43 GB (compressed)

πŸš€ Quick Start

Installation

git clone https://github.com/ruc-datalab/CoDA-Bench.git
cd CoDA-Bench
pip install -e .

Download Dataset

# One-command setup: downloads and extracts everything
python scripts/setup_dataset.py --data-dir ./datasets

This downloads:

  • Benchmark files (coda_bench.json, coda_bench_hard.json)
  • Community data archives (31 communities, ~43 GB)
  • Automatically extracts all archives

Run Evaluation (Docker Mode)

Step 1: Build Docker Image

cd docker
./build_all.sh
cd ..

Step 2: Set API Credentials

export LLM_API_KEY="your-api-key"
export LLM_BASE_URL="https://api.openai.com/v1"  # Optional

Step 3: Run Evaluation

# Quick test (4 instances)
python scripts/run_evaluation.py \
    --model gpt-5.5 \
    --instances 0 1 2 3 \
    --output results/test

# Full evaluation
python scripts/run_evaluation.py \
    --model gpt-5.5 \
    --output results/full \
    --workers 8

Step 4: Evaluate Results

python -m coda_bench.cli evaluate \
    --pred results/test/predictions.jsonl \
    --gold datasets/coda_bench.json \
    --out results/test/scores.json

Why Docker?

Docker mode provides secure isolation:

  • βœ… Agents cannot access benchmark answers
  • βœ… Network-restricted environment (only LLM API accessible)
  • βœ… Resource limits (memory, CPU, timeout)
  • βœ… Reproducible across different machines

See docker/README.md for detailed Docker documentation.

πŸ’½ Manual Evaluation

If you prefer manual control:

1. Load Dataset

import json

with open('datasets/coda_bench.json') as f:
    tasks = json.load(f)

# Each task contains:
# - instance_id: unique identifier
# - question: natural language question
# - answer: expected answer
# - release_community: community data directory

2. Run Your Agent

# Your agent should:
# 1. Access community data at: datasets/communities/{release_community}/full_community
# 2. Explore files and write code to answer the question
# 3. Output final answer

3. Evaluate Predictions

python -m coda_bench.cli evaluate \
    --pred predictions.jsonl \
    --gold datasets/coda_bench.json \
    --out results.json

Prediction format (JSONL):

{"instance_id": 0, "prediction": "38%"}
{"instance_id": 1, "prediction": "150"}

πŸ† Leaderboard

Current state-of-the-art results (as of paper publication):

SystemModelEA (Full)EA (Hard)DA (Full)
Mini-SWE-AgentGPT-5.561.1%49.6%52.3%
Codex CLIGPT-5.560.3%47.9%51.7%
OpenHandsGPT-5.559.7%44.5%48.9%
Claude CodeSonnet-4.653.8%42.9%47.2%

EA = Execution Accuracy, DA = Discovery Accuracy

πŸ’‘ Example Task

{
  "instance_id": 0,
  "question": "What is the percentage of missing values in the RBC feature?",
  "answer": "38%",
  "release_community": "community_26"
}

The agent needs to:

  1. Navigate to datasets/communities/community_26/full_community/
  2. Find ckdisease/source/kidney_disease.csv among ~980 files
  3. Load and analyze the data
  4. Calculate missing value percentage for RBC column
  5. Format answer as "38%"

πŸ“š Documentation

πŸ—ΊοΈ Roadmap

v1.0 (Current - June 2026)

  • βœ… OpenHands agent with Docker isolation
  • βœ… Full dataset (1,009 tasks) + hard subset (119 tasks)
  • βœ… Secure evaluation environment
  • βœ… Complete documentation

Coming Soon

  • 🚧 Direct mode - Quick testing without Docker (simple, no isolation)
  • 🚧 Additional agents - Claude Code, Codex, Mini-SWE-Agent Docker support
  • 🚧 Better logging - Real-time progress tracking
  • 🚧 Performance optimizations - Faster evaluation

πŸ’« Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Ways to contribute:

  • πŸ› Report bugs or issues
  • πŸ’‘ Suggest new features
  • πŸ“ Improve documentation
  • πŸ§ͺ Add agent implementations
  • πŸ“Š Share evaluation results

✍️ Citation

@inproceedings{zhang2026codabench,
  title={CoDA-BENCH: Can Code Agents Handle Data-Intensive Tasks?},
  author={Zhang, Yuxin and Fan, Ju and Fan, Meihao and Zhang, Shaolei and Du, Xiaoyong},
  booktitle={Proceedings of the 43rd International Conference on Machine Learning},
  year={2026},
  organization={PMLR}
}

πŸ“„ License

MIT License. See LICENSE for details.

Individual Kaggle datasets may have their own licenses.

πŸ“§ Contact

πŸ’¬ WeChat Group

Welcome to join the CoDA-Bench WeChat group, chat and share ideas with others!

CoDA-Bench WeChat

If you like CoDA-Bench, give it a GitHub Star ⭐.