Skip to main content
A Harbor import copies a zip of Harbor task folders and job folders into a taskset. Each task folder becomes a task of the taskset, and each job becomes an evaluation job whose traces replay the trials Harbor recorded, with their rewards. The import is the HUD counterpart of harbor publish for tasks and harbor upload for jobs. Imported tasks are for browsing and comparing runs; HUD cannot run them. To run Harbor tasks on HUD, adapt them with the SDK and deploy them.

Prepare the zip

One zip can hold tasks, jobs, or both, at any depth:
  • A task folder is any folder holding task.toml. dataset.toml manifests are ignored; the task folders inside a dataset folder import like any other. The zip root itself cannot be a task folder: put each task in its own folder.
  • A job folder holds config.json and result.json and has a folder per trial, each with its own result.json. Include the whole job folder; a trial folder on its own is read past with a warning.
A zip of job folders alone imports runs of tasks imported earlier: import it into the taskset that holds those tasks.

Start an import

There are three ways to start an import. All three upload the zip to your team’s Data store and import it into a taskset you can edit, and every import shows up on the taskset’s Imports tab.
Select Import from Harbor on the Tasksets page to create a new taskset, named after the zip unless you rename it. To add to an existing taskset, select Import in the taskset’s header, or Import from Harbor on its Imports tab.Drop the zip on the dialog, click to choose it, or pick a zip already in Data with Choose from Data. The dialog estimates how long the import will take before you start it.
The Import from Harbor dialog with my-benchmark.zip chosen, the new taskset named my-benchmark, and an estimate of about a minute, free.
Start import opens the import on the taskset’s Imports tab.

What an import creates

  • Tasks. Each task folder becomes an environment named after the folder, created in the taskset’s Project on first import and suffixed when your team already has an environment of that name, and a task of the taskset on that environment. The environment’s version is the folder’s Harbor content digest: importing the same content again changes nothing, and changed content becomes the environment’s next version, which its task moves to in every taskset you can edit.
  • Jobs. Each job folder becomes a HUD job, marked with a Harbor badge. Each finished trial becomes a trace of the task it ran: its agent/trajectory.json (ATIF) becomes the trace’s steps, and its result.json and verifier reward become the trace’s outcome. Unfinished trials are skipped.
  • Links between runs and tasks. A trial links to its task by the task digest in its lock.json, or, for trials from Harbor versions without trial locks, by the task_checksum in its result.json, matched against the task folders in the same zip. A task the zip does not hold is looked up among Harbor environments already in the taskset’s Project.

Follow an import

An import is queued, starting, or running while it works, and cancelling after a cancel request. It ends in one of four statuses: The taskset’s Imports tab lists its imports, newest first, with what each added and how many items it skipped or failed. Cancel a running import from its row.
A taskset's Imports tab listing a completed import of my-benchmark.zip that added three tasks and three runs and skipped one task.

Read the report

Open an import to read its report: every task, job, and trial in the zip, with its status and, for anything skipped or failed, the reason. Tasks open the taskset’s task, jobs open the job, and trials open their trace. Download saves the original zip or the report as JSON.
The report of an import, listing three imported tasks and one task skipped because it is missing instruction.md.
A job’s status follows its trials, unless the job folder itself was skipped or HUD refused the job. Skipped and failed items do not fail the import.

Import again

Importing the same zip again is safe, and resumes an import that stopped: environments, tasks, jobs, and traces are matched by digest and Harbor id instead of being created twice. To update a task, change its folder and import it again; to add runs, import their job folders into the taskset that holds the tasks.

Limits and permissions

  • The zip is at most 1 GiB, with at most 200,000 entries and 8 GiB unpacked. Import a larger set in several imports into the same taskset.
  • Harbor imports are free.
  • You must be able to edit the taskset. Team admins see every import on the team; other members see the imports they started.
  • A team holds one Harbor environment per task folder name. A task folder whose environment already exists in another Project fails, and two folders in one zip with the same name but different content stop the import.
  • A taskset holds one task per name. A task found in HUD joins the taskset only if the taskset has no task of that name, and a trial of another version of a task links only if the taskset’s task has held that version.
  • A trial without lock.json links only to a task folder in the same zip.

Common skip reasons