The book closes on the question that underlies trust in any agent output: where did this claim come from, and is it still true? Provenance answers the first — a claim mapped to its source is auditable, one without a source is a trust-me. Temporal validity answers the second. This chapter is the exam-angle treatment; the named features — the Citations API surface, the location modes — are the moving parts, so it is a feature surface.
Provenance maps every claim to its source
The point of provenance is verifiability. “Claude is capable of providing detailed citations when answering questions about documents, helping you track and verify information sources in responses. All active models support citations, with the exception of Haiku 3.”
[Official]
Citations · AnthropicT1-official original You enable it per document with citations: {"enabled": true} on the document block, and each cited claim in the response carries a sibling citations array pointing back to the exact span of the source it came from.
[Official]
Citations · AnthropicT1-official original One enablement rule to memorize: citations must be enabled on all or none of the documents within a request — you cannot mix cited and uncited documents.
[Official]
Citations · AnthropicT1-official original
The Citations API and its location modes
How a citation points at its source depends on the document type, and there are three modes. Plain text is chunked to sentences and cited by char_location; a PDF is cited by page_location; custom content, where you supply the chunks, is cited by content_block_location.
[Official]
Citations · AnthropicT1-official original The feature is also output-cheap: “the cited_text field is provided for convenience and does not count towards output tokens.”
[Official]
Citations · AnthropicT1-official original
The provenance triple: schema-friendly fallback
When the output must be structured JSON, the native Citations API is off the table, so you encode provenance into the schema yourself. This is the D4.4 hook applied to attribution — a design pattern this book recommends, not a platform feature: each extracted claim carries a source object with a document_id, a span_quote, and a confidence, and the caller verifies that span_quote actually appears in document_id. If it does not, the model fabricated the citation. It is a manual, checkable provenance you can drop inside any schema.
Temporal provenance: knowing when data is valid
Provenance is not only where a claim came from but when it can be trusted. Each model has a reliable knowledge cutoff — Opus 4.8 at January 2026, Sonnet 4.6 at August 2025, Haiku 4.5 at February 2025 — and that reliable cutoff is earlier than (or equal to) the model’s training-data cutoff, not later: Sonnet 4.6 trained on data through January 2026 but is reliable only to August 2025, and Haiku 4.5 trained through July 2025 but is reliable to February 2025. [Official] Models overview · AnthropicT1-official original Data near the training cutoff is sparse, so the model’s reliable knowledge stops before its training does. Past the reliable cutoff the model has no dependable knowledge, so a time-sensitive fact must come from a dated source supplied at request time (retrieval with a citation), not from the model’s memory. The use-side workflow for recording claim sources and decision dates is the handbook’s territory (its provenance and ADR material is forthcoming).
Practice
Exercise solutions
B. Citations and Structured Outputs are mutually exclusive — the 400 is the API telling you so — so when the structured shape is required, you encode provenance into the schema with a triple (document_id, span_quote, confidence) and verify each span against its source caller-side. A abandons the structured output the pipeline requires, trading one requirement for the other. C is the fabrication trap: an unverified span_quote may quote text that is not in the document, which is exactly the failure provenance exists to catch. D doubles cost and leaves you reconciling two responses with no guarantee the cited run and the schema run extracted the same facts.
The three modes are plain text → char_location (sentence-chunked; start/end character indices), PDF → page_location (start/end page numbers; scanned images without extractable text are not citable), and custom content → content_block_location (you supply the chunks; start/end block indices). cited_text is attractive on output cost because the field “is provided for convenience and does not count towards output tokens” — you get the quoted source span echoed back for verification without paying output tokens for it.
A question about an event after the model’s reliable knowledge cutoff should be answered from a supplied dated source because past that cutoff the model has no dependable knowledge — it may produce a plausible but fabricated answer. Crucially, the reliable cutoff is earlier than the training-data cutoff, so even data the model technically trained on near the boundary is unreliable; the earlier date is the one that bounds trust. Supplying the fact as a dated source at request time (retrieval plus a citation) makes the answer both correct and auditable. That connects to provenance broadly: provenance answers two questions — where a claim came from (a source span, via Citations or the triple) and when it is valid (a dated source past the cutoff). A time-sensitive claim needs both: an external dated source, bound to the answer by a verifiable citation.
Exam essentials
- Provenance is verifiability — the Citations API (enable per document with
citations: {"enabled": true}) ties each claim to a source span so a citation cannot be fabricated (span-bound, not grammar-constrained);cited_textdoes not count toward output tokens. Citations must be enabled on all or none of a request’s documents. - Three location modes — plain text →
char_location, PDF →page_location, custom content →content_block_location; image citations are not yet supported. - Mutual exclusion — Citations + Structured Outputs return 400; when you need both a schema and provenance, use the provenance triple (
document_id+span_quote+confidence) and verify the span caller-side. - Temporal provenance — each model has a reliable knowledge cutoff (Opus 4.8 Jan 2026, Sonnet 4.6 Aug 2025, Haiku 4.5 Feb 2025), which is earlier than (or equal to) the training-data cutoff — the model trains on later data but is only reliable to the earlier date (Sonnet 4.6 trained to Jan 2026, reliable to Aug 2025). Past the reliable cutoff, answer time-sensitive questions from a dated source, not the model’s memory.