内容类型
理解 Agent Client Protocol 中的内容块
内容块代表通过 Agent Client Protocol 流动的可显示信息。它们提供了一种结构化的方式来处理各种类型的面向用户的内容—无论是来自语言模型的文本、用于分析的图像,还是用于上下文的嵌入资源。内容块出现在:
- 通过
session/prompt发送的用户提示中 - 通过
session/update通知流式传输的语言模型输出中 - 工具调用的进度更新和结果中
内容类型
Agent Client Protocol 使用与 Model Context Protocol (MCP) 相同的 ContentBlock 结构。此设计选择使 Agent 能够无缝转发 MCP 工具输出的内容而无需转换。
文本内容
纯文本消息构成大多数交互的基础。
{
"type": "text",
"text": "What's the weather like today?"
}
所有 Agent 必须在提示中包含时支持文本内容块。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
text | string | 是 | 要显示的文本内容 |
annotations | Annotations | - | 关于内容应如何使用或显示的可选元数据。 |
图像内容
可以包含图像以提供视觉上下文或进行分析。
{
"type": "image",
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB..."
}
在提示中包含时需要 image 提示能力。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
data | string | 是 | Base64 编码的图像数据 |
mimeType | string | 是 | 图像的 MIME 类型(如 “image/png”、“image/jpeg”) |
uri | string | - | 图像来源的可选 URI 引用 |
annotations | Annotations | - | 关于内容应如何使用或显示的可选元数据。 |
音频内容
用于转录或分析的音频数据。
{
"type": "audio",
"mimeType": "audio/wav",
"data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAAB..."
}
在提示中包含时需要 audio 提示能力。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
data | string | 是 | Base64 编码的音频数据 |
mimeType | string | 是 | 音频的 MIME 类型(如 “audio/wav”、“audio/mp3”) |
annotations | Annotations | - | 关于内容应如何使用或显示的可选元数据。 |
嵌入资源
直接嵌入消息中的完整资源内容。
{
"type": "resource",
"resource": {
"uri": "file:///home/user/script.py",
"mimeType": "text/x-python",
"text": "def hello():\n print('Hello, world!')"
}
}
这是在提示中包含上下文的首选方式,例如使用 @-mentions 引用文件或其他资源时。通过将内容直接嵌入请求中,客户端可以包含 Agent 可能无法直接访问的来源的上下文。在提示中包含时需要 embeddedContext 提示能力。
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
resource | EmbeddedResourceResource | 是 | 嵌入的资源内容,可以是: |
显示文本资源
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
uri | string | 是 | 标识资源的 URI |
text | string | 是 | 资源的文本内容 |
mimeType | string | - | 文本内容的可选 MIME 类型 |
显示 Blob 资源
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
uri | string | 是 | 标识资源的 URI |
blob | string | 是 | Base64 编码的二进制数据 |
mimeType | string | - | blob 的可选 MIME 类型 |
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
annotations | Annotations | - | 关于内容应如何使用或显示的可选元数据。 |
资源链接
Agent 可以访问的资源引用。
{
"type": "resource_link",
"uri": "file:///home/user/document.pdf",
"name": "document.pdf",
"mimeType": "application/pdf",
"size": 1024000
}
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
uri | string | 是 | 资源的 URI |
name | string | 是 | 资源的人类可读名称 |
mimeType | string | - | 资源的 MIME 类型 |
title | string | - | 资源的可选显示标题 |
description | string | - | 资源内容的可选描述 |
size | integer | - | 资源的可选大小(以字节为单位) |
annotations | Annotations | - | 关于内容应如何使用或显示的可选元数据。 |