This week, Meta Superintelligence Labs released Muse Spark 1.3. It is the fourth Muse Spark release in five months, and the target is long-horizon agentic and coding work rather than single-turn generation. The framing in Meta’s post is usability: sustaining a long thread, collaborating with the user, and knowing when it is stuck.
Is it deployable? Yes, but with two limits. Muse Spark 1.3 ships today in Muse Code and the Meta Model API, so you can call it in production now. You cannot self-host it, because the weights are closed, and the max reasoning mode is still gated behind further safety testing.
What actually changed for agents
Meta trained Muse Spark 1.3 across multiple agent harnesses so behavior generalizes past one environment. The model is built to hold several workflows inside a single long thread. Given an open-ended objective, it gathers its own context from messy and conflicting sources, then patches gaps in its plan.
The collaboration changes are the more practical part. Muse Spark 1.3 asks clarifying questions on ambiguous prompts, pulls the user in when it stalls, and confirms before consequential actions. On long runs it adapts to preference: frequent status updates, or silent background execution. Meta also reports better calibration on the model’s own limits, so it flags hurdles instead of hallucinating an outcome.
Multitasking improved too. Meta says the model maps an incoming prompt to the correct task inside a cluttered single thread, whether the user is steering or interrupting.
Coding and efficiency
Muse Spark 1.3 was trained on more long-horizon coding tasks. Relative to Muse Spark 1.2, Meta describes fewer unnecessary turns, less verbosity, and a cleaner code style. In internal comparisons by Meta engineers, it used approximately 20% fewer tool calls and approximately 25% fewer tokens. For agentic workloads, that is the number that maps to cost: fewer round trips and fewer billed tokens per completed task.
<div class="msx-lane-label" style="margin-top:10px"><span class="msx-lane-name" style="color:var(–meta)">Muse Spark 1.3</span><span class="msx-lane-tag">same task, fewer round trips</span></div>
<div class="msx-svgwrap">
<svg viewBox="0 0 700 78" role="img" aria-label="Muse Spark 1.3 agent trace with eight tool calls">
<path class="msx-path-bg" d="M14,52 C130,52 170,24 300,24 C430,24 470,44 686,30"></path>
<path class="msx-path-b" id="pathB" d="M14,52 C130,52 170,24 300,24 C430,24 470,44 686,30"></path>
<g id="nodesB"></g>
</svg>
</div>
<div class="msx-meters">
<div class="msx-meter">
<h4>Tool calls to finish</h4>
<div class="msx-bar-row"><span class="msx-bar-name">1.2</span><span class="msx-track"><span class="msx-fill a" id="fTcA"></span></span><span class="msx-val" id="vTcA">0</span></div>
<div class="msx-bar-row"><span class="msx-bar-name">1.3</span><span class="msx-track"><span class="msx-fill b" id="fTcB"></span></span><span class="msx-val" id="vTcB">0</span></div>
</div>
<div class="msx-meter">
<h4>Tokens burned (1.2 = 100)</h4>
<div class="msx-bar-row"><span class="msx-bar-name">1.2</span><span class="msx-track"><span class="msx-fill a" id="fTkA"></span></span><span class="msx-val" id="vTkA">0</span></div>
<div class="msx-bar-row"><span class="msx-bar-name">1.3</span><span class="msx-track"><span class="msx-fill b" id="fTkB"></span></span><span class="msx-val" id="vTkB">0</span></div>
</div>
</div>
<div class="msx-controls">
<button class="msx-btn" id="runBtn">Play the run</button>
<span class="msx-status" id="runStatus">Idle</span>
</div>
</div>
<p class="msx-note">Meta reports that in comparisons by its own engineers, Muse Spark 1.3 used roughly 20% fewer tool calls and roughly 25% fewer tokens than Muse Spark 1.2 on coding work. Meta did not publish absolute counts, so the ten-versus-eight trace above is a scaled illustration of that ratio, not a logged session.</p>
</div>
<div class="msx-panel" id="p2" role="tabpanel" aria-labelledby="t2">
<div class="msx-stage">
<div class="msx-chips" id="chips">
<button class="msx-chip" aria-pressed="true" data-i="0">Prompt is ambiguous</button>
<button class="msx-chip" aria-pressed="false" data-i="1">Agent gets stuck</button>
<button class="msx-chip" aria-pressed="false" data-i="2">Action is irreversible</button>
<button class="msx-chip" aria-pressed="false" data-i="3">Task exceeds its reach</button>
<button class="msx-chip" aria-pressed="false" data-i="4">Run goes long</button>
</div>
<div class="msx-compare">
<div class="msx-card">
<h5>Typical earlier behaviour</h5>
<p class="msx-bubble" id="oldTxt"></p>
</div>
<div class="msx-card b">
<h5>What Meta trained into 1.3</h5>
<p class="msx-bubble" id="newTxt"></p>
</div>
</div>
</div>
<p class="msx-note">Each pairing restates a behaviour Meta describes in the release post: asking clarifying questions on ambiguous prompts, invoking the user when stuck, confirming before consequential actions, flagging its own limits instead of hallucinating an outcome, and adapting update frequency on long tasks. Wording is illustrative.</p>
</div>
<div class="msx-panel" id="p3" role="tabpanel" aria-labelledby="t3">
<div class="msx-stage">
<div class="msx-toggle" id="cfgToggle">
<button aria-pressed="true" data-c="ship">What you can call today (xhigh)</button>
<button aria-pressed="false" data-c="chart">What Meta charted (max)</button>
</div>
<div id="benchRows"></div>
</div>
<p class="msx-note">Meta’s launch scorecard runs the max reasoning mode, which the release post says arrives only after further safety testing completes. The mode available at rollout is xhigh. Both configurations appear in Meta’s <a href="https://research.meta.ai/static/muse-spark-1-3-multimodal-evaluation-methodology" target="_blank" rel="noopener">evaluation methodology report</a>. Elo bars are scaled against a 1,000-point human baseline.</p>
</div>
<div class="msx-foot">
<span>Sources: Meta AI Research release post and evaluation report, September 2, 2026.</span>
<span class="msx-brand">Built by Marktechpost</span>
</div>
</div>
<script>
(function(){
var reduce = window.matchMedia && window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches;
/* ———- tabs ———- */
var tabs=[].slice.call(document.querySelectorAll(‘.msx-tab’));
tabs.forEach(function(tab){
tab.addEventListener(‘click’,function(){
tabs.forEach(function(t){
t.setAttribute(‘aria-selected’,’false’);
document.getElementById(t.getAttribute(‘aria-controls’)).classList.remove(‘is-on’);
});
tab.setAttribute(‘aria-selected’,’true’);
document.getElementById(tab.getAttribute(‘aria-controls’)).classList.add(‘is-on’);
ping();
if(tab.id===’t3′){drawBench();}
});
});
/* ———- panel 1 ———- */
var A={n:10,tokens:100}, B={n:8,tokens:75};
function xs(count){var out=[],i;for(i=0;i<count;i++){out.push(14+(672*(i/(count-1))));}return out;}
function yOn(path,x){
var L=path.getTotalLength(), lo=0, hi=L, p, k=0;
while(k<24){var mid=(lo+hi)/2;p=path.getPointAtLength(mid);if(p.x<x){lo=mid;}else{hi=mid;}k++;}
return path.getPointAtLength((lo+hi)/2).y;
}
function buildNodes(gid,pathId,count,color){
var g=document.getElementById(gid), path=document.getElementById(pathId);
g.innerHTML=”;
xs(count).forEach(function(x,i){
var y=yOn(path,x);
var c=document.createElementNS(‘http://www.w3.org/2000/svg’,’circle’);
c.setAttribute(‘cx’,x);c.setAttribute(‘cy’,y);c.setAttribute(‘r’,i===count-1?7:5);
c.setAttribute(‘fill’,i===count-1?color:’#fff’);
c.setAttribute(‘stroke’,color);c.setAttribute(‘stroke-width’,’2.5′);
c.setAttribute(‘class’,’msx-node’);
g.appendChild(c);
});
}
function primePaths(){
[‘pathA’,’pathB’].forEach(function(id){
var p=document.getElementById(id),L=p.getTotalLength();
p.style.transition=’none’;
p.style.strokeDasharray=L;p.style.strokeDashoffset=L;
void p.getBoundingClientRect();
});
}
function drawPath(id,ms){
var p=document.getElementById(id),L=p.getTotalLength();
p.style.transition=’stroke-dashoffset ‘+(reduce?10:ms)+’ms linear’;
p.style.strokeDashoffset=0;
}
function setBar(fillId,valId,pct,label){
document.getElementById(fillId).style.width=pct+’%’;
document.getElementById(valId).textContent=label;
}
function resetRun(){
primePaths();
buildNodes(‘nodesA’,’pathA’,A.n,’#9DAEC9′);
buildNodes(‘nodesB’,’pathB’,B.n,’#0064E0′);
[‘fTcA’,’fTcB’,’fTkA’,’fTkB’].forEach(function(i){document.getElementById(i).style.width=’0%’;});
[‘vTcA’,’vTcB’,’vTkA’,’vTkB’].forEach(function(i){document.getElementById(i).textContent=’0′;});
}
var timers=[], running=false;
function clearTimers(){timers.forEach(clearTimeout);timers=[];}
function play(){
if(running)return; running=true;
clearTimers(); resetRun();
document.getElementById(‘runStatus’).textContent=’Running the same task on both models…’;
document.getElementById(‘runBtn’).textContent=’Replay’;
var total=reduce?200:3000;
setTimeout(function(){drawPath(‘pathA’,total);drawPath(‘pathB’,total*0.75);},40);
var nA=document.querySelectorAll(‘#nodesA circle’), nB=document.querySelectorAll(‘#nodesB circle’);
for(var i=0;i<A.n;i++){(function(i){timers.push(setTimeout(function(){nA[i].classList.add(‘on’);},reduce?10:(total*(i/(A.n-1))*0.98)+60));})(i);}
for(var j=0;j<B.n;j++){(function(j){timers.push(setTimeout(function(){nB[j].classList.add(‘on’);},reduce?10:(total*0.75*(j/(B.n-1))*0.98)+60));})(j);}
timers.push(setTimeout(function(){
setBar(‘fTcA’,’vTcA’,100,’10’); setBar(‘fTkA’,’vTkA’,100,’100′);
},reduce?20:total*0.5));
timers.push(setTimeout(function(){
setBar(‘fTcB’,’vTcB’,80,’8′); setBar(‘fTkB’,’vTkB’,75,’75’);
document.getElementById(‘runStatus’).textContent=’1.3 finished with 20% fewer tool calls and 25% fewer tokens.’;
running=false; ping();
},reduce?30:total*0.78));
}
document.getElementById(‘runBtn’).addEventListener(‘click’,play);
resetRun();
/* ———- panel 2 ———- */
var pairs=[
["Guesses at what you meant, commits to one reading, and you find out several steps later.",
"Stops and asks a clarifying question before it spends tool calls on the wrong interpretation."],
["Keeps retrying variations of the same failing approach until the context or your patience runs out.",
"Invokes help from you when it hits a wall, and says what specifically it is blocked on."],
["Treats deleting, sending, and overwriting like any other step in the plan.",
"Checks in before consequential actions, with better calibration on what is actually irreversible."],
["Produces a confident-sounding deliverable for a task it could not really complete.",
"Reports the hurdle instead of hallucinating an outcome, having a firmer sense of its own limits."],
["One mode only, so you either get flooded with narration or hear nothing for an hour.",
"Adapts to your preference on long tasks: frequent progress updates, or silent background work."]
];
var chips=[].slice.call(document.querySelectorAll(‘.msx-chip’));
function showPair(i){
chips.forEach(function(c){c.setAttribute(‘aria-pressed’, c.dataset.i===String(i)?’true’:’false’);});
var o=document.getElementById(‘oldTxt’), n=document.getElementById(‘newTxt’);
o.textContent=pairs[i][0]; n.textContent=pairs[i][1];
[o,n].forEach(function(el){el.classList.remove(‘msx-fade’);void el.offsetWidth;el.classList.add(‘msx-fade’);});
ping();
}
chips.forEach(function(c){c.addEventListener(‘click’,function(){showPair(+c.dataset.i);});});
showPair(0);
/* ———- panel 3 ———- */
var bench=[
{name:’OSWorld 2.0 (computer use)’,ship:57.2,chart:66.9,max:100,fmt:function(v){return v.toFixed(1);}},
{name:’GDPval-AA v2 (Elo, human = 1,000)’,ship:1709,chart:1754,min:1000,max:1900,fmt:function(v){return v.toLocaleString();}},
{name:’JobBench (professional tasks)’,ship:61.2,chart:64.9,max:100,fmt:function(v){return v.toFixed(1);}},
{name:’DeepSearchQA (agentic browsing, F1)’,ship:89.4,chart:89.4,max:100,fmt:function(v){return v.toFixed(1);}},
{name:’Terminal-Bench 2.1 (pass@1)’,ship:89.2,chart:88.8,max:100,fmt:function(v){return v.toFixed(1);}}
];
var active=’ship’, built=false;
function buildBench(){
var host=document.getElementById(‘benchRows’); host.innerHTML=”;
bench.forEach(function(b,i){
var lo=b.min||0, span=b.max-lo;
host.insertAdjacentHTML(‘beforeend’,
‘<div class="msx-brow">’+
‘<p class="msx-bname">’+b.name+'</p>’+
‘<div class="msx-bpair">’+
‘<div class="msx-bline"><span class="msx-blabel">xhigh</span><span class="msx-btrack"><span class="msx-bfill ship" id="bs’+i+’"></span></span><span class="msx-bval">’+b.fmt(b.ship)+'</span></div>’+
‘<div class="msx-bline"><span class="msx-blabel">max</span><span class="msx-btrack"><span class="msx-bfill chart" id="bc’+i+’"></span></span><span class="msx-bval">’+b.fmt(b.chart)+'</span></div>’+
‘</div>’+
‘</div>’);
void lo; void span;
});
built=true;
}
function drawBench(){
if(!built)buildBench();
bench.forEach(function(b,i){
var lo=b.min||0, span=b.max-lo;
var s=document.getElementById(‘bs’+i), c=document.getElementById(‘bc’+i);
s.style.width=(((b.ship-lo)/span)*100)+’%’;
c.style.width=(((b.chart-lo)/span)*100)+’%’;
s.classList.toggle(‘dim’,active!==’ship’);
c.classList.toggle(‘dim’,active!==’chart’);
});
ping();
}
[].slice.call(document.querySelectorAll(‘#cfgToggle button’)).forEach(function(btn){
btn.addEventListener(‘click’,function(){
active=btn.dataset.c;
[].slice.call(document.querySelectorAll(‘#cfgToggle button’)).forEach(function(b){
b.setAttribute(‘aria-pressed’, b.dataset.c===active?’true’:’false’);
});
drawBench();
});
});
/* ———- height reporting ———- */
function ping(){
setTimeout(function(){
var h=document.getElementById(‘msx’).offsetHeight+40;
try{parent.postMessage({msxHeight:h},’*’);}catch(e){}
},60);
}
window.addEventListener(‘load’,ping);
window.addEventListener(‘resize’,ping);
ping();
})();
</script>
</body>
</html>
” style=”width:100%;height:600px;border:0;overflow:hidden;display:block;background:transparent;” scrolling=”no” title=”Muse Spark 1.3 interactive explainer”>
Benchmarks
On Meta’s own numbers, Muse Spark 1.3 posts 75.4 on DeepSWE v1.1, ahead of Claude Opus 5 at 74.0 and GPT-5.6 Sol at 72.7. It reaches 59.4 on SWE-Atlas Codebase QnA and ties GPT-5.6 Sol at 88.8 on Terminal-Bench 2.1, with Opus 5 at 86.7. Long-context retrieval is the widest gap: MRCR v2 scores of 98.5 (256K–512K) and 98.1 (512K–1M), against 91.5 and 73.8 for GPT-5.6 Sol.
The mode split matters on agentic rows. Meta reports OSWorld 2.0 at 66.9 for max versus 57.2 for xhigh, GDPval-AA v2 Elo at 1,754 versus 1,709, and JobBench at 64.9 versus 61.2. DeepSearchQA ties at 89.4 for both. Since Muse Spark 1.2 was evaluated at xhigh, part of the generational jump is a reasoning-tier change.
Artificial Analysis scores the shipping xhigh variant at 61 on its Intelligence Index and the preview max variant at 62. That places xhigh level with GPT-5.6 Sol (max) and Grok 4.6 (high), behind Claude Opus 5 (max, 63) and Claude Fable 5.1 (max, 66). Artificial Analysis also measured Tau3-Bench Banking at 47% for xhigh and 52% for max, the top score it has recorded on that evaluation.
Key Takeaways
- Muse Spark 1.3 is live in Muse Code and the Meta Model API, with a 1M-token context window.
- Meta engineers measured ~20% fewer tool calls and ~25% fewer tokens versus Muse Spark 1.2.
- Meta’s launch scorecard uses the
maxmode, which is not the mode developers can call today. - Pricing is unchanged at $1.25/M input and $4.25/M output, with a $0.10/$0.20 contributor tier.
- Weights stay closed, though Meta lists a Muse Spark open weights release on its roadmap.
Check out the full release post and the evaluation methodology report. 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 Meta AI Released Muse Spark 1.3: An Agentic Coding Model That Uses ~20% Fewer Tool Calls and ~25% Fewer Tokens Than Muse Spark 1.2 appeared first on MarkTechPost.