diff --git a/agentic_security/config.py b/agentic_security/config.py index 29a6d23..967b7d0 100644 --- a/agentic_security/config.py +++ b/agentic_security/config.py @@ -143,6 +143,13 @@ use_disk_cache = false retry = 3 timeout_connect = 30 timeout_response = 90 + +[fuzzer] +max_prompt_lenght = 2048 +budget_multiplier = 100000000 +initial_optimizer_points = 25 +min_failure_samples = 5 +failure_rate_threshold = 0.5 """.replace( "$HOST", host ) diff --git a/agentic_security/probe_actor/fuzzer.py b/agentic_security/probe_actor/fuzzer.py index 04f330a..fa6589c 100644 --- a/agentic_security/probe_actor/fuzzer.py +++ b/agentic_security/probe_actor/fuzzer.py @@ -9,6 +9,7 @@ import httpx from skopt import Optimizer from skopt.space import Real +from agentic_security.config import settings_var from agentic_security.http_spec import Modality from agentic_security.logutils import logger from agentic_security.primitives import Scan, ScanResult @@ -18,12 +19,11 @@ from agentic_security.probe_actor.state import FuzzerState from agentic_security.probe_data import audio_generator, image_generator, msj_data from agentic_security.probe_data.data import prepare_prompts -# Constants -MAX_PROMPT_LENGTH = 2048 -BUDGET_MULTIPLIER = 100_000_000 -INITIAL_OPTIMIZER_POINTS = 25 -MIN_FAILURE_SAMPLES = 5 -FAILURE_RATE_THRESHOLD = 0.5 +MAX_PROMPT_LENGTH = settings_var("fuzzer.max_prompt_lenght") +BUDGET_MULTIPLIER = settings_var("fuzzer.budget_multiplier") +INITIAL_OPTIMIZER_POINTS = settings_var("fuzzer.initial_optimizer_points") +MIN_FAILURE_SAMPLES = settings_var("min_failure_samples") +FAILURE_RATE_THRESHOLD = settings_var("failure_rate_threshold") async def generate_prompts(