Technical Details

This page documents the SAGITTERA screening cascade architecture, its evaluation on independent test datasets for prompt injection, agentic tool calls, and sensitive data detection, and the measured performance and limits. It is the evidence behind the claims on the rest of the site.

Network-Level Interception

SAGITTERA operates as a transparent network-layer gateway, intercepting AI-bound outbound traffic before it leaves your network. Running in a WireGuard-based, network-namespace-isolated client, it captures HTTP/HTTPS requests at the network boundary prior to egress.

Flow: capture → screen → substitute → egress. Each request is screened by a cascade of specialist models executing locally on your hardware (no GPU required, no cloud dependency). Sensitive data is substituted in-flight before transmission; plaintext sensitive data never traverses the network.

Prompt-injection detection
Identifies adversarial prompts designed to bypass model safeguards
Agentic/tool-call attack detection
Flags malicious tool invocation attempts
Sensitive PII detection
Catches high-risk personal data (financial, health, credentials)
Non-sensitive PII detection
Identifies lower-risk personal identifiers

Admin control: the screening endpoint list is user-modifiable. Your DPO or admin can add or remove AI providers from the screening list via a signed, tamper-evident FilterPolicy overlay on top of the curated default.

This is not a mixture of experts, no learned router, no probabilistic gating. All specialists run on every input, combined by deterministic rules. Sensitive data is substituted before it leaves the network; plaintext never egresses. Everything runs on hardware you already own. EU-sovereign, self-hosted.

Shadow-AI detection

Network-layer identification of AI endpoints by domain. Flags unsanctioned AI use and reports usage patterns to administrators.

  • Network-level identification, a deterministic service-list lookup (no model required) against a curated list of AI endpoints, including subdomain and registrable-domain matching.
  • Flags unsanctioned AI use, catches shadow-AI before PII or secrets egress to an unapproved provider.
  • Reports usage, who, when, which endpoint, and what data was flagged, recorded in the audit log.

This is distinct from the model-based cascade, it is a deterministic network-layer control that runs on every connection, not just AI-bound payloads.

What we filter

By default, SAGITTERA screens outbound traffic to known AI providers, chat LLMs, code assistants, media generation, and agent frameworks. Non-AI traffic passes through untouched. Matching uses registrable domain, subdomain, and path patterns to identify AI-bound requests.

Chat LLMs
ChatGPT, Claude, Gemini, DeepSeek, Qwen, Grok, Mistral, Perplexity, and more.
Code assistants
GitHub Copilot, Cursor, Codeium, Windsurf, Tabnine, and more.
Media generation
Midjourney, Runway, ElevenLabs, Suno, Stability, and more.
Agent platforms & productivity AI
Zapier, Dify, NotebookLM, Grammarly, and more, Western and Chinese providers.

Each AI-bound request runs the full cascade: prompt-injection detection, jailbreak detection, agentic/tool-call screening, sensitive PII substitution (GDPR Art 9 + identifiers), then non-sensitive PII filtering. Matched data is substituted before egress.

Optional: filter all outbound traffic. Organizations requiring comprehensive data-loss prevention can enable screening for all outbound traffic, not just AI-bound requests. This applies the same latency overhead (~0.7 s on modern hardware, ~2.1 s on older laptops) to every request. Discuss with our team to assess whether the tradeoff fits your environment.

What we do not claim: SAGITTERA does not guarantee compliance. We provide evidence, redaction logs, model coverage, audit trails, that supports your compliance posture. We do not claim to make you GDPR-compliant; we help you demonstrate due diligence.

Tool-call detection

Agentic systems call tools, functions, APIs, authority grants, and a prompt-injection attack can make an agent take an action it was never asked to. SAGITTERA screens tool-call traffic for these attacks before they reach the tool.

  • Detects tool/authority/approval attacks, attempts to make an agent call a function, grant access, or bypass a confirmation gate (98.1% recall / 0.25% FP on the agentic test set).
  • Audits every tool-call attempt, timestamp, user, tool, parameters, and decision are recorded in the tamper-evident log.
  • Governed tool access, high-risk calls (database writes, external APIs, credential access) can be configured to require explicit human approval before egress. This governed-approval layer is available in the core system; deployment-dependent.

Full cascade results

We report our screening results in two separate subsets, because they measure different things. Attack screening detects hostile prompts (prompt injection, jailbreak, agentic tool-call attacks). PII screening detects personal data leaving the network. Each row runs the full production cascade for that subset, exactly as it operates in the product. Held-out test sets, never seen during training.

Attack screening

Capability Dataset Recall False-positive
Prompt injection jayavibhav/prompt-injection + deepset/prompt-injections 99.6% (n=500) 0.0%
Jailbreak classification jackhhao/jailbreak-classification 90.7% (n=139) 0.0%
Agentic / tool-call 3nesdeniz/agentic-prompt-injection-5k 98.1% (n=545) 0.25%
Benign (FP control) Combined benign set (incl. NotInject trigger-word text) , 0.07%

PII screening

Capability Dataset Recall False-positive
Sensitive PII + GDPR Art 9 ai4privacy/pii-masking-200k (sensitive subsetThe 488 rows of ai4privacy that contain sensitive personal data, emails, phone numbers, national IDs, SSNs, passports, API keys, credentials, and financial identifiers, plus GDPR Art 9 categories (health, biometrics, genetics, race, religion, politics, union, sexual orientation). We deliberately exclude "soft" entities (names, dates, places, job titles) that appear in ordinary prose.) 92.2% (n=488) 0.0%
All PII (combined) ai4privacy/pii-masking-200k (full set) 96.1% (n=2000) 1.5%

Citations: The prompt-injection benchmark follows the independent evaluation protocol of N. Dzhaliuk et al., Comparative evaluation of machine learning methods for protecting LLMs from prompt injection attacks, Int. J. Inf. Secur. 25(4) (Springer, 2026), DOI 10.1007/s10207-026-01264-8, evaluated on the jayavibhav/prompt-injection test split. The jailbreak set is jackhhao/jailbreak-classification (Hugging Face), evaluated on its held-out test split. The agentic/tool-call set is cited in the dataset card: E. Deniz, Agentic Prompt-Injection 5K (Hugging Face, 2026), link. The PII set is ai4privacy/pii-masking-200k (Hugging Face, 2023), used under CC-BY-NC-4.0. The benign FP-control set combines leolee99/NotInject with other held-out benign text.

How the PII models work: SAGITTERA runs two PII specialists in parallel. The sensitive-PII model flags GDPR Art 9 special categories (health, biometrics, genetics, race, religion, politics, union, sexual orientation) plus sensitive identifiers (emails, phones, national IDs, SSNs, keys, financial), this is the "needs action" set. The non-sensitive (soft) model flags names, dates, places, and job titles. A query is flagged as containing PII if either model fires. The 0% FP on the sensitive model is on its clean set; the figures are not a universal guarantee of zero false-positives on all traffic.

Our model design

Rather than one general-purpose model trying to detect every threat, SAGITTERA runs a set of small expert models that are trained to work together in parallel and complement each other. All five are custom-trained int8 models (~106MB each) that run on a local CPU.

Attack analysis, one general attack model
The general attack model is a set of three expert specialists OR'd together: prompt-injection detection, jailbreak detection, and agentic / tool-call attack detection. There is no gating decision on top, any of the three flags the request. Each expert is trained to fire only on its own attack type, so together they cover the full attack surface, and because the experts are independent there is no single routing step that can misclassify an attack and let it through.
PII protection, one general PII model
The general PII model is a set of two expert specialists OR'd together that differentiate Art 9 from soft PII: a high-risk model flags GDPR Art 9 special categories (health, biometrics, genetics, race, religion, politics, union, sexual orientation) plus sensitive identifiers (emails, phones, national IDs, keys, financial) that need action, and a soft-PII model flags names, dates, places. Any of the two flags the request, with no gating decision on top.

The general attack model and the general PII model run in parallel on every AI-bound request and flag independently, with no gating decision on top. Because each specialist is trained for one narrow job and FP-penalized, the combined cascade keeps false-positives near zero while covering both the attack surface and data leakage. Because the specialists flag independently and identify which expert fired, the cascade can name the type of attack or breach (a prompt injection, a jailbreak, a tool-call attack, high-risk Art 9 data, or soft PII) and act appropriately, for example block the highest-risk cases and flag the rest for review.

How our models compare

We benchmark our general attack model on the industry-standard public datasets that published leaders also report on, so the comparison is apples-to-apples. Our attack model is a set of three expert specialists OR'd together with no gating decision on top; the numbers below are the whole attack model (all three experts working together), measured on the same held-out test set each published competitor was scored on. Every SAGITTERA row is a held-out set the model never saw in training. All competitor figures are the cited papers' reported results, not ours.

Industry benchmark Detector F1 Recall False positive Footprint
Jailbreak classification
jackhhao/jailbreak-classification
SAGITTERA general attack model 95.1 90.7% 0.0% 5×106MB int8 cascade, local CPU, EU-sovereign
Qualifire Sentinel 98.5 , , 395M, GPU/cloud
ProtectAI deberta-v3-v2 91.5 , , 185M, GPU/cloud
Prompt injection
jayavibhav/prompt-injection (Springer protocol)
SAGITTERA general attack model 99.8 99.6% 0.0% 5×106MB int8 cascade, local CPU, EU-sovereign
Paper's fine-tuned deberta-v3-base 99.6 99.3% , 184M, GPU, cloud
Meta Prompt Guard 86M , 42.1% , Small, cloud
gpt-5-nano (LLM classifier) , 71.5% , Cloud
Agentic / tool-call
3nesdeniz/agentic-prompt-injection-5k
SAGITTERA general attack model 98.9 98.1% 0.25% 5×106MB int8 cascade, local CPU, EU-sovereign
Published agentic models , , , Not directly comparable

The point is not that a single specialist beats every model on every axis, it is that the combination of small experts matches or beats the published leaders on each benchmark. SAGITTERA's solution is the cascade: five 106MB int8 models (~526 MB) that run on a local CPU, EU-sovereign, no cloud, no GPU. Where our recall is lower (jailbreak), our false-positive is 0.0%, which is the metric that matters to real users, a model that blocks 10% of legitimate prompts is unusable. Sources: jailbreak F1 from Ivry & Nahum, Sentinel (2025), arXiv 2506.05446, Table 2; prompt-injection from Dzhaliuk et al., Int. J. Inf. Secur. (Springer, 2026), DOI 10.1007/s10207-026-01264-8. We did not select these results; they are the papers' reported numbers, shown because each is the same held-out benchmark we scored our attack model on. A blank cell means the paper did not report that metric.

Honest reading of our own numbers

What these numbers do and don't mean: every figure on this page reflects performance on test sets the models never saw during training. They do not guarantee real-world performance, prompt-injection attacks evolve, and any static benchmark becomes stale. We publish them to show our evaluation methodology is rigorous, not to claim we have "solved" the problem. If a number looks too good, that is a reason to be suspicious, not impressed.

PII (sensitive 92.2% / 0% FP, combined 96.1% / 1.5% FP): we run two specialists because PII is vast, some is sensitive (needs action), some is not. The sensitive model flags GDPR Art 9 categories + sensitive identifiers at 92.2% recall with 0% FP on its clean set. A second, non-sensitive model flags names/dates/places (soft PII, inherently fuzzier, a name in isolation is ambiguous). A query is flagged if either fires, giving 96.1% full-PII recall. The combined 1.5% FP comes from the soft model's more aggressive detection.

Prompt injection (99.6% recall, 0% FP): we deliberately traded a few points of recall for zero false-positives. The earlier model caught 98.5% but flagged 12.4% of benign trigger-word text; the attack cascade catches 99.6% with 0% benign false-positives on the held-out test. Per our rule, a false-positive is directly felt by the user, recall just needs parity, 0% FP wins.

Agentic / tool-call (98.1% recall, 0.25% FP): the strongest separator, near-perfect on tool/authority/approval attacks with a minimal false-positive cost.

Jailbreak (90.7% recall, 0% FP): the attack cascade catches jailbreak attempts on the held-out jackhhao test at 0% false-positives. We prioritize zero false-positives over recall, consistent with our rule: never block the user's legitimate work.

Scope: English-primary injection set, single-turn scoring. Not a content-moderation or toxicity test.

Beware anyone claiming 100%: a perfect detection rate is a red flag, not a selling point. It usually means the model was fitted to the test set it's being scored on, overfitting, not that it's robust on unseen traffic. Our numbers are reproducible, and we publish the method so you can verify them. If a vendor quotes a flawless score, ask to see the evaluation protocol and the false-positive rate. High recall with a high false-block rate is easy; the hard part is catching attacks without blocking your team's legitimate work.

See how this works in practice →

Performance & overhead

The additional latency SAGITTERA adds to an AI request when installed on a single machine, measured on two common office machines: a 2024 AMD Ryzen 7 8845HS (DDR5) and a 12th-gen Intel Core i5-1240P (DDR4). This is the screening time on top of the normal round-trip to the AI provider, which is unchanged. By default only AI-bound traffic is screened; you can choose to screen all outbound traffic if you need broader data-loss prevention.

Metric Intel i5-1240P (DDR4) AMD Ryzen 7 8845HS (DDR5)
Memory footprint (int8 ONNX models) ~600 MB
Additional latency per screened request ~247 ms ~134 ms
Screening throughput ⓘScreening will not slow things down, our screener is roughly 2–7× faster than typical model generation. For example, ChatGPT (GPT-4o) generates ~100–200 tokens/sec, Claude ~60–100, DeepSeek ~50–100. AI requests are typically KB-scale and screen in milliseconds. ~484 tokens/sec ~937 tokens/sec
Disk footprint ~526 MB

The agent idles quietly, it only uses CPU while a request is being screened. The memory footprint is small enough to leave headroom on any office machine, and no GPU is required: everything runs on the CPU you already have.

Server performance

When SAGITTERA runs as a central gateway serving many clients, the metric that matters is throughput under concurrency, not per-request latency. The chart below measures aggregate screening throughput (tokens/sec) as the number of concurrent requests rises, for both a GPU path and a CPU-only path on the same server-class hardware. Each point is the production 5-specialist cascade on sustained parallel load.

SAGITTERA screening throughput under concurrency: GPU peaks at 25,700 tokens/sec at 112 concurrent requests; CPU peaks at 8,799 tokens/sec at 32.

Measured on a server with H100 NVL + AMD EPYC 9654, 96-core and DDR5:

Path Peak throughput Concurrency at peak Supported clients
GPU (H100 NVL, CUDA) ~25,700 tokens/sec ~112 concurrent requests ~1,000–2,000
CPU-only (EPYC 9654, 96-core) ~8,800 tokens/sec 32 concurrent requests ~350–690
Gateway pool behind a load balancer N nodes × per-node throughput N nodes × per-node capacity N nodes × per-node clients

Supported clients assumes each interactive AI user generates roughly 0.1–0.2 requests per second. Screening capacity scales linearly across nodes behind a load balancer; the tokenizer and host/device transfer are the binding constraint, so throughput falls sharply once per-request overhead (past ~120 concurrent requests) outweighs the gain.