Skip to content

Probe actor

The agentic_security.probe_actor package sends the attack prompts to the target and scores the responses.

Fuzzer

agentic_security.probe_actor.fuzzer is the scan engine.

Function Description
scan_router Selects the single-shot scan or the many-shot scan from the scan settings.
perform_single_shot_scan Sends one prompt in each request.
perform_many_shot_scan Sends many-shot jailbreak conversations.
process_prompt / process_prompt_batch Sends prompts and records the refusals.
get_modality_adapter Wraps the spec for image or audio targets.
generate_prompts Yields prompts from a list or from an async generator.

The scan functions are async generators. Each item is a JSON string with the progress, the failure rate, or a status message.

from agentic_security.http_spec import LLMSpec
from agentic_security.probe_actor.fuzzer import perform_single_shot_scan

spec = LLMSpec.from_string(open("target.http").read())
datasets = [{"dataset_name": "simonycl/aya-23-8B_advbench_jailbreak", "selected": True}]
async for event in perform_single_shot_scan(spec, max_budget=1000, datasets=datasets):
    print(event)

At the end of a scan, the fuzzer writes failures.csv and full_scan_log.csv to the current directory.

Refusal checks

refusal_heuristic(response) in agentic_security.probe_actor.refusal uses the detectors that are enabled in [detectors].

from agentic_security.probe_actor.refusal import refusal_heuristic

refusal_heuristic("I'm sorry, I can't help with that.")  # True

To add a detector, refer to Refusal classifier plugins.