OpenAI published a post this week describing a genuinely interesting engineering constraint: enterprise customers under Zero Data Retention don’t want OpenAI to keep prompts or responses after processing, but abuse detection that only ever sees one request at a time misses an entire class of attacks that only become visible across many linked requests. Their example is Best-of-N jailbreaking — an attacker sends hundreds of slightly varied versions of the same malicious prompt, none individually flaggable, until one variant slips past the filter. Under strict ZDR, by the time you’d want to correlate request #200 with request #1, request #1 is already gone. The proposed fix is something they’re calling Private Safety Processing, rolling out to early customers now with broader availability in September. It’s worth understanding the actual shape of the design, not just the press-release version, because the underlying problem — “detect a pattern across many events without retaining any individual event” — shows up constantly once you’re running your own agent infrastructure at any scale.

The actual constraint, stated precisely

Two requirements that are normally in direct tension:

  1. Don’t retain the content of any individual prompt or response beyond the time needed to serve it.
  2. Detect abuse patterns that are only visible when you look across dozens or hundreds of related requests over time.

The naive resolution is “just keep the data a bit longer” — which is exactly what ZDR customers are paying to avoid, often for regulatory or IP-sensitivity reasons (agentic workflows touching proprietary codebases, incident response, vulnerability research were the explicitly named use cases). OpenAI’s answer is to separate content from signal: Private Safety Processing tracks patterns across related interactions but only surfaces a narrow classification — the category of concern, not the underlying text — back to any system OpenAI operates. The content itself is processed and discarded per-request as before; what persists, if anything, is a much smaller derived signal.

Where I’ve seen this pattern before

This isn’t a novel idea in isolation — it’s the same shape as several problems privacy engineering has been chipping away at for a while, and naming the precedents makes it easier to evaluate whether OpenAI’s version is credible:

  • Differential privacy solves a related problem: extract an aggregate statistic from a dataset without any individual record being identifiable in the output. The mechanism is different (noise injection vs. narrow-signal extraction) but the goal — useful signal, non-reconstructable input — is the same family.
  • SIEM behavioral correlation without full payload logging is the closest operational analog most tech leads will already run. Security teams routinely detect credential-stuffing or scraping patterns from request cadence, size, and endpoint-hit sequences without storing full request bodies — you don’t need the payload to notice “this session hit 400 slightly different endpoints in 90 seconds.”
  • Confidential computing / TEE attestation solves the adjacent problem of “process data without the operator being able to read it,” which is closer to OpenAI’s second announced tier — content stored encrypted with keys held exclusively by the customer, meaning even OpenAI’s own infrastructure can’t decrypt it without customer cooperation.

The credibility question is entirely about what’s actually inside that “narrow safety signal.” A category label like possible_jailbreak_attempt: 0.87 leaks far less than a request transcript, but it’s not zero information, and the interesting unanswered question — not addressed in OpenAI’s post — is what granularity that signal actually carries and whether it’s re-identifiable when combined with metadata like request timing and account ID.

How I’d evaluate this for my own stack

If you’re deciding whether to flip ZDR on for a team’s API usage, or you’re building anything analogous for your own agent fleet’s tool-call auditing, the questions worth asking aren’t “is this vendor’s marketing believable” — they’re specific and checkable:

  1. What’s the actual payload of the retained signal? A boolean flag is very different from a confidence score across 40 categories, which is very different from an embedding vector — embeddings in particular can sometimes be partially inverted back toward the original content, so “we only keep the embedding” is not automatically equivalent to “we only keep a label.”
  2. What’s the retention window on the signal itself, even if content is discarded immediately? “We don’t keep your prompts” and “we don’t keep any derived data about your prompts” are different claims, and vendors sometimes let the first one imply the second.
  3. What do you lose operationally? ZDR customers typically give up fine-tuning on their own traffic and some tiers of debugging support, because debugging often means an engineer needs to actually see what was sent. If your team relies on vendor support to diagnose weird agent behavior, ZDR has a real cost — know it going in.
  4. Does the correlation window cross tenant boundaries? Detecting a pattern “across related interactions” is powerful specifically because it’s not per-request — but “related” needs a precise definition. Related within one customer’s traffic is a different privacy posture than related across customers, and that boundary is the whole ballgame for whether this design is actually privacy-preserving or just privacy-labeled.

The takeaway

The interesting part of this announcement isn’t the product, it’s the constraint it’s admitting to: safety and privacy aren’t actually opposed goals, they’re both downstream of the same architectural decision about what you extract from an interaction versus what you discard. Any team running autonomous agents against sensitive systems — which by this point in 2026 is most teams running autonomous agents at all — is going to hit some version of this exact tradeoff: you want to detect “this agent is doing something 500 individually-plausible but collectively-alarming actions in a row” without building a surveillance log of everything every agent ever did. Separating signal from content, deliberately and narrowly, is the right shape for that problem. Whether any specific vendor’s implementation actually holds that line is a question worth re-asking every time the granularity of “narrow signal” quietly expands.

Export for reading

Comments