Skip to main content
A dataset holds tasks your organization publishes to Valkyrie, with no benchmark service to run. Each push makes an immutable version.

Lay out the task folders

  • Put each task in its own folder, named by its task ID, under one parent folder.
  • A task folder holds task.toml, instruction.md, and tests/test.sh. It can also hold environment/ and solution/.
  • A metric.py in the parent folder computes the dataset’s score from the task rewards.
  • A dataset.toml in the parent folder pins the exact tasks and their digests, and its version becomes a tag.

Read secrets in task environments

  • In task.toml, use a whole-value ${NAME} to read a secret available to the run. For JSON secrets, this reads the field named NAME.
  • Use ${SECRET#FIELD} to select a different JSON field, or ${SECRET#FIELD:-fallback} to use a default when the secret or field is unavailable.
  • These references work in agent, verifier, verifier sandbox, and solution environment values, including step verifiers. A field reference requires a JSON object secret.

Push a folder

  • The benchmark and the dataset are created when they don’t exist yet.
  • Only tasks the dataset doesn’t store yet are uploaded. Pushing an unchanged folder makes no new version.
  • Every version gets the latest tag, plus each --tag.

Install from Harbor, GitHub, or Hugging Face

--location github and --location hugging_face take a repository as owner/name or its URL.
--location harbor needs uv or the harbor CLI on your PATH.

Tag versions

  • latest always moves. Another tag on a different version moves only with --force.
  • untag removes a tag. latest can’t be removed.

Run an agent on a dataset

  • After @, pass a revision number, a tag, or a digest. Without it, the run uses latest.
  • --slice, --task-ids, and --concurrency work as in Start a run.

Inspect tasks

The download is saved as TASK_ID.zip unless you pass --output.

Reference