Historial de conversación
Una conversación larga acaba chocando con un muro infranqueable: la ventana de contexto del modelo. Todo lo que hay en esta página existe por culpa de ese muro, y lo interesante es qué se descarta, qué se conserva y qué se puede recuperar.
Cuatro formas de recuperar contexto
Sección titulada «Cuatro formas de recuperar contexto»Más que alternativas, son una escalera, empezando por lo más barato.
| Mecanismo | Coste | Conserva | Pierde |
|---|---|---|---|
| Elisión | Nada | Cada palabra de la narración | Resultados de herramientas antiguos sin incidencias |
| Descarte de imágenes | Nada | El texto que las rodea | Capturas de pantalla antiguas |
| Instantáneas | Nada | Cada palabra, como píxeles | Legibilidad para un modelo sin visión |
| Resumen | Una llamada al modelo | Una narración | Los detalles que no eligió |
La elisión y el descarte se ejecutan primero porque son gratis y sin pérdidas en lo que importa: eliminan volumen que nadie iba a releer.
Por qué resumir es el último recurso
Sección titulada «Por qué resumir es el último recurso»Un resumen es el único de los cuatro que gasta una llamada al modelo y el único que decide por ti qué importaba. Ambos son costes reales. La llamada es la más interesante, por cuándo ocurre.
La compactación suele ejecutarse por delante del muro, con un umbral. Pero también se ejecuta de forma reactiva, después de que el propio proveedor rechace una petición por ser demasiado grande: la estimación heurística subestimó lo que el proveedor midió en realidad. En esa situación, un compactador que resume tiene que hacer una petición para reducir el contexto, y la petición que hace es justo la que se acaba de desbordar.
Instantáneas
Sección titulada «Instantáneas»La compactación por instantáneas representa el historial descartado en páginas densas de glifos en píxeles y lo devuelve como imágenes.
La premisa es una peculiaridad de la facturación: un modelo con visión cobra por una imagen a un precio fijo o proporcional al área, que no tiene nada que ver con cuántos caracteres contiene. Doce mil caracteres de conversación descartada cuestan el equivalente a doce mil caracteres en tokens de texto. Esos mismos caracteres representados en una sola página cuestan una imagen.
Lo que hace que merezca la pena, y no sea solo una astucia, es que no necesita ni llamada al modelo, ni clave, ni red. Es la única estrategia siempre disponible durante la recuperación de un desbordamiento.
La forma de la reconstrucción es cabecera literal, parte central como imagen y cola literal. La cabecera es la tarea y las restricciones a las que remite todo lo que viene después; la cola es donde está el trabajo en ese momento. La parte central es lo que menos se relee y más cuesta.
Las instantáneas se vuelven a representar a partir del texto de origen conservado en cada pasada, nunca a partir de los píxeles de la pasada anterior. Representar como imagen una imagen ya existente degrada los glifos una generación por compactación, hasta que nadie puede leerlos.
De qué reanuda realmente una ejecución
Sección titulada «De qué reanuda realmente una ejecución»Históricamente, cada ejecución del arnés partía de un historial vacío y reconstruía la continuidad a partir de un bloque <context> del prompt: un resumen de la conversación en lugar de la conversación. De ahí se derivaban tres cosas:
- Reanudar era volver a contarlo. El modelo nunca veía su propio razonamiento anterior ni los bytes reales que devolvían sus herramientas, solo una descripción de ellos.
- Rebobinar moría con el proceso. Un
checkpointes un índice dentro de la lista de mensajes activos, así que un reinicio perdía todas las etiquetas que el modelo había puesto. - Reintentar no distinguía «no hay nada que reintentar» de «no se cargó nada». Tras un reinicio, el turno fallido desaparece del estado activo en ambos casos.
Los tres se resuelven persistiendo la transcripción. Se guarda en cada límite de turno y nunca a mitad de turno: un historial capturado entre una llamada a una herramienta y su resultado es uno que ningún proveedor aceptará, así que un fallo en ese instante restaura el turno anterior en lugar de un medio turno que no se puede reproducir.
Una ejecución reanudada se recorta a sus mensajes más recientes, cortando en un límite que no sea el resultado huérfano de una herramienta: un resultado cuya llamada se recortó es una petición que los proveedores rechazan de plano, y una transcripción que no se puede enviar es peor que una corta.
El árbol de la sesión
Sección titulada «El árbol de la sesión»Cada mensaje registra aquel del que continúa, y cada conversación nombra su extremo de rama actual. Esa única decisión es toda la función.
Ramificar no escribe nada. Mueve el puntero. El camino que dejaste sigue ahí, así que volver a cambiar es otro movimiento de puntero en lugar de una restauración, y editar un prompt para volver a ejecutarlo deja de costarte la respuesta con la que estabas comparando.
Sin esto, cualquier forma de volver atrás tiene que ocultar o eliminar mensajes, y ocultar es una mentira que el siguiente lector no puede descubrir.
Rama frente a bifurcación
Sección titulada «Rama frente a bifurcación»| Rama | Bifurcación | |
|---|---|---|
| Qué ocurre | El puntero se mueve | Se copia el camino |
| Dónde va | La misma conversación | Una conversación nueva |
| Coste | Nada | Una copia de la rama |
Una bifurcación copia con ids nuevos en lugar de compartir filas. Dos conversaciones que compartieran filas se mostrarían los mensajes posteriores de la otra, que es justo lo único que una bifurcación no debe hacer.
Rebobinar usa el mismo puntero
Sección titulada «Rebobinar usa el mismo puntero»El par checkpoint / rewind dentro de la ejecución marca un límite de turno limpio y vuelve a él después de una exploración, conservando un resumen. Como los checkpoints se persisten junto a la transcripción, una etiqueta que el modelo puso antes de un reinicio sigue aterrizando donde se puso. Un checkpoint cuyo destino no sobrevivió a un recorte se descarta, no se ajusta: rebobinar «hasta la etiqueta» y aterrizar en otro sitio es exactamente el fallo que una etiqueta existe para evitar.
Relacionado
Sección titulada «Relacionado»- Bifurcar una conversación: el navegador del árbol, la bifurcación y la exportación
- Contexto de herramientas y caché de prompts: la otra mitad de lo que llena una ventana de contexto
- Comandos slash:
/compact,/shake,/context,/tree