Compaction
Cada modelo tiene una ventana de contexto: la cantidad máxima de tokens que puede procesar. Cuando una conversación se acerca a ese límite, OpenClaw compacta los mensajes más antiguos en un resumen para que el chat pueda continuar.Cómo funciona
- Los turnos más antiguos de la conversación se resumen en una entrada compacta.
- El resumen se guarda en la transcripción de la sesión.
- Los mensajes recientes se mantienen intactos.
toolResult
correspondientes. Si un punto de división cae dentro de un bloque de herramientas,
OpenClaw mueve el límite para que el par permanezca junto y se preserve la cola
actual sin resumir.
El historial completo de la conversación permanece en disco. Compaction solo cambia lo que el
modelo ve en el siguiente turno.
Compaction automática
La Compaction automática está activada de forma predeterminada. Se ejecuta cuando la sesión se acerca al límite de contexto, o cuando el modelo devuelve un error de desbordamiento de contexto (en cuyo caso OpenClaw hace Compaction y reintenta). Las firmas típicas de desbordamiento incluyenrequest_too_large, context length exceeded, input exceeds the maximum number of tokens, input token count exceeds the maximum number of input tokens, input is too long for the model y ollama error: context length exceeded.
Antes de hacer Compaction, OpenClaw recuerda automáticamente al agente que guarde notas importantes
en archivos de memory. Esto evita la pérdida de contexto.
agents.defaults.compaction en tu openclaw.json para configurar el comportamiento de Compaction (modo, tokens objetivo, etc.).
La resumización de Compaction preserva identificadores opacos de forma predeterminada (identifierPolicy: "strict"). Puedes sobrescribir esto con identifierPolicy: "off" o proporcionar texto personalizado con identifierPolicy: "custom" e identifierInstructions.
Opcionalmente puedes especificar un modelo diferente para la resumización de Compaction mediante agents.defaults.compaction.model. Esto es útil cuando tu modelo principal es un modelo local o pequeño y quieres que los resúmenes de Compaction los produzca un modelo más capaz. La sobrescritura acepta cualquier cadena provider/model-id:
Proveedores de Compaction conectables
Los plugins pueden registrar un proveedor de Compaction personalizado medianteregisterCompactionProvider() en la API del plugin. Cuando un proveedor está registrado y configurado, OpenClaw le delega la resumización en lugar de usar el pipeline de LLM integrado.
Para usar un proveedor registrado, establece el id del proveedor en tu configuración:
provider fuerza automáticamente mode: "safeguard". Los proveedores reciben las mismas instrucciones de Compaction y la misma política de preservación de identificadores que la ruta integrada, y OpenClaw sigue preservando el contexto de sufijo de turnos recientes y turnos divididos después de la salida del proveedor. Si el proveedor falla o devuelve un resultado vacío, OpenClaw vuelve a la resumización LLM integrada.
Compaction automática (activada de forma predeterminada)
Cuando una sesión se acerca o supera la ventana de contexto del modelo, OpenClaw activa la Compaction automática y puede reintentar la solicitud original usando el contexto compactado. Verás:🧹 Auto-compaction completeen modo detallado/statusmostrando🧹 Compactions: <count>
Compaction manual
Escribe/compact en cualquier chat para forzar una Compaction. Agrega instrucciones para guiar
el resumen:
Usar un modelo diferente
De forma predeterminada, Compaction usa el modelo principal de tu agente. Puedes usar un modelo más capaz para obtener mejores resúmenes:Avisos de Compaction
De forma predeterminada, Compaction se ejecuta silenciosamente. Para mostrar avisos breves cuando la Compaction comienza y cuando finaliza, habilitanotifyUser:
Compaction frente a poda
| Compaction | Poda | |
|---|---|---|
| Qué hace | Resume la conversación antigua | Recorta resultados de herramientas antiguos |
| ¿Se guarda? | Sí (en la transcripción de la sesión) | No (solo en memoria, por solicitud) |
| Alcance | Toda la conversación | Solo resultados de herramientas |
Solución de problemas
¿Compacta con demasiada frecuencia? Puede que la ventana de contexto del modelo sea pequeña, o que las salidas de herramientas sean grandes. Intenta habilitar la poda de sesión. ¿El contexto se siente obsoleto después de la Compaction? Usa/compact Focus on <topic> para
guiar el resumen, o habilita el volcado de memoria para que las notas
persistan.
¿Necesitas empezar de cero? /new inicia una sesión nueva sin hacer Compaction.
Para la configuración avanzada (reserva de tokens, preservación de identificadores, motores de
contexto personalizados, Compaction del lado del servidor de OpenAI), consulta el
Análisis profundo de administración de sesiones.
Relacionado
- Sesión — administración y ciclo de vida de la sesión
- Poda de sesión — recorte de resultados de herramientas
- Contexto — cómo se construye el contexto para los turnos del agente
- Hooks — hooks del ciclo de vida de Compaction (
before_compaction,after_compaction)