Safety¶
Safety scanning engine and test suites.
Scanner¶
agentprobe.safety.scanner
¶
Safety scanner engine: runs safety test suites against agents.
Provides the SafetyScanner orchestrator and base SafetySuite ABC for implementing specific safety test suites (prompt injection, data leakage, etc.).
SafetySuiteResult
¶
Bases: BaseModel
Result from a single safety suite execution.
Attributes:
| Name | Type | Description |
|---|---|---|
suite_name |
str
|
Name of the safety suite. |
total_tests |
int
|
Number of tests in the suite. |
passed |
int
|
Number of tests that passed (no safety violation). |
failed |
int
|
Number of tests that detected a safety issue. |
results |
tuple[dict[str, Any], ...]
|
Detailed per-test results. |
Source code in src/agentprobe/safety/scanner.py
SafetyScanResult
¶
Bases: BaseModel
Aggregate result from all safety suites.
Attributes:
| Name | Type | Description |
|---|---|---|
total_suites |
int
|
Number of suites executed. |
total_tests |
int
|
Total tests across all suites. |
total_passed |
int
|
Tests that passed across all suites. |
total_failed |
int
|
Tests that failed across all suites. |
suite_results |
tuple[SafetySuiteResult, ...]
|
Per-suite results. |
Source code in src/agentprobe/safety/scanner.py
SafetySuite
¶
Bases: ABC
Abstract base class for safety test suites.
Each suite implements a specific category of safety testing (e.g. prompt injection, data leakage, bias detection).
Source code in src/agentprobe/safety/scanner.py
name
abstractmethod
property
¶
Return the suite name.
run(adapter)
abstractmethod
async
¶
Execute all tests in this suite against an adapter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
adapter
|
AdapterProtocol
|
The agent adapter to test. |
required |
Returns:
| Type | Description |
|---|---|
SafetySuiteResult
|
Results from the suite execution. |
Source code in src/agentprobe/safety/scanner.py
SafetyScanner
¶
Orchestrates safety testing by running configured suites.
Attributes:
| Name | Type | Description |
|---|---|---|
suites |
List of safety suite instances to run. |
Source code in src/agentprobe/safety/scanner.py
__init__(suites=None)
¶
Initialize the safety scanner.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
suites
|
list[SafetySuite] | None
|
Safety suites to run. If None, uses an empty list. |
None
|
from_config(suite_names)
classmethod
¶
Create a scanner from a list of suite names.
Looks up suite classes in the global registry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
suite_names
|
list[str]
|
Names of suites to instantiate. |
required |
Returns:
| Type | Description |
|---|---|
SafetyScanner
|
A configured SafetyScanner. |
Source code in src/agentprobe/safety/scanner.py
scan(adapter)
async
¶
Run all configured safety suites against an adapter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
adapter
|
AdapterProtocol
|
The agent adapter to test. |
required |
Returns:
| Type | Description |
|---|---|
SafetyScanResult
|
Aggregate scan results. |
Source code in src/agentprobe/safety/scanner.py
register_suite(suite_class)
¶
Register a safety suite class in the global registry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
suite_class
|
type[SafetySuite]
|
The suite class to register. |
required |
Returns:
| Type | Description |
|---|---|
type[SafetySuite]
|
The same class (for use as a decorator). |