Crescendo
Multi-turn escalation attack that gradually steers a persistent conversation toward the goal, with judge-driven backtracking on refusals.
Multi-turn. Holds one growing conversation with the target, escalating turn by turn.
One conversation with the target, escalated a turn at a time.
Helper models
Models this attack drives, configured under its roles. Each one is a ModelConfig.
| Role | Kind | Needed | What it does |
|---|---|---|---|
attacker | chat model | required | Plans the conversation and writes each next question, a little closer to the goal than the last. |
Parameters
Settings for the algorithm itself, written under the attack's parameters. Anything left out keeps its default.
| Field | Type | Default | Description |
|---|---|---|---|
max_turns | integer (>= 1) | 10 | Turns the conversation may grow to. A backtracked turn is retried, not counted, so the conversation never escalates on a refusal. |
max_backtracks | integer (>= 0) | 10 | Rephrasings allowed across the whole goal. Once spent, a refused turn is accepted as-is and the conversation moves on. |
keep_last_n | integer (>= 1) | 6 | Attacker turns kept before its planning log is trimmed. The target's own conversation is never trimmed: that history is the attack. |
early_stop | boolean | true | Stop as soon as a turn the target did not refuse passes the panel. |
feedback_max_chars | integer (>= 1) | 2500 | Longest reply and explanation fed back to the attacker. |
In a campaign file
attacks:
- name: crescendo
roles:
attacker:
name: llama3.2
connection:
provider: ollama
type: OLLAMA
Needs a helper model
This attack cannot run without attacker. A campaign that leaves it out fails to resolve, before anything is attacked.