内容块代表流经代理客户端协议的可显示信息。它们提供了一种结构化的方式来处理各种类型的面向用户的内容——无论是来自语言模型的文本、用于分析的图像,还是用于上下文的嵌入式资源。
内容块出现在:
内容类型
代理客户端协议使用与模型上下文协议 (MCP) 相同的 ContentBlock 结构。
这一设计选择使代理能够无缝转发来自 MCP 工具输出的内容,无需转换。
文本内容
纯文本消息构成大多数交互的基础。
{
"type": "text",
"text": "今天天气怎么样?"
}
所有代理在提示中包含文本内容块时必须支持。
图像内容
可以包含图像以用于视觉上下文或分析。
{
"type": "image",
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB..."
}
在提示中包含时需要 image 提示功能。
图像的 MIME 类型(例如 “image/png”、“image/jpeg”)
音频内容
用于转录或分析的音频数据。
{
"type": "audio",
"mimeType": "audio/wav",
"data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAAB..."
}
在提示中包含时需要 audio 提示功能。
音频的 MIME 类型(例如 “audio/wav”、“audio/mp3”)
嵌入式资源
直接嵌入消息中的完整资源内容。
{
"type": "resource",
"resource": {
"uri": "file:///home/user/script.py",
"mimeType": "text/x-python",
"text": "def hello():\n print('Hello, world!')"
}
}
这是在提示中包含上下文的首选方式,例如在使用 @ 提及引用文件或其他资源时。
通过将内容直接嵌入请求中,客户端可以包含代理可能没有直接访问权限的来源的上下文。
在提示中包含时需要 embeddedContext 提示功能。
resource
EmbeddedResourceResource
required
资源链接
代理可以访问的资源的引用。
{
"type": "resource_link",
"uri": "file:///home/user/document.pdf",
"name": "document.pdf",
"mimeType": "application/pdf",
"size": 1024000
}