Target
A target is the agent or LLM you are evaluating. It tells Promptbeat what the system is supposed to do, what tools and capabilities it has, what boundaries it must respect, and which assets it must protect. Promptbeat uses the target profile to focus generation on relevant risks and to explain results in context. Define your target intarget.yaml. The key fields are:
| Field | Purpose |
|---|---|
id | Machine-readable identifier used throughout the pipeline |
name | Human-readable label shown in reports |
description | One-line summary of the system under test |
capabilities | List of capabilities the target possesses (drives scenario matching) |
boundaries | Explicit rules the target must not violate |
sensitive_assets | Data or secrets the target must protect |
llm-basic example:
target.yaml (llm-basic)
tools, business_rules, and forbidden_actions. See the codex_agent example for a richer target definition covering shell access and workspace boundaries.
Scenario
A scenario describes a single risk situation. It specifies which risk category applies (risk_type), what target capabilities must be present for the test to be meaningful (applies_to), what a failure looks like (failure_signals), which judges should evaluate the result (judges), and what a passing response looks like (success_criteria).
scenarios.yaml (llm-basic)
scenarios.yaml file can hold multiple scenario objects. Promptbeat matches each scenario against the target’s declared capabilities and only runs scenarios that are applicable.
Seed
A seed is the starting material for an attack, not the final probe. It captures one focused attack intent — the framing style, the risk type it targets, and the capabilities the target needs to expose the risk. Promptbeat and its generation backends use seeds to produce a larger set of varied, realistic attack prompts.seeds.yaml (llm-basic)
How they compose
At runtime Promptbeat merges the three objects into a pipeline:| Stage | Target contributes | Scenario contributes | Seed contributes |
|---|---|---|---|
| Generate | Capability list and boundaries shape probe wording | Risk type selects plugins and strategies | Template and framing style seed the attacker model |
| Eval | Provider config routes probes to the real system | Failure signals and judges define pass/fail logic | Generated probes derived from seed templates are executed |
| Report | Agent name, description, and sensitive assets appear in report context | Risk type groups results; success criteria explains outcomes | Seed id traces each result back to its source intent |
Seeds can come from hand-written YAML files like the examples above, or from dataset subscriptions that pull from benchmark corpora such as HarmBench, JailbreakBench, and ALERT. See the Datasets section to learn how to map dataset categories to Promptbeat risk types.