Protocol reference. The current sandbox matches fictional talent by explicit ID or text.
Standalone resolution, a downloadable name index and image or voice recognition remain
planned.
Start with the runnable quickstart and sandbox support matrix.
How a request invokes a talent
Names, aliases, transliterations and credits come from Atlas. Reference media is
matched against the face and voice of every talent with
protection.references on. A description
alone is not resolved, and outputs are checked only for the talent the check covered; see
Generation checks.
Matching is inclusive
A check treats every candidate atmedium confidence or higher as invoked, and its decision is the
most restrictive across them. This produces false positives for common names: a prompt about a
different person who shares a name with a protected talent is checked against that talent too.
To remove the friction, narrow the check:
- Pass
talentwith explicit IDs when your product already knows who the user means. A name in the inputs that a talent intalentcarries counts as that talent, not as a match for someone else who shares it. - Pass
exclude_talentwith the IDs of talent your user confirmed they did not mean.
No match is not permission
When no protected talent is found, a check returnsallow with talent: []. That means only that
the request names no one Reflections protects. It is not a license for any person the output
shows. A resolution with status: "none" means the same thing.
Use kind
Resolution also classifies how the inputs use a talent, asuse_kind:
This keeps an assistant from refusing ordinary questions about public figures. It is a
classification for routing, not a legal finding. The
use.kind you send on a check must describe
what your model will produce.
Resolving before the check
Checks resolve automatically, so most platforms never call resolution directly. CallPOST /v1/resolutions when your own interface needs the
candidates, for example to ask “did you mean Maya Okafor?” before you check.
A resolution’s status is matched, ambiguous (more than one candidate, or one weak candidate)
or none. Each candidate carries matched_by, confidence, the span of input text that matched,
whether the licensee holds an active license for that talent (licensed), and the talent’s
declaration for the use.
The name index
If you do not want to send every prompt, download the signed name index and match names on your side. It holds every protected talent’s names, aliases and transliterations, normalized withnfkc_casefold.
Normalize prompt text the same way before you match. An entry with common: true is a name common
enough that a match alone is weak evidence.
Verify the index’s signature against the JWKS before you use it, refresh it at least hourly with
If-None-Match, and stop matching against it after expires_at. A local match tells you to send a
check. No local match does not clear a prompt: indirect references and reference media need the
server. See Privacy for the prompt modes that pair with local matching.
Example: a podcast intro
talent: ["tal_9t0wxyhk5zba2q8v1m3n7p4r6s"] and the voice facet in facet, so the check skips
resolution and decides against her voice license.
Related
Atlas
The names and credits resolution matches against.
Resolving talent
Explicit IDs, autocomplete, disambiguation and the name index.
Several talent
The most restrictive rule across talent.
Resolve talent
The endpoint reference.