Protocol reference. The current sandbox uses fictional fixtures and deterministic decisions,
not production prompt evaluation. The retention and production processing contract below does
not establish that those production services are available. Use only synthetic test data.
Start with the runnable quickstart and sandbox support matrix.
prompt_handling lets you choose how much text Reflections receives, and how long it keeps it.
The three modes
Reflections never claims to have read text it did not receive. Receipts state their
assurance,
and in withheld mode the check’s text-based rules are checked on the output instead.
Full
Send the text as is. Resolution finds talent by name, alias or indirect reference, and the license’s rules are checked against what the request asks for before you spend anything on generation. Usefull unless you have a reason not to.
Redacted
Remove personal data about end users and third parties before you send the text. Keep everything the check needs: the talent’s name, the scene, the product, the words to be spoken.
For example, “A birthday message from Maya Okafor to my son Tom Ellis at 14 Birch Lane” becomes
“A birthday message from Maya Okafor to my son [person] at [address]”.
request_digest covers the text exactly as you sent it, so in this mode it covers the redacted
form. See Bind the request.
Cost: a rule that depends on what you removed cannot be checked at the check. The generation
check still sees the output itself, and the transcript of a speech output, so rules about what was
made are still checked there.
Withheld
Send no text at all. Send each text input with itsrole and the sha256 of its UTF-8 bytes, with
media_type: "text/plain", in place of text, and name each talent the request invokes in
talent. The planned protocol also accepts media files and URLs with digests. For the prompt
“Maya Okafor holding our new trail shoe on a rocky ridge at sunrise”, its check body is:
The file reference below is planned and unsupported in test mode. The sandbox accepts media
sha256 and media_type as digest metadata only; it never fetches URLs, resolves talent from
media or evaluates its content. Use the quickstart for a supported check.request_digest as { "role", "sha256", "media_type" }, like a media input.
Cost:
- Reflections cannot find talent by name in text it never receives. Send
talentexplicitly, and match prompts on your side with the name index so you know when to. - Rules that need the text, such as “Do not imply she endorses any product other than the one shown”, are checked on the output instead. You pay for a generation that may then be denied.
- Indirect references in text are never resolved, because the check never reads the text. Outputs
are not screened for them either: send
talentfor every person the request means.
withheld is a choice for the platform to make. The decisions stay exact about what was checked:
the receipt never claims Reflections read the prompt.
Retention
Reflections deletes prompt text as soon as it can:
With
retention: "none", a reviewer of an escalated check cannot read the prompt later, and a
dispute about a deny has only the digest to go on. The privacy page has the
full retention table, including outputs and receipts.
End users and metadata
end_user.idis a stable ID scoped to your platform, such asusr_48213. Never send an email address, a phone number or a name. Reflections stores only an HMAC of it.end_user.typeisconsumer(the default) orbusiness.metadatais for your own references. Never put personal data in it.
Related
Privacy
What is sent, what is kept, and for how long.
Bind the request
How the digest binds what the model receives.
Resolve talent
Explicit IDs and the local name index.
Privacy in the Standard
Data minimization requirements on both sides.