OpenClaw es un agente de IA personal de código abierto con licencia del MIT que puede ejecutar en sus propias máquinas. Su Gateway conecta modelos, herramientas y canales de chat como Telegram, Slack y Discord. El proyecto ya ha enviado la versión 2026.9.5, anunciada en X. La versión incluye 4179 solicitudes de extracción y 64 confirmaciones directas, con créditos para 502 cuentas contribuyentes. El cambio principal es Atomic Updates, que apunta a una queja de larga data: actualizaciones que interrumpen un agente en funcionamiento.
¿Es desplegable? Sí, la versión 2026.9.5 es la última etiqueta actual en npm. Es autohospedable y necesita el Nodo 24.16+ o 26.1+.
Por qué las actualizaciones de OpenClaw seguían fallando
El equipo de OpenClaw explicó el problema en una publicación de blog con el mantenedor Jason Sy. Antes de la solución, una actualización tenía dos resultados: mejora incremental o falla catastrófica. En caso de fallo, la versión anterior también dejó de funcionar. Eso no dejó ningún agente en línea para ayudar con la reparación.
Dos factores hicieron que esto fuera difícil. Primero, OpenClaw tiene miles de opciones de configuración, por lo que probar cada permutación es casi imposible. En segundo lugar, los mantenedores rara vez sintieron el dolor ellos mismos. Son desarrolladores que le piden a Claude o Codex que actualicen su garra. Para muchos usuarios, la garra es su único agente. El lanzamiento de OpenClaw 2.0 a principios de septiembre hizo que el problema fuera demasiado grande como para ignorarlo.
Cómo funcionan las actualizaciones atómicas
Según el equipo de Claw, las piezas necesarias ya existían en el proceso de actualización. Estaban en el orden equivocado. El nuevo flujo funciona así:
La puerta de enlace existente sigue ejecutándose mientras se prepara la actualización. La siguiente versión se compara con una copia privada de su configuración. OpenClaw cambia y luego verifica la instalación actualizada. Si la actualización falla, vuelve a la última configuración funcional.
OpenClaw siempre conserva un agente en funcionamiento, por lo que puede ayudar a diagnosticar una actualización fallida. El equipo también agregó un botón de informe de problemas para obtener actualizaciones.
Las notas de la versión enumeran límites claros. Las actualizaciones atómicas se aplican únicamente en rutas de actualización compatibles. Revertir la aplicación no puede deshacer las migraciones de bases de datos. La copia de validación privada no es una copia de seguridad, así que mantenga una copia de seguridad verificada antes de actualizar. Si falla una actualización interactiva, la reparación de IA comienza solo después de que elija Sí. Utiliza su cuenta y sus tokens, y se omite un tiempo de espera de 30 segundos.
Explicador interactivo: OpenClaw 2026.9.5
‘:”});$(‘#steps’).innerHTML=h;gw(‘ok’,’Gateway: ejecutando 2026.9.4′);ag(‘ok’,’Agente: disponible’);$(‘#log’).innerHTML=’
Elija un escenario y presione Ejecutar actualización.
‘} function gw(c,t){$(‘#gd’).className=”punto”+(c==’ok’?”:’ ‘+c);$(‘#gs’).textContent=t} function ag(c,t){$(‘#ad’).className=”punto”+(c==’ok’?”:’ ‘+c);$(‘#as’).textContent=t} function lg(t,c){var d=document.createElement(‘div’);if(c)d.className=c;d.textContent=”> “+t;$(‘#log’).appendChild(d);post()} función paso(i,st){var e=$$(‘#steps .sp’)[i];e.className=”sp “+st} function seq(list){busy=true;$(‘#run’).disabled=true;var i=0;(function nx(){if(i>=list.length){busy=false;$(‘#run’).disabled=false;return}var f=list[i++];F[0]();setTimeout(nx,f[1])})()} $(‘#run’).onclick=function(){if(busy)return;draw();$(‘#log’).innerHTML=”;var D=1150; if(modo==’antiguo’){seq([[function(){step(0,’act’);gw(‘bad’,’Gateway: stopped for handoff’);ag(‘bad’,’Agent: offline’);lg(‘Gateway shut down for the update handoff’,’o’)},D],[function(){step(0,’done’);step(1,’act’);lg(‘Installing new version…’)},D],[function(){step(1,’done’);step(2,’act’);lg(‘Restarting…’)},D],[function(){if(out==’ok’){step(2,’done’);gw(‘ok’,’Gateway: running 2026.9.5′);ag(‘ok’,’Agent: available’);lg(‘Update finished after a downtime window’,’g’)}else{step(2,’fail’);gw(‘bad’,’Gateway: down’);ag(‘bad’,’Agent: offline’);lg(‘Restart failed. Old version is down too’,’r’);lg(‘No agent left to help diagnose the failure’,’r’)}},300]])} más {seq([[function(){step(0,’act’);lg(‘Current Gateway stays online’,’g’)},D],[function(){step(0,’done’);step(1,’act’);lg(‘Validating candidate against a private copy of your setup…’)},D],[function(){if(out==’bad’){step(1,’fail’);lg(‘The update failed its check’,’r’);lg(‘Recovery keeps the last working version. Agent stays available to diagnose’,’g’);gw(‘ok’,’Gateway: running 2026.9.4 (last working version)’)}else{step(1,’done’);step(2,’act’);gw(‘warn’,’Gateway: switching over’);lg(‘Candidate passed. Switching over…’,’o’)}},out==’bad’?300:D],[function(){if(out==’bad’)return;step(2,’done’);step(3,’act’);lg(‘Verifying the updated installation…’)},out==’bad’?0:D],[function(){if(out==’bad’)return;step(3,’done’);gw(‘ok’,’Gateway: running 2026.9.5′);lg(‘Verified. Update complete’,’g’)},300]])}}; seg(‘#mode’,function(v){if(ocupado)return;mode=v;draw();post()});seg(‘#out’,function(v){out=v});draw(); /* 2 complementos */ var pmode=”new”,pb=false;seg(‘#pm’,function(v){pmode=v;preset()}); function preset(){$(‘#pu’).style.transition=’none’;$(‘#pg’).style.transition=’none’;$(‘#pu’).style.width=”0″;$(‘#pg’).style.width=”0″;$(‘#pc’).textContent=”La línea coral marca el momento en que se instala un complemento.”} $(‘#pr’).onclick=function(){if(pb)return;pb=true;preset();setTimeout(function(){$(‘#pu’).style.transition=’ancho 2.4s lineal’;$(‘#pu’).style.width=”100%”;if(pmode==’old’){setTimeout(function(){$(‘#pg’).style.transition=’ancho .9s linear’;$(‘#pg’).style.width=”18%”},1000)}setTimeout(function(){$(‘#pc’).textContent=pmode==’old’?’Instalación basada en reinicio: toda la instalación se desconecta mientras se reinicia el Gateway.’:’Recarga en caliente: el complemento se carga y el Gateway nunca se desconecta. Los complementos sin cambios se mantienen corriendo.’;pb=false;post()},2500)},40)}; /* 3 compartir */ var Y=[[‘Conversation text’,’Recipients read the conversation text of the groups you selected.’],[‘Eligible user-created forks’,’Forks created by users are included when eligible.’]]; var N=[[‘Tool activity’,’Tool calls and their output are not shared.’],[‘Reasoning’,’Model reasoning stays on the source installation.’],[‘Subagents’,’Subagent sessions are excluded from the shared view.’],[‘Continue the conversation’,’Access is read-only. Recipients cannot send new turns.’],[‘Archive it’,’Recipients cannot archive the shared conversation.’],[‘Use its terminal’,’The terminal stays with the owner.’]]; función mk(a,c,host){a.forEach(function(x){var d=document.createElement(‘div’);d.className=”chip “+c;d.innerHTML=’‘+x[0]+’‘+(c==’y’?’SHARED’:’BLOQUEADO’)+”;d.onclick=function(){$(‘#sw’).textContent=x[1]};$(host).appendChild(d)})} mk(Y,’y’,’#sy’);mk(N,’n’,’#sn’); function shareIn(){$$(‘.chip’).forEach(function(c,i){c.classList.remove(‘in’);setTimeout(function(){c.classList.add(‘in’)},90*i+80)})} /* 4 en vivo */ for(var i=0;i<28;i++){var b=document.createElement('i');b.style.animationDelay=(i*0.07)+'s';b.style.animationDuration=(0.7+((i*37)%10)/12)+'s';$('#wave').appendChild(b)} var L=[['Talk: unpinned sessions now choose Live using your configured OpenAI access.','Existing model pins stay in place.','On Apple clients, Stop ends the Live session.'], ['Meetings: supported in Google Meet, Microsoft Teams and Zoom through meeting plugins.','Select Live explicitly, and update both the Gateway and the paired node.','Use supported isolated audio capture. Remove a custom audioInputCommand first.'], ['Phone calls: GPT Live can consult your OpenClaw agent during a call.','Select Live explicitly for this surface.','Live does not support Voice Call custom functions, host-controlled wake-name or forced-consult modes.']]; función en vivo(v){$('#lf').innerHTML=L[v].map(function