Blog

Notas sobre el harness, los modelos que tiene debajo y lo que cambia cuando llega uno nuevo.

Sincronización de memoria sin «gana la última escritura»

Dos equipos, un mismo conjunto de notas, y uno de ellos editado mientras el otro estaba en reposo. Todo sistema de sincronización responde a esto, y la mayoría lo hace con una comparación de marcas de tiempo que descarta un lado en silencio. Eso vale para un borrador que puedes volver a escribir. No vale para el archivo que un agente lee antes de cada turno, porque lo que descarta es la línea que escribiste para que algo no volviera a pasar.

Los ids de modelo no pertenecen a TypeScript

Un id de modelo es el dato que más rápido cambia en todo este sistema. Los proveedores los renombran, los retiran, publican una variante con fecha, cambian discretamente a qué apunta el alias sin fecha y condicionan la mitad de ellos a qué cuenta pregunta. Compila eso dentro de un paquete y habrás garantizado que el paquete esté mal en cuestión de semanas; no roto de forma evidente, lo que al menos daría un informe de error, sino mal de esa manera concreta en la que un selector ofrece a alguien un modelo que su clave no puede llamar.

Una regla deny es el único límite que tienes

Todo lo demás que un harness de agentes llama permiso es una valoración del coste. Merece la pena decirlo claramente, porque la interfaz no lo dice: una solicitud de aprobación, un modo llamado Auto y un ajuste de raíces con permiso de escritura parecen cosas del mismo tipo, y solo una de ellas es una línea que el sistema mantendrá pase lo que pase.

Cambiar de modelo a mitad de sesión no cuesta nada

Y eso es una decisión de diseño, no una función. La mayoría de las herramientas de agentes se escriben pensando en un proveedor y después se adaptan a los demás. El orden parece un detalle de implementación. Es todo el asunto.