def METHOD_NAME(
    self,
    exploitation_config: ExploitationConfiguration,
    hosts_to_exploit: Queue,
    current_depth: int,
    servers: Sequence[str],
    results_callback: Callback,
    scan_completed: threading.Event,
    stop: Event,
):
    exploiter_configs = self._process_exploiter_config(exploitation_config)
    logger.debug(
        "Agent is configured to run the following exploiters in order: "
        f"{', '.join([e for e in exploiter_configs])}"
    )
    exploit_args = (
        exploiter_configs,
        hosts_to_exploit,
        current_depth,
        servers,
        results_callback,
        scan_completed,
        stop,
    )
    run_worker_threads(
        target=self._exploit_hosts_on_queue,
        name_prefix="ExploiterThread",
        args=exploit_args,
        num_workers=self._num_workers,
    )