Skip to main content

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.

RoleKindNeededWhat it does
attackerchat modelrequiredPlans 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.

FieldTypeDefaultDescription
max_turnsinteger (>= 1)10Turns the conversation may grow to. A backtracked turn is retried, not counted, so the conversation never escalates on a refusal.
max_backtracksinteger (>= 0)10Rephrasings allowed across the whole goal. Once spent, a refused turn is accepted as-is and the conversation moves on.
keep_last_ninteger (>= 1)6Attacker turns kept before its planning log is trimmed. The target's own conversation is never trimmed: that history is the attack.
early_stopbooleantrueStop as soon as a turn the target did not refuse passes the panel.
feedback_max_charsinteger (>= 1)2500Longest 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.