~/.ai-blackteam/results.db. This page documents the full schema and useful queries.
Tables
runs
Every attack execution creates one row inruns.
| Column | Type | Description |
|---|---|---|
id | INTEGER | Auto-incrementing primary key |
timestamp | TEXT | ISO 8601 timestamp |
provider | TEXT | Provider name (e.g., “anthropic”) |
model | TEXT | Model name (e.g., “claude-sonnet-4-6”) |
attack | TEXT | Attack technique ID |
target | TEXT | Target behavior string |
mode | TEXT | single-turn, multi-turn, or tool-use |
verdict | TEXT | BYPASSED, PARTIAL, BLOCKED, UNCLEAR, or ERROR |
keyword_score | REAL | 0.0-1.0 keyword match ratio |
regex_matches | INTEGER | Count of regex pattern matches |
llm_judge_score | INTEGER | 1-5 LLM judge score (null if not used) |
confidence | REAL | 0.0-1.0 overall confidence |
duration_ms | INTEGER | Execution time in milliseconds |
tokens_in | INTEGER | Input tokens (null if unavailable) |
tokens_out | INTEGER | Output tokens (null if unavailable) |
verify_status | TEXT | Verification status (if exploit verification was run) |
verify_confidence | REAL | Confidence score for verification |
verify_ground_truth | INTEGER | Ground truth label for verification |
snapshot_id | INTEGER | Reference to snapshot if part of a snapshot run |
turns
Every message in a conversation. Single-turn attacks have 2 rows (user prompt + assistant response). Multi-turn attacks have 2 rows per round.| Column | Type | Description |
|---|---|---|
id | INTEGER | Auto-incrementing primary key |
run_id | INTEGER | Foreign key to runs.id |
turn_number | INTEGER | Sequential turn number (1, 2, 3…) |
role | TEXT | user or assistant |
content | TEXT | Full message text |
timestamp | TEXT | ISO 8601 timestamp |
tool_calls
Every tool call from tool-use attacks. One row per tool invocation.| Column | Type | Description |
|---|---|---|
id | INTEGER | Auto-incrementing primary key |
run_id | INTEGER | Foreign key to runs.id |
turn_number | INTEGER | Which turn triggered this call |
tool_name | TEXT | Tool function name (e.g., “read_file”) |
tool_input | TEXT | JSON string of tool arguments |
is_dangerous | INTEGER | 1 if flagged as sensitive, 0 otherwise |
Querying Results
Open the database with any SQLite client:Recent Runs
Bypass Rate by Model
Most Effective Attacks
Bypass Rate by Attack Category
Full Conversation for a Run
Dangerous Tool Calls
Token Usage Summary
Average Duration by Mode
Python Access
You can also query via theStorage class:
WAL Mode
The database uses Write-Ahead Logging (WAL mode), which means:- Multiple readers can query simultaneously
- Writes don’t block reads
- The
-waland-shmfiles next to the database are normal
-wal or -shm files while ai-blackteam is running.