Search K
Appearance
Appearance
INFERENCE RED-TEAM
This article is meant for Inference Red-Team users.
ROLES AND PERMISSIONS
To complete the task described in this section, make sure you have the required permissions.
In addition to creating your own custom campaigns, you can also run vendored campaigns provided by CalypsoAI.
A vendored campaign is our pre-configured campaign that you can use out of the box.
In this scenario, we will run the All Attacks campaign. The All Attacks campaign contains all signature and operational attacks, including all converters for each signature attack.
To run the All Attacks campaign:
Edit 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)
# Get the All Attacks campaign
allAttacksCampaign = next(campaign for campaign in cai.campaigns.iterate() if
campaign.name == "All Attacks")
# Run the All Attacks campaign
run = cai.campaigns.run(name="ADD-CAMPAIGN-RUN-NAME-HERE", campaign=allAttacksCampaign.id,
providers=['ADD-PROVIDER-ID-HERE'])
print(run.model_dump_json(indent=2))cai.campaigns.run > name, provide a name for this specific campaign run.cai.campaigns.run > providers, provide a list of IDs for providers you want to use for the campaign.VENDORED CAMPAIGNS
You can use the sample above to run any vendored campaign you want. To do so, in allAttacksCampaign > campaign.name, update All Attacks with the name of the vendored campaign you want to run.
For clarity, you should also update the name of the allAttacksCampaign variable itself.
Run the script.
Analyze the response.
The following response sample is a simplified version of a successful request, focusing only on the main details relevant to this specific request.
{
"CASIScore": null,
"attackRuns": [
{
"attack": {
"converters": [
"base64"
],
"technique": "static_content",
"vector": "dan"
},
"id": "01973bb0-6419-70c7-ae92-716789447a60",
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
},
(...)
],
"campaignId": "0196af6f-22b6-7005-aa22-c52426c6964c",
"id": "01973bb0-6413-7038-9d8c-87494e5197f1",
"name": "ADD-CAMPAIGN-RUN-NAME-HERE",
"status": "in_progress"
}The response includes the following key parameters:
attackRuns > attack: Provides information about the attacks used in the campaign run.attackRuns > attack > converters: A list of the converters used by each individual attack.attackRuns > attack > technique: The technique used by each individual attack.static_content defines a signature attack.attackRuns > attack > vector: The vector used by the attack.status: The current status of the campaign run.{
"CASIScore": null,
"attackRuns": [
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "dan"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.177910Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-6419-70c7-ae92-716789447a60",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 665
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "fictional_context_change"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178172Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7026-896e-b8a7ce74d016",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 2569
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "conditional_context_change"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178212Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7032-a72b-4a02573c53b7",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 1512
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "crescendo"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178238Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7039-8d96-74accdb06c43",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 1057
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "persuasive_adversarial"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178263Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-703f-9104-40b9351d9586",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 329
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "payload_splitting"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178288Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7045-9928-ad33afbd2822",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 1862
},
{
"attack": {
"converters": [
"base64",
"leetspeak",
"unicode_confusable",
"caesar",
"repeat_token",
"single_character"
],
"pack": "2025-04",
"severity": 1,
"technique": "static_content",
"vector": "refusal_suppression"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178311Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-704b-8590-6c9c706da0d5",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 2758
},
{
"attack": {
"severity": 1,
"technique": "operational",
"vector": "tls"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178337Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7052-b39f-d5f2b045cf2f",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 1
},
{
"attack": {
"severity": 1,
"technique": "operational",
"vector": "fuzzing"
},
"events": [
{
"createdAt": "2025-06-04T16:05:05.178368Z",
"event": "queued",
"total": null
}
],
"id": "01973bb0-641a-7058-9f40-dc47d693d124",
"progress": 0,
"providerId": "0196f798-b718-709d-8121-31d1131e339b",
"results": [],
"total": 192
}
],
"campaignId": "0196af6f-22b6-7005-aa22-c52426c6964c",
"createdAt": "2025-06-04T16:05:05.171246Z",
"createdBy": "machine=01970c96-398c-7088-be33-bc34771d2915",
"id": "01973bb0-6413-7038-9d8c-87494e5197f1",
"name": "ADD-CAMPAIGN-RUN-NAME-HERE",
"progress": 0,
"scheduleId": null,
"startAt": "2025-06-04T16:05:05.171246Z",
"status": "in_progress",
"total": 10945
}CAMPAIGN STATE
Our sample JSON response shows a running campaign. To see the results of the campaign run, you need to get a report.