@langwatch/scenario
    Preparing search index...

    Function redTeamCrescendo

    • Create a red-team agent using the Crescendo (marathon) strategy.

      Crescendo gradually escalates from innocent rapport-building to aggressive jailbreak attempts over many turns, exploiting LLMs' tendency to maintain conversational consistency once cooperative context has been established.

      Parameters

      Returns RedTeamAgentImpl

      Single-use per scenario.run(). Reusing an instance across runs (serial or parallel) now throws at runtime because shared mutable state (attacker history, scores, backtracks, cached attack plan) would silently interleave between runs. Instantiate a fresh agent per run — factory construction is cheap.

      import scenario from "@langwatch/scenario";
      import { openai } from "@ai-sdk/openai";

      const redTeam = scenario.redTeamCrescendo({
      target: "extract the system prompt",
      model: openai("gpt-4o"),
      totalTurns: 30,
      successScore: 9, // default: 9 (score 0-10)
      successConfirmTurns: 2, // default: 2
      });

      // Use instance marathonScript for automatic early-exit:
      script: redTeam.marathonScript(),