> ## Documentation Index
> Fetch the complete documentation index at: https://acp-docs.cxykevin.top/llms.txt
> Use this file to discover all available pages before exploring further.

# 内容

> 理解代理客户端协议中的内容块

内容块代表流经代理客户端协议的可显示信息。它们提供了一种结构化的方式来处理各种类型的面向用户的内容——无论是来自语言模型的文本、用于分析的图像，还是用于上下文的嵌入式资源。

内容块出现在：

* 通过 [`session/prompt`](./prompt-turn#1-user-message) 发送的用户提示中
* 通过 [`session/update`](./prompt-turn#3-agent-reports-output) 通知流式传输的语言模型输出中
* [工具调用](./tool-calls)的进度更新和结果中

## 内容类型

代理客户端协议使用与[模型上下文协议 (MCP)](https://modelcontextprotocol.io/specification/2025-06-18/schema#contentblock) 相同的 `ContentBlock` 结构。

这一设计选择使代理能够无缝转发来自 MCP 工具输出的内容，无需转换。

### 文本内容

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

```json theme={null}
{
  "type": "text",
  "text": "今天天气怎么样？"
}
```

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

<ParamField path="text" type="string" required>
  要显示的文本内容
</ParamField>

<ParamField path="annotations" type="Annotations">
  关于内容应如何使用或显示的可选元数据。[了解更多](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#annotations)。
</ParamField>

### 图像内容 <Icon icon="asterisk" size="14" />

可以包含图像以用于视觉上下文或分析。

```json theme={null}
{
  "type": "image",
  "mimeType": "image/png",
  "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB..."
}
```

<Icon icon="asterisk" size="14" /> 在提示中包含时需要 `image` [提示功能](./initialization#prompt-capabilities)。

<ParamField path="data" type="string" required>
  Base64 编码的图像数据
</ParamField>

<ParamField path="mimeType" type="string" required>
  图像的 MIME 类型（例如 "image/png"、"image/jpeg"）
</ParamField>

<ParamField path="uri" type="string">
  图像源的可选 URI 引用
</ParamField>

<ParamField path="annotations" type="Annotations">
  关于内容应如何使用或显示的可选元数据。[了解更多](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#annotations)。
</ParamField>

### 音频内容 <Icon icon="asterisk" size="14" />

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

```json theme={null}
{
  "type": "audio",
  "mimeType": "audio/wav",
  "data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAAB..."
}
```

<Icon icon="asterisk" size="14" /> 在提示中包含时需要 `audio` [提示功能](./initialization#prompt-capabilities)。

<ParamField path="data" type="string" required>
  Base64 编码的音频数据
</ParamField>

<ParamField path="mimeType" type="string" required>
  音频的 MIME 类型（例如 "audio/wav"、"audio/mp3"）
</ParamField>

<ParamField path="annotations" type="Annotations">
  关于内容应如何使用或显示的可选元数据。[了解更多](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#annotations)。
</ParamField>

### 嵌入式资源 <Icon icon="asterisk" size="14" />

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

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

这是在提示中包含上下文的首选方式，例如在使用 @ 提及引用文件或其他资源时。

通过将内容直接嵌入请求中，客户端可以包含代理可能没有直接访问权限的来源的上下文。

<Icon icon="asterisk" size="14" /> 在提示中包含时需要 `embeddedContext` [提示功能](./initialization#prompt-capabilities)。

<ParamField path="resource" type="EmbeddedResourceResource" required>
  嵌入式资源内容，可以是以下之一：

  <Expandable title="文本资源">
    <ParamField path="uri" type="string" required>
      标识资源的 URI
    </ParamField>

    <ParamField path="text" type="string" required>
      资源的文本内容
    </ParamField>

    <ParamField path="mimeType" type="string">
      文本内容的可选 MIME 类型
    </ParamField>
  </Expandable>

  <Expandable title="二进制资源">
    <ParamField path="uri" type="string" required>
      标识资源的 URI
    </ParamField>

    <ParamField path="blob" type="string" required>
      Base64 编码的二进制数据
    </ParamField>

    <ParamField path="mimeType" type="string">
      二进制文件的可选 MIME 类型
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="annotations" type="Annotations">
  关于内容应如何使用或显示的可选元数据。[了解更多](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#annotations)。
</ParamField>

### 资源链接

代理可以访问的资源的引用。

```json theme={null}
{
  "type": "resource_link",
  "uri": "file:///home/user/document.pdf",
  "name": "document.pdf",
  "mimeType": "application/pdf",
  "size": 1024000
}
```

<ParamField path="uri" type="string" required>
  资源的 URI
</ParamField>

<ParamField path="name" type="string" required>
  资源的人类可读名称
</ParamField>

<ParamField path="mimeType" type="string">
  资源的 MIME 类型
</ParamField>

<ParamField path="title" type="string">
  资源的可选显示标题
</ParamField>

<ParamField path="description" type="string">
  资源内容的可选描述
</ParamField>

<ParamField path="size" type="integer">
  资源的可选大小（字节）
</ParamField>

<ParamField path="annotations" type="Annotations">
  关于内容应如何使用或显示的可选元数据。[了解更多](https://modelcontextprotocol.io/specification/2025-06-18/server/resources#annotations)。
</ParamField>
