Skip to content
FunCoding

Search

Search docs, Skills and MCP

SDK 图片输入与结果

发送文件或 Base64 附件,按模型视觉能力检查格式、数量和大小。

This page has not been translated into English yet. The original Chinese version is shown below.

SDK 消息支持 file 和 blob 两类图片附件。file 由 runtime 从磁盘读取并编码;blob 直接提供已有 Base64 数据,适合应用已拿到截图或图片内容的情况。

选择附件方式

await session.send({
  prompt: "Describe the layout in this screenshot.",
  attachments: [{
    type: "file",
    path: "/absolute/path/to/screenshot.png",
  }],
});

file 必须使用绝对路径,并且文件要能被 runtime 读取。连接远程 runtime 时,不要把只存在于 SDK 客户端机器上的路径当作远程文件。

已有图片数据时:

await session.send({
  prompt: "Describe the layout in this screenshot.",
  attachments: [{
    type: "blob",
    data: base64ImageData,
    mimeType: "image/png",
    displayName: "screenshot.png",
  }],
});

这里假定应用已提供 base64ImageData。data 是 Base64 数据,mimeType 描述实际格式;这种方式无需为了传输先写临时图片文件。消息接受与生成完成不同,调用和排队语义见 Steering。

先检查模型视觉能力

模型字段检查内容
capabilities.supports.vision是否支持图片理解
capabilities.limits.vision.supported_media_types接受的 MIME 类型
capabilities.limits.vision.max_prompt_images单次 prompt 的图片数量上限
capabilities.limits.vision.max_prompt_image_size单张图片字节数上限

官方提到 JPG、PNG、GIF 等常见格式,并建议优先 PNG 或 JPEG。具体支持集合和上限应读模型能力,不能固定为所有模型共同数值。SVG 不属于这里支持的图片处理格式。

自动缩放不保证每张图都发送

runtime 会对超过模型尺寸或大小限制的图片保持比例缩放或降低质量;处理后仍无法符合要求的图片会被跳过,不发送给模型。包含小字或细节的截图被压缩后可能损失信息,因此自动处理不能替代应用确认附件是否适合任务。

一条消息可带多张附件,但仍受该模型 max_prompt_images 限制。不具备 vision 能力的模型不会因附加图片就获得视觉理解。

接收工具返回的图片

工具截图或生成图表可在 tool.execution_complete 的结果中返回 image 内容块:type 为 image,data 为 Base64,mimeType 为对应 MIME 类型。前端应按结构化内容块呈现,不把它误当助手的普通文本增量。工具结果和完整事件见工具交互事件。