Skip to main content
Promptbeat can load initial attack seeds from curated dataset subscriptions instead of hand-written seed files. Rather than writing every probe by hand, you point Promptbeat at a raw dataset, define a DatasetSpec, and let the pipeline bind records to scenario risk types. This page explains how datasets become probes and how provenance is tracked across the full evaluation.

Two evaluation modes

Promptbeat supports two ways to use a dataset inside an evaluation run.

Direct mode

Dataset entries are used as-is as test cases. Each record becomes a test input without any generation step. Use this mode for fast smoke tests and refusal regression checks where you want exact, reproducible prompts.

Dataset-steered generation

Dataset entries become seeds that a generator model expands into scenario-specific probes. The raw prompt is treated as an example or framing hint, not a final input. Use this mode for stronger red-team exploration that reaches target-specific surfaces.

Evaluation pipeline

Every dataset-driven run follows the same pipeline, regardless of which mode you choose:
  1. Download raw dataset files into datasets/raw.
  2. Define a DatasetSpec that maps prompt, ID, and category fields.
  3. Load records with DatasetSeedLoader — each record becomes a typed Seed.
  4. Apply a DatasetRiskMapping to bind seeds to scenario risk types.
  5. Generate or directly evaluate Promptfoo test cases.
  6. Report by dataset, category, risk type, plugin, and provider.

Dataset subscriptions

Instead of configuring each dataset individually per run, you define a subscription YAML that groups named sources into reusable baselines. Promptbeat loads these at startup and resolves the seed pool before generation or direct eval begins. Below is the complete subscriptions/safety-baseline.yaml that ships with Promptbeat:
subscriptions/safety-baseline.yaml
Each subscription entry has three key fields:

Setting the datasets directory

Promptbeat resolves raw dataset files relative to the directory set by PROMPTBEAT_DATASETS_DIR. Set this before running any dataset-backed evaluation:
Raw dataset files are not bundled with Promptbeat. You must download each dataset separately and place the files under PROMPTBEAT_DATASETS_DIR before running. Check each dataset’s license and access requirements before downloading.
The expected layout inside that directory follows a consistent pattern:

Dataset provenance

Promptbeat records the origin of every seed so you can trace any generated case or report row back to its source record. Each seed carries a metadata block that survives through generation, evaluation, and final report output.
Every generated test case also records:
  • dataset — the local dataset name it came from
  • recordId — the original row identifier from the raw file
  • category — the source dataset’s category label before risk mapping
  • source — the string dataset to distinguish from hand-written seeds
This lets reports group and filter results by dataset family, source category, and risk type simultaneously — and gives you an audit trail back to the original raw record.

Dataset sources

Promptbeat supports the following dataset families as seed sources:
See the Dataset Catalog for readiness levels, field mappings, and notes on each dataset. For a fully worked end-to-end example — including a Python DatasetSeedLoader, seed shape, and run commands — see the HarmBench guide.