Alibaba’s Qwen team has released Qwen3.8-Omni-Flash. They called it its first omni-modal model built around agentic capabilities. It accepts text, images, audio, and video, and it returns text. Audio-video understanding, reasoning, and tool use sit inside one model. The stated workflow is simple: understand the content, plan the task, execute with tools, deliver the result.
Is it deployable? Yes, as a hosted API today. It is live on QwenCloud, Alibaba Cloud Model Studio, and Qwen Studio. No open weights were announced at launch, so self-hosting is not an option.
What is Qwen3.8-Omni-Flash
The Qwen3.8-Omni-Flash is built on the Qwen3.8-Flash-Next architecture. That base model shipped with open weights in August 2026.
The context window is 1M tokens. QwenCloud lists 991K max input and 131K max output. Max reasoning length is 262K tokens.
Output is text only. The Model Studio docs point developers to Qwen3.5-Omni when they need generated speech. Thinking is on by default, with reasoning_effort set to xhigh. Setting it to none disables thinking.
The API follows both the DashScope and OpenAI protocols. It works with Chat Completions and the Responses API. Function calling, web search, structured outputs, context caching, and batch calls are supported.
Agentic Perception for Long Video
Most video models read a long file from start to finish. That holds even when the answer sits in 3 minutes of footage.
Qwen research team describes a different path. The agent starts from the question. It decides what to watch and hear. It then gathers evidence over several coarse-to-fine rounds. Compute and tokens go to the segments that matter.
The research team reports the result on OmniVideoBench. Accuracy rises from 63.4 to 67.8. Token use drops from 145,736 to 79,117. That is about 45.7% fewer tokens.
Reported Benchmarks
All figures here come from Qwen. Independent results were not available at publication.
- Across 29 evaluations, the average score improves more than 25% over Qwen3.5-Omni-Plus.
- WildClawBench-MM improves by 36.5 points. AgenticVBench improves by 22.3 points.
- UniClawBench reaches 69.6.
- LongAudioSpan gains 8.3 points. OmniVideoBench gains 9.6 points.
- OmniCap-IF CSR and ISR improve by 8.5 and 14.1 points.
The research team states that audio-visual performance is close to Gemini 3.8 Flash. It also claims overall audio performance above Gemini 3.8 Flash. The X post summarizes the agent gains as +19.5 points on average across WildClawBench-MM and UniClawBench.
Pricing and Input Limits
QwenCloud lists $0.15 per 1M input tokens and $0.47 per 1M output tokens. Implicit cache hits cost $0.016 per 1M tokens.
The research team reports large cost cuts against Qwen3.5-Omni-Plus. Audio input costs over 98% less per hour. Audio-visual input costs over 93% less per hour. The X post puts the video input reduction at about 89%.
Key limits from the Model Studio docs:
- Video files up to 2 hours and 2 GB by URL.
- Audio files up to 3 hours.
- Audio input in 113 languages and dialects.
- Stable results with video sampled at up to 15 fps.
- Two-channel stereo and four-channel FOA spatial audio through
use_multichannel. - Availability in 6 regions: Beijing, Singapore, Hong Kong, Tokyo, Frankfurt, and Virginia.
Calling it takes a few lines with the OpenAI SDK:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url=os.environ["DASHSCOPE_BASE_URL"],
)
completion = client.chat.completions.create(
model="qwen3.8-omni-flash",
messages=[{"role": "user", "content": [
{"type": "video_url", "video_url": {"url": os.environ["VIDEO_URL"]}},
{"type": "text", "text": "List the key moments with timestamps."},
]}],
modalities=["text"],
stream=True,
)
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Open-Source Tooling: Qwen-MM-Plugins and Qwen-Live Harness
The model returns text, so tools do the media work. Qwen team is open-sourcing 2 projects to support that.
Qwen-MM-Plugins is live under Apache-2.0. Its tagline is ‘Make any agent harness multimodal-native.’ Each capability installs as a Skill plus an optional MCP server. The guided installer supports Claude Code, CodeBuddy, Codex, Qoder, OpenClaw, Qwen Code, and Gemini CLI.
The Omni capabilities map to the launch demos:
omni-memorybuilds an audio-visual memory of a long video.omni-video2noteconverts a tutorial video into an illustrated PDF.omni-chatcutcovers Music-to-MV, movie commentary, and speaker-preserving video translation.
A core plugin lets the main model read local images and video frames natively. The README notes one current gap. Most harnesses cannot feed audio to the main model natively yet. Audio is routed through the API for now.
Interactive Explainer
<section class="pane" id="p2" role="tabpanel">
<h3>Static understanding vs agentic understanding</h3>
<p class="lead">Static mode reads a long video from start to finish. Agentic mode starts from the question, scans coarsely, then zooms into the segments that matter.</p>
<div class="seg" id="mode">
<button data-m="static">Static</button>
<button class="on" data-m="agentic">Agentic</button>
</div>
<div class="tl" id="tl" aria-hidden="true"></div>
<div class="tlx"><span>0:00</span><span>long video timeline</span><span>end</span></div>
<div class="stage" id="stg" aria-live="polite"></div>
<div class="kp">
<div class="k"><small>Tokens consumed (OmniVideoBench)</small><strong id="ktok">0</strong></div>
<div class="k"><small>Accuracy (OmniVideoBench)</small><strong id="kacc">0.0</strong></div>
</div>
<div class="cmp">
<div class="bar"><span class="n">Static tokens</span><span class="t"><i class="w" data-w="100"></i></span><span class="v">145,736</span></div>
<div class="bar"><span class="n">Agentic tokens</span><span class="t"><i data-w="54.3"></i></span><span class="v">79,117</span></div>
</div>
<div class="row"><button class="btn" id="replay">Replay animation</button></div>
<p class="note">Figures are Qwen-reported: accuracy 63.4 to 67.8, tokens 145,736 to 79,117, about 45.7% fewer. The timeline animation is illustrative.</p>
</section>
<section class="pane" id="p3" role="tabpanel">
<h3>What Qwen reports against the previous generation</h3>
<p class="lead">All numbers below are vendor-reported in the launch blog. Independent results were not available at publication.</p>
<div class="stats">
<div class="k"><small>Average across 29 evaluations</small><strong>+25%</strong><small>more than, vs Qwen3.5-Omni-Plus</small></div>
<div class="k"><small>UniClawBench score</small><strong>69.6</strong><small>agent benchmark</small></div>
<div class="k"><small>Hourly audio input price</small><strong>-98%</strong><small>more than, vs Qwen3.5-Omni-Plus</small></div>
</div>
<div id="gains">
<div class="bar"><span class="n">WildClawBench-MM</span><span class="t"><i data-w="100"></i></span><span class="v">+36.5</span></div>
<div class="bar"><span class="n">AgenticVBench</span><span class="t"><i data-w="61.1"></i></span><span class="v">+22.3</span></div>
<div class="bar"><span class="n">OmniCap-IF ISR</span><span class="t"><i data-w="38.6"></i></span><span class="v">+14.1</span></div>
<div class="bar"><span class="n">OmniVideoBench</span><span class="t"><i data-w="26.3"></i></span><span class="v">+9.6</span></div>
<div class="bar"><span class="n">OmniCap-IF CSR</span><span class="t"><i data-w="23.3"></i></span><span class="v">+8.5</span></div>
<div class="bar"><span class="n">LongAudioSpan</span><span class="t"><i data-w="22.7"></i></span><span class="v">+8.3</span></div>
</div>
<p class="note">Values are point gains. Bars are scaled to the largest gain. Qwen also says audio-visual input costs more than 93% less per hour.</p>
</section>
<section class="pane" id="p4" role="tabpanel">
<h3>Estimate a monthly bill</h3>
<p class="lead">QwenCloud list prices per 1M tokens: $0.15 input, $0.47 output, $0.016 for implicit cache hits. Drag the sliders.</p>
<div class="ctl"><label for="cin">Input tokens per month <b id="vin"></b></label><input type="range" id="cin" min="1" max="500" value="120" step="1"></div>
<div class="ctl"><label for="cout">Output tokens per month <b id="vout"></b></label><input type="range" id="cout" min="1" max="100" value="15" step="1"></div>
<div class="ctl"><label for="cch">Share of input served from cache <b id="vch"></b></label><input type="range" id="cch" min="0" max="90" value="30" step="5"></div>
<div class="total"><strong id="ctot">$0.00</strong><span style="color:#a3a0cc;font-size:13px">estimated per month</span></div>
<div class="stack"><i id="s1" style="background:#615CED"></i><i id="s2" style="background:#5be3b0"></i><i id="s3" style="background:#ffb454"></i></div>
<div class="lg"><span style="–c:#615CED" id="l1"></span><span style="–c:#5be3b0" id="l2"></span><span style="–c:#ffb454" id="l3"></span></div>
<p class="note">Prices checked on qwencloud.com on September 18, 2026. Excludes tool fees such as web search. Thinking is on by default and adds tokens.</p>
</section>
<section class="pane" id="p5" role="tabpanel">
<h3>Specs and limits</h3>
<p class="lead">Pulled from the QwenCloud model page and the Alibaba Cloud Model Studio docs.</p>
<div class="grid">
<div class="sp"><small>Context window</small><strong>1M tokens</strong><em>991K max input</em></div>
<div class="sp"><small>Max output</small><strong>131K tokens</strong><em>262K max reasoning</em></div>
<div class="sp"><small>Input / output</small><strong>4 in, 1 out</strong><em>text, image, audio, video in; text out</em></div>
<div class="sp"><small>Video file</small><strong>2 hours</strong><em>up to 2 GB by URL</em></div>
<div class="sp"><small>Audio file</small><strong>3 hours</strong><em>113 languages and dialects</em></div>
<div class="sp"><small>Spatial audio</small><strong>2 or 4 channel</strong><em>stereo and FOA</em></div>
<div class="sp"><small>Frame sampling</small><strong>up to 15 fps</strong><em>for fast-moving content</em></div>
<div class="sp"><small>Thinking</small><strong>on by default</strong><em>reasoning_effort: xhigh</em></div>
<div class="sp"><small>Tools</small><strong>function calling</strong><em>plus web search</em></div>
</div>
<div class="verdict"><b>Deployable today:</b> yes, as a hosted API. It is OpenAI-compatible and live in 6 regions. No open weights were announced at launch, so self-hosting is not an option.</div>
</section>
<div class="ft">
<span>Sources: <a href="https://qwen.ai/blog?id=qwen3.8-omni-flash" target="_blank" rel="noopener">Qwen blog</a>, <a href="https://qwencloud.com/models/qwen3.8-omni-flash" target="_blank" rel="noopener">QwenCloud</a>, <a href="https://www.alibabacloud.com/help/en/model-studio/qwen-omni" target="_blank" rel="noopener">Model Studio docs</a>. Verified September 18, 2026.</span>
<span class="mtp">Built by Marktechpost</span>
</div>
</div>
<script>
(function(){
var $=function(s,r){return (r||document).querySelector(s)},$$=function(s,r){return Array.prototype.slice.call((r||document).querySelectorAll(s))};
var reduce=window.matchMedia&&window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches;
function fmt(n){return Math.round(n).toLocaleString(‘en-US’)}
function postH(){try{parent.postMessage({__mtpH:document.getElementById(‘qwo38′).offsetHeight+40},’*’)}catch(e){}}
/* tabs */
var onShow={};
$$(‘.tab’).forEach(function(t){t.addEventListener(‘click’,function(){
$$(‘.tab’).forEach(function(x){x.setAttribute(‘aria-selected’,x===t?’true’:’false’)});
$$(‘.pane’).forEach(function(p){p.classList.toggle(‘on’,p.id===t.dataset.p)});
if(onShow[t.dataset.p])onShow[t.dataset.p]();
setTimeout(postH,60);
})});
/* 1 loop */
var S=[
{name:’Translate a short video’,steps:[
[‘Understand’,’The model takes the clip with its audio track. It reads speech, speakers, on-screen text, and scene changes together.’,[‘video in’,’audio in’,’113 input languages’]],
[‘Plan’,’It splits the job: transcribe with timestamps, translate each line, keep speaker identity, then re-time the result.’,[‘thinking on’,’timestamps’]],
[‘Execute’,’It emits tool calls. Tools such as ffmpeg and an optional external dubbing service do the media work.’,[‘function calling’,’ffmpeg’,’dubbing service’]],
[‘Deliver’,’The harness assembles a translated video with speaker-preserving audio and hands back the file path and a summary.’,[‘text out’,’translated video’]]]},
{name:’Auto-edit a vlog’,steps:[
[‘Understand’,’The model reviews raw footage and listens for speech, music, and ambient sound to find usable moments.’,[‘video in’,’audio in’,’up to 2 hours per file’]],
[‘Plan’,’It drafts a cut list: which moments to keep, in what order, and where music or captions should land.’,[‘thinking on’,’cut list’]],
[‘Execute’,’It calls editing tools step by step, checks the intermediate output, and corrects course when a cut misses.’,[‘function calling’,’multi-step tools’]],
[‘Deliver’,’The tools render the edit. The model returns a text summary of what it changed and why.’,[‘text out’,’edited vlog’]]]},
{name:’Turn a movie into a recap’,steps:[
[‘Understand’,’The 1M-token context holds long-form video. The model tracks who appears, who speaks, and what happens.’,[‘1M context’,’video in’,’audio in’]],
[‘Plan’,’It picks the plot beats that carry the story and writes a narration script around them.’,[‘thinking on’,’script’]],
[‘Execute’,’It calls tools to pull the chosen clips and pair them with narration audio from an external service.’,[‘function calling’,’clip extraction’]],
[‘Deliver’,’The harness outputs a short recap video. The model returns the script and the clip timestamps.’,[‘text out’,’recap video’]]]}
];
var sc=0,st=0,timer=null;
function drawLoop(){
var d=S[sc].steps[st];
$(‘#ltitle’).textContent=’Step ‘+(st+1)+’ of 4: ‘+d[0];
$(‘#ltext’).textContent=d[1];
$(‘#ltags’).innerHTML=d[2].map(function(x){return ‘<span class="tag">’+x+'</span>’}).join(”);
$$(‘#loop .node’).forEach(function(n,i){n.classList.toggle(‘on’,i===st);n.classList.toggle(‘done’,i<st)});
$(‘#railf’).style.width=(st/3*100)+’%’;
}
function stop(){if(timer){clearInterval(timer);timer=null;$(‘#run’).textContent=’Run the loop’}}
$$(‘#scn .chip’).forEach(function(c){c.addEventListener(‘click’,function(){
stop();$$(‘#scn .chip’).forEach(function(x){x.classList.toggle(‘on’,x===c)});sc=+c.dataset.s;st=0;drawLoop();setTimeout(postH,60)})});
$$(‘#loop .node’).forEach(function(n){n.addEventListener(‘click’,function(){stop();st=+n.dataset.i;drawLoop();setTimeout(postH,60)})});
$(‘#run’).addEventListener(‘click’,function(){
if(timer){stop();return}
st=0;drawLoop();$(‘#run’).textContent=’Pause’;
timer=setInterval(function(){if(st>=3){stop();return}st++;drawLoop();postH()},reduce?900:1900);
});
$(‘#rst’).addEventListener(‘click’,function(){stop();st=0;drawLoop()});
drawLoop();
/* 2 perception */
var tl=$(‘#tl’),cells=[];for(var i=0;i<48;i++){var c=document.createElement(‘i’);tl.appendChild(c);cells.push(c)}
var mode=’agentic’,runId=0;
var FIN={static:{tok:145736,acc:63.4},agentic:{tok:79117,acc:67.8}};
function setK(tok,acc){$(‘#ktok’).textContent=fmt(tok);$(‘#kacc’).textContent=acc.toFixed(1)}
function finalState(){
cells.forEach(function(c){c.className=”});
if(mode===’static’){cells.forEach(function(c){c.className=’s’});$(‘#stg’).textContent=’Done. Every segment was processed to answer one question.’}
else{[0,6,12,18,24,30,36,42].forEach(function(i){cells[i].className=’c’});for(var j=27;j<35;j++)cells[j].className=’z’;[29,30,31].forEach(function(i){cells[i].className=’e’});
$(‘#stg’).textContent=’Done. Evidence found in 3 segments after a coarse-to-fine search.’}
setK(FIN[mode].tok,FIN[mode].acc);
}
function play(){
var id=++runId,F=FIN[mode];
cells.forEach(function(c){c.className=”});setK(0,0);
if(reduce){finalState();return}
var plan=[];
if(mode===’static’){for(var i=0;i<48;i++)plan.push([i,’s’,’Reading the full video, segment ‘+(i+1)+’ of 48′]);}
else{
[0,6,12,18,24,30,36,42].forEach(function(i){plan.push([i,’c’,’Pass 1: coarse scan of the whole timeline’])});
for(var j=27;j<35;j++)plan.push([j,’z’,’Pass 2: zooming into the most relevant region’]);
[29,30,31].forEach(function(i){plan.push([i,’e’,’Pass 3: fine-grained evidence gathered’])});
}
var n=0,step=mode===’static’?55:150;
(function tick(){
if(id!==runId)return;
if(n>=plan.length){finalState();return}
var p=plan[n];cells[p[0]].className=p[1];$(‘#stg’).textContent=p[2];
n++;var f=n/plan.length;setK(F.tok*f,F.acc*f);
setTimeout(tick,step);
})();
}
$$(‘#mode button’).forEach(function(b){b.addEventListener(‘click’,function(){
$$(‘#mode button’).forEach(function(x){x.classList.toggle(‘on’,x===b)});mode=b.dataset.m;play()})});
$(‘#replay’).addEventListener(‘click’,play);
function fillBars(root){$$(‘.bar .t i’,root).forEach(function(b){b.style.width=’0′;setTimeout(function(){b.style.width=b.dataset.w+’%’},reduce?0:80)})}
onShow.p2=function(){play();fillBars($(‘#p2’))};
onShow.p3=function(){fillBars($(‘#p3’))};
finalState();$$(‘#p2 .bar .t i, #p3 .bar .t i’).forEach(function(b){b.style.width=b.dataset.w+’%’});
/* 4 cost */
var PI=0.15,PO=0.47,PC=0.016;
function money(x){return ‘$’+x.toLocaleString(‘en-US’,{minimumFractionDigits:2,maximumFractionDigits:2})}
function cost(){
var I=+$(‘#cin’).value,O=+$(‘#cout’).value,C=+$(‘#cch’).value/100;
var a=I*(1-C)*PI,b=I*C*PC,c=O*PO,t=a+b+c;
$(‘#vin’).textContent=I+’M’;$(‘#vout’).textContent=O+’M’;$(‘#vch’).textContent=Math.round(C*100)+’%’;
$(‘#ctot’).textContent=money(t);
$(‘#s1′).style.width=(a/t*100)+’%’;$(‘#s2′).style.width=(b/t*100)+’%’;$(‘#s3′).style.width=(c/t*100)+’%’;
$(‘#l1’).textContent=’Fresh input ‘+money(a);$(‘#l2’).textContent=’Cached input ‘+money(b);$(‘#l3’).textContent=’Output ‘+money(c);
}
[‘cin’,’cout’,’cch’].forEach(function(id){$(‘#’+id).addEventListener(‘input’,cost)});
cost();
/* resize */
window.addEventListener(‘load’,postH);window.addEventListener(‘resize’,postH);
if(window.ResizeObserver){new ResizeObserver(postH).observe(document.getElementById(‘qwo38’))}
setTimeout(postH,300);
})();
</script>
</body>
</html>
” style=”width:100%;border:0;height:600px;display:block;overflow:hidden” loading=”lazy” title=”Qwen3.8-Omni-Flash interactive explainer”>
Key Takeaways
- Qwen3.8-Omni-Flash takes text, image, audio, and video in, and returns text.
- It offers a 1M-token context, function calling, web search, and default-on thinking.
- Agentic perception lifts OmniVideoBench from 63.4 to 67.8 with about 45.7% fewer tokens.
- QwenCloud pricing is $0.15 input and $0.47 output per 1M tokens.
- It is API-only at launch, with Apache-2.0 Qwen-MM-Plugins for agent harnesses.
Check out the Technical details, QwenCloud model page, API docs, and GitHub repo. All credit goes to the researcher of this project. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us
The post Alibaba Qwen Releases Qwen3.8-Omni-Flash: A 1M-Context Omni-Modal Model Built Around Agentic Audio-Video Understanding and Tool Use appeared first on MarkTechPost.