FineEnvs/SmolDataEnvs-harbor-train

Dataset

πŸ“Š SmolDataEnvs: Harbor (train)

1

49 commits

2 linked in READMEs

updated Sep 24, 2026

See the code

README

SmolDataEnvs

πŸ“Š SmolDataEnvs: Harbor (train)

Collection Harbor Visualiser

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

Reward and held-out pass@k climbing over 1,119 GRPO steps

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, 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

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

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

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
SmolDataEnvsthe tasks as plain rows, load it and prompt any model
SmolDataEnvs-sft4,677 verified agent trajectories, TRL-ready
SmolDataEnvs-harbor-train5,000 tasks as Harbor environments
SmolDataEnvs-harbor-test250 held-out, deliberately harder
SmolDataEnvs-harbor-eval144 for quick validation during a run

Citation

@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}
}
agent
code-agent
data-analysis
harbor
openenv
reinforcement-learning
rl-environment
smoldataenvs

Contributors

AdithyaSK

49 commits

FineEnvs/SmolDataEnvs-harbor-train

Dataset

πŸ“Š SmolDataEnvs: Harbor (train)

1

49 commits

2 linked in READMEs

updated Sep 24, 2026

See the code

README

SmolDataEnvs

πŸ“Š SmolDataEnvs: Harbor (train)

Collection Harbor Visualiser

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

Reward and held-out pass@k climbing over 1,119 GRPO steps

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, 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

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

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

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
SmolDataEnvsthe tasks as plain rows, load it and prompt any model
SmolDataEnvs-sft4,677 verified agent trajectories, TRL-ready
SmolDataEnvs-harbor-train5,000 tasks as Harbor environments
SmolDataEnvs-harbor-test250 held-out, deliberately harder
SmolDataEnvs-harbor-eval144 for quick validation during a run

Citation

@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}
}
agent
code-agent
data-analysis
harbor
openenv
reinforcement-learning
rl-environment
smoldataenvs

Contributors

AdithyaSK

49 commits