跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

SDK 图片输入与结果

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

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 类型。前端应按结构化内容块呈现,不把它误当助手的普通文本增量。工具结果和完整事件见工具交互事件。