Search K
Appearance
Appearance
AI RED TEAM
This article is meant for AI Red Team users.
ROLES AND PERMISSIONS
To complete the tasks described in this section, make sure you have the required permissions.
Use AI Security to manage your campaigns.
You can list all campaigns available in the system.
To list campaigns:
Add your token to the following code:
from calypsoai import CalypsoAI
import json
# Define the URL and token for CalypsoAI
CALYPSOAI_URL = "https://www.us1.calypsoai.app"
CALYPSOAI_TOKEN = "ADD-YOUR-TOKEN-HERE"
# Initialize the CalypsoAI client
cai = CalypsoAI(url=CALYPSOAI_URL, token=CALYPSOAI_TOKEN)
# Get a list of all campaigns
campaigns = [campaign.model_dump_json() for campaign in cai.campaigns.iterate()]
# Print the response
print(campaigns)Run the script.
Review the response.
The following response sample is a simplified successful response that highlights key details for this request.
[
{
"attacks": [
{
"converters": [
"base64"
],
"pack": "2025-05",
"severity": 1,
"technique": "static_content",
"vector": "fictional_context_change"
},
(...)
],
"description": "Test Run",
"id": "019744f1-5121-70d2-b315-fc31f3d62129",
"name": "Test run"
},
(...)
]The response includes the following key parameters:
attacks: A list of the attacks included in each campaign.attacks > converters: A list of converters used by each attack.attacks > severity: The severity of a successful attack.attacks > technique: The technique used by each attack. This value defines the attack type. In this case, static_content is a signature attack.attacks > vector: The vector used by the attack. This value defines the attack vector, for example, fictional context change.name: The name of the attack campaign.[
{
"attacks": [
{
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-05",
"severity": 1,
"technique": "static_content",
"vector": "fictional_context_change"
},
(...)
],
"description": "Test Run",
"id": "019744f1-5121-70d2-b315-fc31f3d62129",
"name": "Test run",
"orgId": null,
"vendored": false
},
(...)
]After you create a campaign, you can update it with the campaign ID.
You can update the following campaign properties:
namedescriptionattacksTo update a campaign:
Edit the following sample.
from calypsoai import CalypsoAI
from calypsoai.datatypes import StaticContentAttack, DynamicSingleTurnContentAttack,
DynamicMultiTurnContentAttack, OperationalAttack, Vector1, Vector, PromptConverter,
OperationalAttackVector
# Define the URL and token for CalypsoAI
CALYPSOAI_URL = "https://www.us1.calypsoai.app"
CALYPSOAI_TOKEN = "ADD-YOUR-TOKEN-HERE"
# Initialize the CalypsoAI client
cai = CalypsoAI(url=CALYPSOAI_URL, token=CALYPSOAI_TOKEN)
# Update the campaign
cai.campaigns.update(
campaign='ADD-YOUR-CAMPAIGN-ID-HERE',
name="ADD-YOUR-NEW-CAMPAIGN-NAME-HERE",
description="ADD-YOUR-NEW-CAMPAIGN-DESCRIPTION-HERE",
attacks=[
StaticContentAttack(vector=Vector1.DAN, converters=[PromptConverter.BASE64]),
DynamicSingleTurnContentAttack(vector=Vector1.FICTIONAL_CONTEXT_CHANGE,
converters=[PromptConverter.CAESAR]),
DynamicMultiTurnContentAttack(vector=Vector.CRESCENDO,
converters=[PromptConverter.LEETSPEAK]),
OperationalAttack(vector=OperationalAttackVector.TLS),
]
)Add your token value.
In cai.campaigns.update, provide:
campaign you want to update.name for the campaign.description.attacks.UPDATING A CAMPAIGN
The name, description, and attacks properties are optional. Include only the properties you want to update.
Run the script.
If you no longer need a campaign, you can delete it by providing the campaign ID.
To delete a campaign:
Add your token and campaign ID values to the following sample:
from calypsoai import CalypsoAI
# Define the URL and token for CalypsoAI
CALYPSOAI_URL = "https://www.us1.calypsoai.app"
CALYPSOAI_TOKEN = "ADD-YOUR-TOKEN-HERE"
# Initialize the CalypsoAI client
cai = CalypsoAI(url=CALYPSOAI_URL, token=CALYPSOAI_TOKEN)
# Delete the campaign
cai.campaigns.delete(campaign='ADD-YOUR-CAMPAIGN-ID-HERE')Run the script.
AI Security now supports report retries for most Red Team reports.
You may see a failed report if the number the report includes >= 20% errored attack prompts. Errors happen for one or more of the following reasons:
To retry a failed report:
You can set up retries at the API. The endpoint is campaign-runs.
If you want to retry a specific report, you'll first need the report ID. You can then start a retry with the following REST call:
POST /backend/v1/campaign-runs/{campaignRunId}/retryFor more information, see: