Saltar al contenido principal

Compactación

Cada modelo tiene una ventana de contexto, el número máximo 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

  1. Los turnos más antiguos de la conversación se resumen en una entrada compacta.
  2. El resumen se guarda en la transcripción de la sesión.
  3. Los mensajes recientes se mantienen intactos.
Cuando OpenClaw divide el historial en fragmentos de compactación, mantiene las llamadas de herramientas del asistente emparejadas con sus entradas toolResult correspondientes. Si un punto de división cae dentro de un bloque de herramientas, OpenClaw mueve el límite para que la pareja permanezca unida y se preserve la cola actual sin resumir. El historial completo de la conversación permanece en disco. La compactación solo cambia lo que el modelo ve en el siguiente turno.

Compactación automática

La compactación 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 compacta y vuelve a intentarlo). Las firmas típicas de desbordamiento incluyen request_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 compactar, OpenClaw recuerda automáticamente al agente que guarde notas importantes en archivos de memory. Esto evita la pérdida de contexto.

Compactación manual

Escribe /compact en cualquier chat para forzar una compactación. Añade instrucciones para orientar el resumen:
/compact Focus on the API design decisions

Usar un modelo diferente

De forma predeterminada, la compactación usa el modelo principal de tu agente. Puedes usar un modelo más capaz para obtener mejores resúmenes:
{
  agents: {
    defaults: {
      compaction: {
        model: "openrouter/anthropic/claude-sonnet-4-6",
      },
    },
  },
}

Aviso de inicio de compactación

De forma predeterminada, la compactación se ejecuta silenciosamente. Para mostrar un aviso breve cuando la compactación comienza, habilita notifyUser:
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}
Cuando está habilitado, el usuario ve un mensaje corto (por ejemplo, “Compactando contexto…”) al inicio de cada ejecución de compactación.

Compactación frente a depuración

CompactaciónDepuración
Qué haceResume conversaciones antiguasRecorta resultados de herramientas antiguos
¿Se guarda?Sí (en la transcripción de la sesión)No (solo en memoria, por solicitud)
AlcanceConversación completaSolo resultados de herramientas
La depuración de sesión es un complemento más ligero que recorta la salida de herramientas sin resumir.

Resolución de problemas

¿Compacta demasiado a menudo? La ventana de contexto del modelo puede ser pequeña, o las salidas de herramientas pueden ser grandes. Intenta habilitar la depuración de sesión. ¿El contexto parece obsoleto después de compactar? Usa /compact Focus on <topic> para orientar el resumen, o habilita el vaciado de memory para que las notas se conserven. ¿Necesitas empezar de cero? /new inicia una sesión nueva sin compactar. Para la configuración avanzada (reserva de tokens, preservación de identificadores, motores de contexto personalizados, compactación del lado del servidor de OpenAI), consulta la Guía detallada de gestión de sesiones.

Relacionado

  • Sesión — gestión y ciclo de vida de la sesión
  • Depuración 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 compactación (before_compaction, after_compaction)