内容类型

理解 Agent Client Protocol 中的内容块

内容块代表通过 Agent Client Protocol 流动的可显示信息。它们提供了一种结构化的方式来处理各种类型的面向用户的内容—无论是来自语言模型的文本、用于分析的图像,还是用于上下文的嵌入资源。内容块出现在:

内容类型

Agent Client Protocol 使用与 Model Context Protocol (MCP) 相同的 ContentBlock 结构。此设计选择使 Agent 能够无缝转发 MCP 工具输出的内容而无需转换。

文本内容

纯文本消息构成大多数交互的基础。

{
  "type": "text",
  "text": "What's the weather like today?"
}

所有 Agent 必须在提示中包含时支持文本内容块。

字段类型必需描述
textstring要显示的文本内容
annotationsAnnotations-关于内容应如何使用或显示的可选元数据。

图像内容

可以包含图像以提供视觉上下文或进行分析。

{
  "type": "image",
  "mimeType": "image/png",
  "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB..."
}

在提示中包含时需要 image 提示能力

字段类型必需描述
datastringBase64 编码的图像数据
mimeTypestring图像的 MIME 类型(如 “image/png”、“image/jpeg”)
uristring-图像来源的可选 URI 引用
annotationsAnnotations-关于内容应如何使用或显示的可选元数据。

音频内容

用于转录或分析的音频数据。

{
  "type": "audio",
  "mimeType": "audio/wav",
  "data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAAB..."
}

在提示中包含时需要 audio 提示能力

字段类型必需描述
datastringBase64 编码的音频数据
mimeTypestring音频的 MIME 类型(如 “audio/wav”、“audio/mp3”)
annotationsAnnotations-关于内容应如何使用或显示的可选元数据。

嵌入资源

直接嵌入消息中的完整资源内容。

{
  "type": "resource",
  "resource": {
    "uri": "file:///home/user/script.py",
    "mimeType": "text/x-python",
    "text": "def hello():\n print('Hello, world!')"
  }
}

这是在提示中包含上下文的首选方式,例如使用 @-mentions 引用文件或其他资源时。通过将内容直接嵌入请求中,客户端可以包含 Agent 可能无法直接访问的来源的上下文。在提示中包含时需要 embeddedContext 提示能力

字段类型必需描述
resourceEmbeddedResourceResource嵌入的资源内容,可以是:

显示文本资源

字段类型必需描述
uristring标识资源的 URI
textstring资源的文本内容
mimeTypestring-文本内容的可选 MIME 类型

显示 Blob 资源

字段类型必需描述
uristring标识资源的 URI
blobstringBase64 编码的二进制数据
mimeTypestring-blob 的可选 MIME 类型
字段类型必需描述
annotationsAnnotations-关于内容应如何使用或显示的可选元数据。

资源链接

Agent 可以访问的资源引用。

{
  "type": "resource_link",
  "uri": "file:///home/user/document.pdf",
  "name": "document.pdf",
  "mimeType": "application/pdf",
  "size": 1024000
}
字段类型必需描述
uristring资源的 URI
namestring资源的人类可读名称
mimeTypestring-资源的 MIME 类型
titlestring-资源的可选显示标题
descriptionstring-资源内容的可选描述
sizeinteger-资源的可选大小(以字节为单位)
annotationsAnnotations-关于内容应如何使用或显示的可选元数据。