CoolFace
Datasetpublic

FineEnvs/SmolDataEnvs-harbor-train

📊 SmolDataEnvs: Harbor (train) 5.5K+ RL tasks for hill-climbing small models in code and data science. A 2B model on these tasks. Left: what it optimises. Right: 144 held-out tasks it never trains on. Two runs over the same 5,000 tasks: shuffled against a curriculum ordered easiest to hardest. The training suite: 5,000 hands-on data-analysis tasks. Each one drops an agent into a sandbox with a real dataset and a question, and asks it to explore the data… See the full description on the dataset page: https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-harbor-train.

sourceHugging Facemitupdated 4h agoView on Hugging Face
1likes
Dataset Card

<div align="center">

<img src="https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-harbor-train/resolve/main/banner.png" alt="SmolDataEnvs" width="100%">

📊 SmolDataEnvs: Harbor (train)

![Collection](https://huggingface.co/collections/FineEnvs/smoldataenvs) ![Harbor Visualiser](https://huggingface.co/spaces/HuggingFaceH4/harbor-visualiser?dataset=FineEnvs/SmolDataEnvs-harbor-train)

</div>

5.5K+ RL tasks for hill-climbing small models in code and data science.

<div align="center">

<img src="https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-harbor-train/resolve/main/curves.gif" alt="Reward and held-out pass@k climbing over 1,119 GRPO steps" width="100%">

<sub>A 2B model on these tasks. Left: what it optimises. Right: 144 held-out tasks it never trains on.<br> Two runs over the same 5,000 tasks: <b>shuffled</b> against a <b>curriculum</b> ordered easiest to hardest.</sub>

</div>

The training suite: 5,000 hands-on data-analysis tasks. Each one drops an agent into a sandbox with a real dataset and a question, and asks it to explore the data, compute the answer, and write it down. Every answer is checked deterministically.

Packaged in Harbor format, so each task is a ready-made agentic environment: its own container, its own data, its own verifier.

What's inside

  • —5,000 verified tasks: the RL training set
  • —Difficulty: easy 1,433 · medium 2,845 · hard 722 (difficulty_tier, plus difficulty_level 1–5)

How a task is laid out

tasks/<task_id>/
  task.toml         # metadata, the question, the gold answer, grading tolerances
  instruction.md    # the prompt the agent sees
  environment/      # Dockerfile (shared base image) + the data-pull hook
  tests/            # grader.py (deterministic) + test.sh
registry.json       # the suite manifest
manifest.parquet    # one row per task, for filtering without walking the tree

Install

bash
pip install "openenv[harbor]"   # tested with openenv 0.6.0, needs Python 3.12+

The [harbor] extra is what brings in the sandboxes. A plain pip install openenv gives you the CLI but nothing to run a task in. --sandbox e2b also needs E2B_API_KEY set.

Serve it

bash
openenv harbor serve \
  --dataset FineEnvs/SmolDataEnvs-harbor-train \
  --llm-url http://127.0.0.1:8000/v1 --model <your-model> \
  --port 8000 --capture-port 8100

Pass several with --dataset a,b and each arrives as its own split, which is how you train against -train and validate against -eval from one server.

One rollout, no trainer

bash
openenv harbor rollout \
  --dataset FineEnvs/SmolDataEnvs-harbor-train \
  --llm-url http://127.0.0.1:8000/v1 --model <your-model> \
  --harness opencode --sandbox e2b --task-index 0

Where it comes from

Built from the jupyter-agent dataset, real data-science notebooks over 471 Kaggle datasets. Every question–answer pair was extracted and then verified: strong agent models had to solve the task in a live sandbox and reproduce the gold answer under deterministic grading. Anything ambiguous or un-checkable was dropped. So every task here is known-solvable and unambiguously gradable.

Verified by a checker, not judged by a model. Grading is an exact comparison against a known answer, through a ladder of checks: exact match → numeric with tolerances → list and percent normalisation → symbolic equivalence. No LLM sits in the reward path, so the signal does not drift when you change the grader's model, because there isn't one.

The family

RepoWhat it is
`SmolDataEnvs`the tasks as plain rows, load it and prompt any model
`SmolDataEnvs-sft`4,677 verified agent trajectories, TRL-ready
`SmolDataEnvs-harbor-train`5,000 tasks as Harbor environments
`SmolDataEnvs-harbor-test`250 held-out, deliberately harder
`SmolDataEnvs-harbor-eval`144 for quick validation during a run

Citation

bibtex
@misc{fineenvs,
  author = {Kolavi, Adithya S},
  title  = {FineEnvs: Open Source RL Environments for LLM Agents},
  year   = {2026},
  url    = {https://github.com/adithya-s-k/FineEnvs}
}
FineEnvs/SmolDataEnvs-harbor-train · CoolFace