CoolFace
Datasetpublic

FineEnvs/SmolDataEnvs-harbor-eval

📊 SmolDataEnvs: Harbor (eval) 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 validation suite: 144 tasks, small enough to run every few hundred training steps without the eval becoming the expensive part of the loop. Packaged in Harbor format… See the full description on the dataset page: https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-harbor-eval.

sourceHugging Facemitupdated 7h agoView on Hugging Face
0likes
Dataset Card

<div align="center">

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

📊 SmolDataEnvs: Harbor (eval)

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

</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-eval/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 validation suite: 144 tasks, small enough to run every few hundred training steps without the eval becoming the expensive part of the loop.

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

  • —144 verified tasks: quick validation during a run
  • —Difficulty: easy 16 · medium 74 · hard 54 (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-eval \
  --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-eval \
  --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}
}