Skip to main content

Automated red-team discovery for AI models

Project description

probegpt

Automated red-team discovery for AI models.

probegpt iteratively generates, sends, and scores adversarial prompts ("probes") against a target language model. It uses a separate generator model to create probes and a judge model to evaluate whether each probe succeeded — no manual prompt writing required.

Features

  • 8 built-in attack strategies — objective, mutation, encoding, roleplay, persuasion, linguistic, structural, distraction
  • Multi-provider support — Azure OpenAI, OpenRouter, GCP Vertex AI, AWS Bedrock, Cerebras, Mistral
  • Textual TUI — interactive terminal UI for configuration and live run monitoring
  • Extensible — drop custom strategy files into ~/.config/probegpt/strategies/
  • JSON export — save all results for offline analysis

Installation

pip install probegpt

Or with uv:

uv tool install probegpt

Quick start

probegpt

The TUI will open. Navigate to Config first to set up your target, generator, and judge providers, then return to the main menu and select Run Discovery.

Configuration

Config is stored at ~/.config/probegpt/config.json (XDG-compliant). The TUI writes this file automatically when you save from the Config screen.

Provider credentials

Provider How to authenticate
Azure OpenAI az login
OpenRouter Set OPENROUTER_API_KEY env var
GCP Vertex AI gcloud auth application-default login
AWS Bedrock aws configure
Cerebras Set CEREBRAS_API_KEY env var
Mistral Set MISTRAL_API_KEY env var

A .env file in the working directory is loaded automatically.

Strategies

Strategy Description
objective Generate probes directly targeting the objective
mutation Mutate high-scoring seeds from the pool
encoding Obfuscate via base64, ROT13, leetspeak, fragmentation
roleplay Wrap in persona, simulation, or game-context frames
persuasion Use emotional appeals, urgency, flattery, logical fallacies
linguistic Typos, phonetic spelling, double negatives, logic tricks
structural Payload splitting, CoT hijack, prefix/suffix injection
distraction Benign prefix, topic pivot, attention splitting

Each strategy can be enabled/disabled and weighted independently from the Strategies tab in the Config screen.

Custom strategies

Place a Python file in ~/.config/probegpt/strategies/. It must define a class that subclasses probegpt.strategies.base.BaseStrategy:

# ~/.config/probegpt/strategies/my_strategy.py
from probegpt.strategies.base import BaseStrategy

class MyStrategy(BaseStrategy):
    name = "my_strategy"

    async def generate(self, objective: str, count: int, seed_pool: list) -> list[str]:
        # Return a list of probe strings
        ...

The file is loaded automatically on startup.

Architecture

probegpt/
├── cli/          # Textual TUI (app.py) and entry point (main.py)
├── core/         # Config, models (Probe, DiscoveryResult), discovery loop
├── strategies/   # 8 built-in strategies + custom loader
├── judge/        # ObjectiveJudge — evaluates target responses
├── grading/      # Grader — scores probes, manages seed pool
├── providers/    # Factory for all supported LLM providers
├── output/       # AbstractOutput, JsonOutput
└── data/         # YAML prompt templates and seed probes

Development

git clone https://github.com/your-org/probegpt
cd probegpt
uv sync
uv run probegpt

Run linting:

uv run ruff check .
uv run ruff format .

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

probegpt-0.4.0.tar.gz (46.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

probegpt-0.4.0-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file probegpt-0.4.0.tar.gz.

File metadata

  • Download URL: probegpt-0.4.0.tar.gz
  • Upload date:
  • Size: 46.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for probegpt-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3bedc5e949f36cc17214db2170ba122ce145442c18177a856b560524845d5821
MD5 6d396cbc658c6edff7a1261fa11ec9b1
BLAKE2b-256 a18bb18b0728068101e28d915a5a7f63214e7e6dd73e0ce0ff1563b213aa3b3c

See more details on using hashes here.

File details

Details for the file probegpt-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: probegpt-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for probegpt-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2169d7797566ce99470fdba945be546d3ec070a591c15221e400844fc3197a30
MD5 88c4476e6a505b4bab024cb10604e7ec
BLAKE2b-256 aca3f26ecd9b71c55dbb1df3a7b7737919698d94faace09be26c094be2220877

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page