Skip to content

FEAT: Add single_turn_crescendo technique with adversarial_config#1665

Open
rlundeen2 wants to merge 7 commits intomicrosoft:mainfrom
rlundeen2:users/rlundeen/2026_04_27_single_turn_crescendo
Open

FEAT: Add single_turn_crescendo technique with adversarial_config#1665
rlundeen2 wants to merge 7 commits intomicrosoft:mainfrom
rlundeen2:users/rlundeen/2026_04_27_single_turn_crescendo

Conversation

@rlundeen2
Copy link
Copy Markdown
Contributor

@rlundeen2 rlundeen2 commented Apr 28, 2026

Adds single_turn_crescendo to the scenario technique catalog. It uses PromptSendingAttack with a SeedSimulatedConversation seed group to generate a multi-turn crescendo conversation via simulated_conversation,
then sends the final prompt as a single turn.

There are some updates to the technique spec to support this.

I ran, inspected the conversation, and it looks like a good crescendo :)

rlundeen2 and others added 3 commits April 28, 2026 10:21
…class factory field

- Make AttackAdversarialConfig a first-class field on AttackTechniqueFactory
  (not buried in _attack_kwargs). Injected into attack at create() time if
  the attack class accepts it; also exposed via adversarial_chat property for
  seed-technique execution.
- Add seed_technique field to AttackTechniqueSpec for techniques that need
  SeedAttackTechniqueGroup (e.g. simulated conversation).
- Extend build_scenario_techniques() to resolve adversarial config when
  spec.seed_technique.has_simulated_conversation is True.
- Add single_turn_crescendo entry to SCENARIO_TECHNIQUES using
  PromptSendingAttack + SeedSimulatedConversation.
- Create crescendo_simulated.yaml (RedTeamingAttack-compatible prompt that
  only uses objective/max_turns, avoiding StrictUndefined errors).
- Update and add tests for new behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rlundeen2 rlundeen2 marked this pull request as ready for review April 28, 2026 21:30
Comment thread pyrit/scenario/core/attack_technique_factory.py
Comment thread pyrit/scenario/core/attack_technique_factory.py
Comment thread pyrit/datasets/executors/red_teaming/crescendo_simulated.yaml
@@ -0,0 +1,80 @@
name: crescendo_simulated
description: |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would probably expand a bit here and mention the original crescendo paper and the STCA paper, and how they relate to this prompt. I guess this is adapted by you based on the original prompt, right? Should we have a standardized way of representing that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants