Install
openclaw skills install qwen-omni-multimodal基于阿里云百炼 Qwen3.5-Omni 的全模态 skill。支持文本、图片、音频、视频理解,以及文本/语音输出。 当用户需要分析图片、转写或理解音频、理解视频、进行跨模态问答,或直接生成语音回复时,使用此 skill。
openclaw skills install qwen-omni-multimodal通过阿里云百炼 OpenAI 兼容接口调用 Qwen Omni 模型,默认使用 qwen3.5-omni-flash,自动选型时会在 qwen3.5-omni-flash 和 qwen3.5-omni-plus 之间切换;同时保留对 qwen3-omni-flash 与 qwen-omni-turbo 的显式兼容。支持文本、图片、音频、视频输入,并可返回文本或音频。
详细参数与约束见 references/api.md。
脚本支持单轮调用,也支持带本地会话历史的多轮对话。
export DASHSCOPE_API_KEY="sk-xxx"
也可以在 skill 目录下创建 config.json:
可先参考 config.example.json 再复制为 config.json。
{
"apiKey": "sk-xxx",
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"selectionPolicy": "auto",
"defaultModel": "qwen3.5-omni-flash",
"modelCandidates": [
"qwen3.5-omni-flash",
"qwen3.5-omni-plus"
],
"voiceByModelFamily": {
"qwen3.5-omni": "Tina",
"qwen3-omni-flash": "Cherry",
"qwen-omni-turbo": "Serena"
},
"voice": "Tina"
}
运行环境要求 Node.js >= 18
可选:如果使用新加坡地域,覆盖 Base URL:
export DASHSCOPE_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
配置优先级:
config.json具体覆盖规则:
CLI --model > DASHSCOPE_MODEL > selectionPolicy=auto > config.defaultModel > config.model > 内置默认DASHSCOPE_BASE_URL > config.baseUrl > 内置默认CLI --voice > DASHSCOPE_VOICE > config.voiceByModelFamily[模型家族] > config.voice > 内置默认DASHSCOPE_API_KEY > config.apiKeyselectionPolicy=fixed|auto
fixed:按默认模型走,不自动切换auto:音频/视频理解优先 qwen3.5-omni-plus,文本/图片理解与语音输出优先 qwen3.5-omni-flashconfig.modelCandidates 用于维护候选模型列表;selectionPolicy=auto 时会优先在候选列表里选模型config.voiceByModelFamily 用于给不同模型家族配置不同默认音色,避免切模型后沿用不兼容音色stream=trueuser 消息只允许包含文本和一种模态数据modalities=["text","audio"]qwen3.5-omni-plus 和 qwen3.5-omni-flash 为非思考模型,不支持 --enable-thinking=trueqwen3-omni-flash 开启思考模式时,不支持音频输出Qwen3.5-Omni:4 到 512 张图片qwen3-omni-flash:2 到 128 张图片fresh 时不会把旧话题继续注入给模型qwen3.5-omni-flashqwen3.5-omni-plusqwen3.5-omni-flashqwen3-omni-flash、qwen-omni-turboconfig.json 中使用:
selectionPolicy:设置 fixed 或 autodefaultModel:设置默认模型modelCandidates:维护允许 Agent 自动优先考虑的模型列表qwen3.5-omni-plusqwen3.5-omni-plus-2026-03-15qwen3.5-omni-flashqwen3.5-omni-flash-2026-03-15qwen3-omni-flashqwen3-omni-flash-2025-12-01qwen3-omni-flash-2025-09-15qwen-omni-turboqwen-omni-turbo-latestqwen-omni-turbo-2025-03-26qwen-omni-turbo-2025-01-19qwen3.5-omni-flash:成本更低,适合默认文本/图片理解与语音输出qwen3.5-omni-plus:长音频、长视频与复杂跨模态理解更稳qwen-omni-turbo:保留显式兼容,不再作为默认自动选型目标qwen3.5-omni-flash
selectionPolicy=auto 时,会按任务类型在 qwen3.5-omni-flash 和 qwen3.5-omni-plus 之间自动二选一--with-audio 时校验音色是否合法--list-voices --model <model> 查看当前模型家族支持的音色config.voiceByModelFamily 中,而不是只写一个全局 voiceqwen3.5-omni 当前默认音色:Tina(甜甜 Tina)qwen3.5-omni 当前内置音色示例:
Tina(甜甜 Tina)、Serena(苏瑶 Serena)、Ethan(晨煦 Ethan)、Katerina(卡捷琳娜 Katerina)、Jennifer(詹妮弗 Jennifer)Ryan(甜茶 Ryan)、Sunny(四川-晴儿 Sunny)、Dylan(北京-晓东 Dylan)、Rocky(粤语-阿强 Rocky)、Chloe(思怡 Chloe)--list-voices 查看qwen-omni-turbo 当前内置音色:
Cherry(辛悦)Serena(苏瑶)Ethan(晨煦)Chelsie(千雪)qwen3-omni-flash 当前内置音色:
Cherry(辛悦)、Ethan(晨煦)、Nofish(不吃鱼)、Jennifer(詹妮弗)、Ryan(甜茶)Katerina(卡捷琳娜)、Elias(墨讲师)、Jada(上海-阿珍)、Dylan(北京-晓东)、Sunny(四川-晴儿)Li(南京-老李)、Marcus(陕西-秦川)、Roy(闽南-阿杰)、Peter(天津-李彼得)、Rocky(粤语-阿强)、Kiki(粤语-阿清)、Eric(四川-程川)TinaSerenaEthan主要脚本:node scripts/qwen-omni-chat.js
node scripts/qwen-omni-chat.js \
--selection-policy="auto" \
--prompt="用中文概括一下什么是全模态模型"
node scripts/qwen-omni-chat.js \
--prompt="描述这张图片,并指出最重要的三个细节" \
--image="/absolute/path/image.jpg"
可重复 --image 传多张图。
node scripts/qwen-omni-chat.js \
--prompt="转写这段音频,并给出简短摘要" \
--audio="/absolute/path/audio.mp3"
node scripts/qwen-omni-chat.js \
--prompt="概括这个视频的主要内容" \
--video="/absolute/path/video.mp4"
node scripts/qwen-omni-chat.js \
--prompt="描述这个动作序列发生了什么" \
--video-frames="/abs/1.jpg,/abs/2.jpg,/abs/3.jpg,/abs/4.jpg"
node scripts/qwen-omni-chat.js \
--prompt="请用中文做一个 20 秒以内的语音自我介绍" \
--with-audio \
--voice="Tina" \
--audio-out="/tmp/qwen-omni.wav"
node scripts/qwen-omni-chat.js --list-voices --model="qwen3.5-omni-flash"
node scripts/qwen-omni-chat.js \
--prompt="描述这张图片,并指出最重要的三个细节" \
--image="/absolute/path/image.jpg" \
--dry-run
node scripts/qwen-omni-chat.js \
--session="demo-chat" \
--prompt="先分析这张图片" \
--image="/abs/demo.jpg"
node scripts/qwen-omni-chat.js \
--session="demo-chat" \
--prompt="把刚才的结论总结成三点" \
--mode="continue"
node scripts/qwen-omni-chat.js \
--session="demo-chat" \
--prompt="现在换个新问题,解释一下多模态模型训练难点" \
--mode="fresh"
node scripts/qwen-omni-chat.js --list-sessions
node scripts/qwen-omni-chat.js --show-session --session="demo-chat"
node scripts/qwen-omni-chat.js --clear-session --session="demo-chat"
qwen3.5-omni-flash。只有在用户明确要求或你确认更合适时再切换模型。
qwen3.5-omni-plusqwen3.5-omni-flashqwen3-omni-flash / qwen-omni-turbo--session;需要切换新内容时使用 --mode=fresh 或直接新建 session。usage 足够完整,还会输出本次费用估算。--mode=auto
--mode=continue
--mode=fresh
会话文件保存在 sessions/ 目录。
CLI --mode > 默认 autoCLI --session 或 --new-session--session 时,只允许单轮调用;不能使用 --mode=continue--reset-session 会在当前请求前重置活动上下文--mode=fresh 会重置当前活动话题,但保留同一个 session 文件--dry-run 不会写入或删除任何 session 文件;如果同时传了 --reset-session,只打印将要发生的变化--prompt:用户文本提示,必填--session:会话 ID,用于多轮对话--selection-policy=fixed|auto:模型选择策略,默认读配置,未配置时为 fixed--new-session:创建新 session;不传值时自动生成 ID--mode=auto|continue|fresh:会话路由模式,默认 auto--history-window:多轮模式下保留的最近轮数,默认 6--reset-session:在当前请求前重置活动上下文--list-sessions:列出已保存会话--show-session:查看某个会话摘要--clear-session:删除某个会话--image:图片路径、HTTP(S) URL 或 Data URL,可重复--audio:音频路径、HTTP(S) URL 或 Data URL--video:视频路径、HTTP(S) URL 或 Data URL--video-frames:逗号分隔的图片列表,按视频帧顺序传入--with-audio:启用音频输出--voice:输出音色,默认 Tina--list-voices:查看当前模型家族支持的音色列表--audio-out:输出 WAV 文件路径,默认 /tmp/qwen-omni-<timestamp>.wav--enable-thinking=true|false:是否开启思考模式,默认 false--system:可选系统提示词--dry-run:只打印价格提醒和脱敏后的请求体,不实际调用 API,也不会落盘 session 变更--sessionconfig.selectionPolicy + config.defaultModel + config.modelCandidates 控制,不要反复改脚本config.voiceByModelFamily 控制;切模型家族时不要假设同一个音色参数总是可用--mode=fresh 或直接不带 session--mode=continue--with-audio,同时确保 --enable-thinking=false;不确定音色时先运行 --list-voices--dry-run,确认模型来源、模态判定、会话模式、请求体预览和价格提醒Qwen3.5-Omni 当前内置价格按中国内地官方阶梯价提醒:
qwen3.5-omni-flash
0.2 ~ 0.8 元/百万Token1.24 元/百万Token4.0 ~ 16.0 元/百万Token25.551 元/百万Tokenqwen3.5-omni-plus
0.8 ~ 2.0 元/百万Token4.96 元/百万Token9.6 ~ 24.0 元/百万Token61.322 元/百万Tokenusage 带了足够的 token 明细,脚本会进一步输出本次费用估算DASHSCOPE_API_KEYconfig.json 是否是合法 JSONQwen3.5-Omni 传了 --enable-thinking=trueqwen3-omni-flash 上同时传了 --with-audio 和 --enable-thinking=true--session--mode=continue