小程序开放平台

文档中心
起步
CLI开发
IDE开发
在小组件中集成
使用多模态能力
模型的出入参标准
模拟器调试

使用多模态能力

开发
>
指南
>
起步
>
使用多模态能力
>
更新时间:2025-11-03 14:03:46

使用多模态能力

关于开放平台智能体多模态能力介绍

在小组件/小程序(WIP)场景下,不同小组件往往具备多模态内容理解与多模态内容输出的需求。借助模型的图像理解与生成能力,可以实现例如:

小组件Showcase
小鸟心理
吉光卡片(文字图片模板制作)
日落岛(导入图片生成日落壁纸)
CapWords(AI 记单词)
界面示意

目前已全面开放多模态模型能力,您可以:

  1. 智能体调用多模态接口 开发者可在「开放平台 - 智能体」中通过调用多模态 API,实现图像识别、图片生成等能力。
  2. 多模态智能体调试 在本地结合「开发模拟器」进行多模态智能体的开发与调试,参考
  3. 工具与模板复用 平台提供标准化的多模态工具包(如图像处理、模版渲染),开发者可快速组合,减少重复开发 ::

1、 在 @vectorx/agent-runtime 中对接平台 AI 多模态能力

基于智能体 @vectorx/agent-runtime 对接平台 AI 多模态能力,和文本模型没有差异,仅需按照多模态协议标准,进行模态数据入参的处理即可

// Qwen Image 文生图模型
async sendMessage(message) {
    try {
      // 创建 qwen-image 模型
      const model = this.createModel('qwen-image');
      // 组装多模态入参:支持文本 + 可选参考图片
      const contentParts = [];
      if (Array.isArray(message?.files) && message.files.length > 0) {
        // 仅将图片类型作为参考图参与提示(如果有)
        const image = message.files.find((f) => f?.type === 'image' && f?.url);
        if (image) {
          contentParts.push({
            type: 'image_url',
            image_url: { url: image.url },
          });
        }
      }
      if (message?.msg) { contentParts.push({ type: 'text', text: message.msg }); }
      const modelResponse = await model.streamText({
        messages: [
          {
            role: 'system',
            content: [
              { type: 'text', text: '你是一个图像生成助手,请基于提示词生成图片。' },
            ],
          },
          {
            role: 'user',
            content: contentParts.length > 0
              ? contentParts
              : [{ type: 'text', text: message?.msg || '请根据描述生成图片' }],
          },
        ],
      });
 
      for await (const chunk of modelResponse) {
        this.sseSender.send({ data: chunk });
      }
 
      this.sseSender.end();
    } catch (error) {
      console.error('qwen-image stream error:', error);
      this.sseSender.end();
    }
  }

2、多模态模型接入,模型出/入参格式对齐平台(标准格式):

  • 纯文本类型:
[
  {
    "role": "system",
    "content": "你是一个天气查询助手。"
  },
  {
    "role": "user",
    "content": "今天天气怎么样?"
  },
  {
    "role": "tool",
    "function": "get_weather",
    "arguments": {
      "location": "New York"
    }
  },
  {
    "role": "tool",
    "function": "get_weather",
    "name": "weather_info",
    "content": {
      "temperature": 25,
      "condition": "Sunny"
    }
  },
  {
    "role": "assistant",
    "content": "今天纽约的天气是25度,晴朗。"
  }
]
  • 图片+文本类型:
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
      },
    },
    {
      "type": "text", "text": "图中描绘的是什么景象?"
    },
  ],
},

3、在模拟器中进行文生图 & 图生文(图片理解)调试

通过 Cli 或者使用 IDE,对多模态智能体进行调试,目前模拟器已同步开放多模态调试功能:

描述描述
云开发终端登录(TODO 内部文档)

文生图 & 图片理解(视频、音频敬请期待):

由于多模态模型(如图像生成、视频生成等)因处理时间较长,因此一般多模态模型采用异步调用机制,通常需要调用两个接口完成操作:

  • 调用模型创建任务获取 ID
  • 通过任务 ID 查询模型任务结果

在开放平台内,您可以快速完成此功能的调用:

启动 Agent 服务,获取服务地址: 访问 Agent 服务,进行任务结果查询: curl 'http://localhost:3000/v1/aiagent/agents/demo-agent/query-tasks?task_id=your-task-id(这里的 task_id 需要替换成 send-message 接口返回的实际任务ID)
推荐使用模拟器进行调试:自动识别 模型回复,并对接异步查询能力:

整个流程如下:

4、在小组件/小程序内访问多模态

Agent AI SDK 多模态能力拓展

  • 针对多模态模型,在 API 风格上,保持与文本对话模型设计的一致性,支持传入多模态上下文,并交给模型处理,模型出参在内部将自动转换为平台的标准格式。

Agent Runtime 内,支持创建不同的模型,当识别到多模态模型时,对 Qwen 模型进行输入 & 输出标准化处理,Agent AI SDK 处理链路如下: 多模态对话示例

  async sendMessage(message) {
    try {
      // 创建 qwen-image 模型
      const model = this.createModel('qwen-image');
      // 组装多模态入参:支持文本 + 可选参考图片
      const contentParts = [];
      if (Array.isArray(message?.files) && message.files.length > 0) {
        // 仅将图片类型作为参考图参与提示(如果有)
        const image = message.files.find((f) => f?.type === 'image' && f?.url);
        if (image) {
          contentParts.push({
            type: 'image_url',
            image_url: { url: image.url },
          });
        }
      }
      if (message?.msg) { contentParts.push({ type: 'text', text: message.msg }); }
      const modelResponse = await model.streamText({
        messages: [
          {
            role: 'system',
            content: [
              { type: 'text', text: '你是一个图像生成助手,请基于提示词生成图片。' },
            ],
          },
          {
            role: 'user',
            content: contentParts.length > 0
              ? contentParts
              : [{ type: 'text', text: message?.msg || '请根据描述生成图片' }],
          },
        ],
      });
      for await (const chunk of modelResponse) {
        this.sseSender.send({ data: chunk });
      }
      this.sseSender.end();
    } catch (error) {
      console.error('qwen-image stream error:', error);
      this.sseSender.end();
    }
  }

多模态对话SDK流程示意

本期新增的模型列表如下( 优先支持框架侧接入多模态模型,后续可快速迭代更多模型接入 ):

模型名称
ID
标签
厂商
上下文长度
更新时间
模型描述
通义千问VL-Maxqwen-vl-max图片理解,视频理解通义128K2025-05-26通义千问VL-Max(qwen-vl-max),即通义千问超大规模视觉语言模型。相比增强版,再次提升视觉推理能力和指令遵循能力,提供更高的视觉感知和认知水平。在更多复杂任务上提供最佳的性能。
通义千问-QwenImageqwen-image图片生成通义128K2025-6-16通义千问系列首个图像生成模型,参数规模200亿。具备卓越的文本渲染能力,在复杂文本渲染、各类生成与编辑任务重表现出色,在多个公开基准测试中获得SOTA。