Skip to main content
An attack method is how a risk gets probed. The same sub-category — say harmful_instructions — is tested very differently by basic than by goat. Attack IDs go in attack_config, keyed by ID, with an options object as the value:
attack_config must be an object, not a list. {"basic": {}} is valid; ["basic"] is rejected. An empty options object {} means “use the defaults for this technique”.

The three buckets

Every technique falls into one of three buckets, which is also how results are grouped in the report.

Baseline

The untransformed prompt, asked directly. Establishes what your target refuses without any adversarial pressure.

Evasion

The carrier is mutated — encoded, translated, rendered into an image or audio — while the intent stays the same. Tests whether safety training generalises past surface form.

Adaptive jailbreak

An attacker model probes, adapts and escalates across turns based on what your target replies. The strongest and most expensive techniques.

Full index

hades is not yet available. It appears in older schema versions but is not generally available, and a run declaring it is rejected with a 400 telling you it is coming soon. Leave it out of attack_config until it ships.
single_shot and lang are accepted aliases — they resolve to deepinception and the translation strategy respectively. Results are reported under the canonical name.

Choosing by modality

Attacks only run against targets that can accept their modality. Declare what your target supports:
Requesting an image attack against a text-only target will not produce useful results. Check input_modalities before adding figstep, camo, fc or word_masking, and before adding waveform or audio_goat.

Choosing by effort

Adaptive techniques call an attacker model repeatedly, so they cost more and take longer than evasion transforms, which cost more than the baseline. This drives both run time and credit pricing.
1

Start with basic

Run basic alone first. It is cheap, fast, and tells you what your target refuses with no pressure at all. Anything that fails here is a straightforward gap.
2

Add evasion

Add encoding and lang. If your target refuses a request in plain English but complies with it Base64-encoded or translated, safety training has not generalised past surface form.
3

Add adaptive

Add tap or goat for the risks that matter most. These find the failures a single-turn test cannot, but budget accordingly.
4

Go multi-modal

If your target accepts images or audio, add the corresponding techniques. Vision and audio paths are frequently less well defended than the text path.
Cheap, fast, catches obvious gaps.

Per-attack options

Each attack accepts an options object. {} selects the technique with its defaults, which is the right choice unless you have a specific reason to tune it.

encoding

lang

obfuscation

tap

goat

derail_yourself

rt_agent_v2

Techniques not listed here take no behavioural options — pass {}. Raising iteration, depth or turn counts increases both run time and credit cost.

Attacks in the Playground

The Playground runs attacks against a single stated goal with no category scaffolding. attack_config sits at the top level there, not nested under a category:
See Run Playground.

Reading attack results

Results break down by technique so you can see which ones worked:
A basic ASR of 0 with a high tap ASR is the common and important pattern: the target refuses direct requests but yields under adaptive pressure. Fixing that needs defence in depth, not a longer refusal list.