Claude Code 学习站

Claude API 引用(Citations)功能参考

整理 Claude API 文档级引用功能:文档来源类型、引用对象字段、流式事件与限制,便于开发者查阅。

本页目录10
AI 摘要 · 已核查整理于 2026-06-09原文:Citations(Anthropic)Claude API引用功能文档参考
要点速览
  • 文档来源 source.type 分三种:text(纯文本)、base64(PDF)、content(自定义分块内容),对应不同的引用定位字段
  • 响应中的引用对象按来源类型分别为 char_location、page_location、content_block_location,各自字段不同
  • citations 必须对请求中所有文档统一启用或统一不启用,不能逐文档混用
  • cited_text 字段不计入输出 token,但会因系统提示追加和文档分块使输入 token 略有增加
  • 引用功能不能与结构化输出(output_config.format)同时使用;图片引用(含 PDF 中的图片)暂不支持

本文是对 Claude 官方参考页的中文整理,完整与最新内容以原文为准:https://platform.claude.com/docs/en/build-with-claude/citations

概览

Citations(引用)功能让 Claude 在回答关于文档的问题时,返回支撑每条论断的确切原文段落,便于追踪与核实回答来源。

项目内容
ZDR(零数据保留)符合条件(不含「受管控模型」,详见官方 ZDR 文档)
支持平台Claude API、Claude Platform on AWS、Amazon Bedrock、Google Cloud、Microsoft Foundry
支持模型所有 active models(当前在售模型)均支持引用功能

基本用法示例

在 Messages API 请求中,给 document 内容块加上 citations: {enabled: true} 即可开启引用:

{
  "model": "claude-opus-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "document",
          "source": {
            "type": "text",
            "media_type": "text/plain",
            "data": "The grass is green. The sky is blue."
          },
          "title": "My Document",
          "context": "This is a trustworthy document.",
          "citations": {"enabled": true}
        },
        {"type": "text", "text": "What color is the grass and sky?"}
      ]
    }
  ]
}

文档块(document block)顶层字段

字段是否必需说明
type必需固定为 document
source必需文档来源对象,结构因 source.type 而异,见下表
title可选传给模型但不计入被引用内容;长度有限制(原文未给出具体数值)
context可选传给模型但不计入被引用内容;适合存放文档元数据(文本或字符串化 JSON),当 title 长度不够用时可用它补充信息
citations启用引用时必需例如 {"enabled": true};同一请求内所有文档必须统一启用或统一不启用引用,不支持逐文档混用

文档来源类型(source.type)

source.typemedia_type / 关键字段data / content 格式说明
texttext/plaindata:原始文本字符串纯文本文档,按句子分块
base64application/pdfdata:PDF 的 base64 编码字符串PDF 文档,按句子分块并附带页码;仅支持可提取文字的 PDF,扫描版(无可提取文本层)PDF 无法被引用
contentmedia_typecontent:内容块数组,如 [{"type": "text", "text": "First chunk"}, {"type": "text", "text": "Second chunk"}]自定义分块内容,不做额外切分,按你提供的块直接作为引用单元

另有 search_result(搜索结果)类型的文档来源在导航与「下一步」中被提及,但本页正文未给出其 JSON 示例,具体结构请参考官方「Search results」相关页面。

响应中的引用对象类型

响应里,带引用的文本块结构为:

{
  "type": "text",
  "text": "string",
  "citations": [
    {"type": "char_location|page_location|content_block_location", "...": "..."}
  ]
}

每种来源类型对应的引用对象类型与字段如下:

引用类型对应来源字段
char_locationtext(纯文本)typecited_textdocument_indexdocument_titlestart_char_indexend_char_index
page_locationbase64(PDF)typecited_textdocument_indexdocument_titlestart_page_numberend_page_number
content_block_locationcontent(自定义内容)typecited_textdocument_indexdocument_titlestart_block_indexend_block_index
search_result_location搜索结果文档原文本页未详述其字段,仅在搜索结果功能相关内容中被提及

公共字段说明:

字段含义
cited_text被引用的原文片段;为方便阅读而提供,不计入输出 token
document_index该引用对应的文档在请求 content 数组中的索引
document_title对应文档的 title 字段值

流式事件(Streaming)

事件说明
citations_delta(出现在 content_block_delta 事件内)每个 delta 携带一条待追加到当前 text 内容块 citations 列表的引用记录,该记录放在 citation 字段里(原文流式示例:"delta": {"type": "citations_delta", "citation": {"type": "char_location", ...}}

限制与不支持的组合

限制说明
与结构化输出(structured outputs)不兼容当设置了 output_config.format 时不能同时启用引用,因为引用需要在文本输出中穿插引用块,与严格 JSON schema 输出冲突
图片引用暂不支持「Image citations are not yet possible」,包括无法引用 PDF 中的图片内容
扫描版 PDF 不可引用缺少可提取文字层的 PDF 无法生成引用
启用方式为「全有或全无」同一请求内的所有文档必须统一启用或统一不启用 citations

Token 与计费说明

项目说明
输入 token会因系统提示追加内容和文档分块处理而略有增加
输出 tokencited_text 字段不计入输出 token 成本(模型内部以标准化格式输出引用,再解析为 cited_text 与文档位置索引,前者只是便于阅读的附加字段)
后续轮次复用若后续消息中重新引用了先前的 cited_text,该部分不重复计入输入 token

与其他功能的交互

功能交互说明
Prompt caching(提示缓存)可与引用功能配合使用:响应中生成的引用块本身不能被直接缓存,但引用所依据的源文档可以被缓存
结构化输出不兼容,见上文限制表

反馈渠道

官方提供了一个引用功能反馈表单,供开发者提交使用中的建议与问题(具体链接见原文页面的 Tip 提示框)。