Aleph aprende a deshacer (sin máquina del tiempo)
La nueva beta no le enseña al agente un truco más vistoso. Le enseña algo bastante más útil: mirar antes de tocar, detenerse cuando se lo pedís y dejarte volver atrás.
Las primeras versiones de Aleph ya podían leer un proyecto, editar archivos y ejecutar comandos. Eso era suficiente para que el agente resultara útil. También era suficiente para descubrir una verdad poco cinematográfica: darle herramientas a un modelo es la parte fácil; lograr que las use sin convertir cada cambio en un acto de fe lleva bastante más trabajo.
La versión v0.2.0-beta.9 nació de esa incomodidad. En vez de sumar otra herramienta, nos concentramos en todo lo que ocurre alrededor de una acción: qué ve la persona antes de aprobarla, qué queda guardado si algo se interrumpe y cómo se vuelve atrás si el resultado no era el esperado.
Primero, mostrar las cartas
Cuando Aleph propone editar o escribir un archivo, ahora muestra una previsualización del cambio. Para una edición aparece el diff; para una escritura nueva, el contenido que va a crear. La pregunta dejó de ser «¿confiás en que el agente hizo lo correcto?» y pasó a ser «¿aprobás estas líneas concretas?».
Parece una diferencia pequeña hasta que la herramienta quiere reemplazar una configuración, tocar un archivo largo o corregir tres caracteres que se parecen sospechosamente a treinta. Ver el cambio antes de ejecutarlo baja la presión sanguínea y, como efecto secundario, también reduce la cantidad de insultos dirigidos a la computadora.
Deshacer, pero con los pies en la tierra
Después de aplicar un edit o un write_file, la interfaz ofrece deshacer. Aleph conserva una instantánea acotada del estado anterior y puede restaurarla sin exigir una máquina del tiempo, un ritual con Git ni recordar qué había exactamente en la línea 147.
El deshacer también comprueba que el archivo siga como Aleph lo dejó. Si lo modificaste a mano mientras tanto, no pisa tu trabajo. En ese caso avisa que existe un conflicto y se detiene. La marcha atrás es útil; la marcha atrás con los ojos cerrados es apenas otra forma de chocar.
Plan significa plan
El modo Plan ya impedía algunas escrituras, pero quedaba una puerta lateral: bash. Y bash, con suficiente entusiasmo, puede escribir, borrar y reorganizar medio proyecto antes del desayuno.
Ahora Plan bloquea tanto las herramientas de archivo como la ejecución de comandos. También ignora permisos de Build recordados de sesiones anteriores. Si elegís planificar, Aleph puede investigar, leer y proponer; no puede aparecer con una maza diciendo que estaba «tomando medidas».
Un permiso claro no hace al agente menos capaz. Hace que su capacidad ocurra cuando vos decidís.
Cancelar tiene que cancelar
Interrumpir un comando no servía de mucho si el proceso hijo seguía trabajando en segundo plano. La nueva implementación ejecuta bash dentro de un grupo de procesos y, al cancelar, termina el grupo completo. También limita cuánto stdout y stderr conserva, para que un comando conversador no intente convertir la memoria RAM en sus memorias completas.
Las sesiones se guardan después de cada herramienta y también frente a cancelaciones o errores. La escritura del JSON es atómica: primero se prepara el archivo y después se reemplaza el anterior. Si algo se corta a mitad de camino, la conversación no debería quedar transformada en arqueología digital.
Descargas que recuerdan por dónde iban
Un modelo GGUF puede pesar varios gigabytes. Antes, una conexión interrumpida podía obligar a empezar desde cero. Ahora Aleph reanuda la descarga con rangos HTTP, comprueba que el servidor realmente los respete y reinicia de forma segura si decide ignorarlos.
Al terminar, verifica el encabezado GGUF, el tamaño esperado y, cuando Hugging Face publica el dato, el SHA-256 del archivo LFS. Reanudar rápido está bien. Reanudar basura con admirable eficiencia, menos.
Más señales, menos adivinanzas
La vista del agente ahora indica la fase actual, el paso del loop, el uso aproximado de contexto y los tokens por segundo cuando llama-server informa el timing. No cambia lo que el modelo sabe, pero sí explica qué está haciendo y si sigue avanzando. En una aplicación local, esa diferencia importa: el silencio de cinco segundos puede ser inferencia, carga o el equivalente informático de mirar por la ventana.
Todo esto quedó conectado a CI en GitHub: validación de Svelte, build del frontend, pruebas de Rust y la suite determinística del harness en sus dos rutas. Las pruebas no prometen que un modelo nunca vaya a improvisar. Prometen algo más razonable: que cuando el agente edite, cancele, guarde o descargue, la infraestructura alrededor se comporte como acordamos.
Una beta menos temeraria
Esta versión tiene menos que ver con hacer más cosas y más con hacerlas de una manera que se pueda inspeccionar, detener y revertir. Aleph sigue siendo beta. Todavía estamos encontrando bordes raros, modelos creativos y comandos con opiniones propias. Pero ahora, cuando algo se desvía, hay mejores frenos y una marcha atrás.
Descargar Agent Aleph v0.2.0-beta.9 → Disponible para Linux en AppImage y paquete .deb desde GitHub Releases.En otras palabras: el agente todavía puede agarrar las herramientas. Ahora también te muestra dónde piensa usarlas y sabe devolverlas al cajón.