Ir al contenido
Guías

Motores de contexto de OpenClaw

Los cuatro puntos del ciclo de vida del ensamblado, el motor legacy predeterminado, escribir un motor como plugin con commitTurn y semántica de transcripción, los parámetros de host aceptados, los requisitos de capacidades del host, el aislamiento de fallos y lo que significa realmente ownsCompaction

8 min de lectura

Todo lo que ve el modelo lo ensambla algo. En OpenClaw ese algo es un motor de contexto, y es intercambiable. El integrado conserva el comportamiento original, pero la interfaz que hay debajo es donde se conectan las estrategias centradas en la recuperación o en los resúmenes. Aquí tienes los puntos del ciclo de vida, el contrato que un plugin tiene que cumplir y los dos comportamientos ante fallos que evitan que un motor defectuoso deje mudo al agente.

Cuatro puntos del ciclo de vida

  • El método ingest se llama cuando un mensaje nuevo se une a la sesión, para que el motor pueda almacenarlo o indexarlo; assemble se llama antes de cada ejecución del modelo y devuelve un conjunto ordenado de mensajes más un añadido opcional al prompt del sistema que cabe en el presupuesto de tokens; compact se llama cuando la ventana está llena o el usuario lo pide; y un hook posterior al turno permite al motor persistir su estado, iniciar una compactación en segundo plano o actualizar índices.
  • Un método opcional maintain realiza el mantenimiento de la transcripción después del bootstrap, de un turno correcto o de una compactación, usando un helper de reescritura seguro, y puede declararse como trabajo en segundo plano para no bloquear la respuesta; la compactación de presupuesto en cola que acepta mantenimiento en segundo plano mantiene vivo el runtime preparado durante el mantenimiento, las reejecuciones y la liberación, así que la aceptación no significa que la limpieza haya terminado.
  • Dos hooks opcionales de subagente preparan el estado compartido antes de que empiece una ejecución hija y limpian cuando termina; el hook de preparación recibe las claves de sesión del padre y del hijo, el modo de contexto, los identificadores de transcripción disponibles y una duración opcional, y puede devolver un handle de reversión al que OpenClaw llama si el lanzamiento falla después.
  • El motor legacy integrado es deliberadamente mínimo: ingest no hace nada porque el gestor de sesiones persiste los mensajes, assemble pasa directamente al pipeline existente de saneamiento, validación y límite, compact delega en el resumen integrado, y el hook posterior al turno no hace nada; no registra herramientas ni añade nada al prompt del sistema.
ownsCompaction: false no significa que OpenClaw recurra automáticamente a la ruta de compactación del motor legacy.

Escribir un motor

Un plugin registra un motor con un id, un nombre, si posee la compactación y los parámetros de host que acepta; OpenClaw cruza esa declaración con los campos disponibles para cada método del ciclo de vida, de modo que nunca se inyectan claves no declaradas o desconocidas, y un motor que omite la declaración recibe todos los campos actuales del host. Para turnos admitidos duraderos, un motor declara ambas semánticas de transcripción e implementa un método de commit como una única escritura atómica e idempotente indexada por una clave de avance, que devuelve un estado committed en la primera escritura y un estado duplicate cuando un reintento del host presenta la misma clave; el payload cubre solo el rango que va desde la entrada del usuario admitida hasta la entrada terminal aceptada, y el historial anterior se lee a través del cursor de la transcripción. Sin la declaración completa y el método, OpenClaw usa la ruta legacy para todo ese turno lógico, reintentos incluidos, deja sin cambios el slot configurado y vuelve a probar el motor en el siguiente turno. El resultado de assemble lleva los mensajes, un recuento estimado de tokens, un añadido opcional al prompt del sistema, un flag de autoridad del prompt que decide qué estimación usa la comprobación previa de desbordamiento, y un ciclo de vida de proyección opcional para hosts con hilos de backend persistentes.

Requisitos y fallos

  • Un motor puede declarar requisitos de capacidades del host, por ejemplo que debe controlar el prompt real a través de assemble; las ejecuciones de agente nativas e integradas cumplen esa capacidad, mientras que los backends genéricos de línea de comandos no, así que un motor que la exige se rechaza antes de que arranque el proceso, fallando en modo cerrado con un mensaje descriptivo.
  • Si falta un motor que no es legacy, no supera la validación del contrato, lanza una excepción durante su creación o desde un método del ciclo de vida, OpenClaw lo pone en cuarentena durante el proceso actual del gateway, degrada el trabajo de contexto a legacy para que las respuestas continúen y registra el error con la operación fallida para que el operador pueda reparar, actualizar o desactivar el plugin.
  • Poseer la compactación desactiva, para esa ejecución, la compactación automática integrada dentro del intento y la comprobación previa genérica de desbordamiento antes del prompt, lo que hace al motor responsable de la compactación manual, la recuperación ante desbordamientos y cualquier trabajo proactivo; no poseerla deja disponible la compactación automática integrada, pero sigue enviando al motor la compactación manual y la recuperación ante desbordamientos, y por eso un método compact que no hace nada es peligroso.

La compactación en OpenClaw es el comportamiento en el que delega el motor legacy, y el contexto de OpenClaw es lo que se ensambla.

Seleccionar y deseleccionar

El slot es exclusivo en tiempo de ejecución: solo se resuelve un motor registrado para una ejecución o compactación determinada, aunque los demás plugins de motor activados siguen cargándose y ejecutando su código de registro. Desinstalar el plugin seleccionado actualmente en el slot lo restablece al valor predeterminado, y el mismo restablecimiento se aplica al slot de memoria, así que no hace falta editar la configuración a mano. Cambiar de motor no reescribe las sesiones existentes; siguen con su historial actual mientras el nuevo motor se encarga de las ejecuciones futuras. Los plugins de memoria son un slot aparte que proporciona búsqueda y recuperación, y un motor puede recurrir a ellos durante el ensamblado mediante el helper documentado en lugar de meterse en su estructura interna. Los plugins de OpenClaw cubre el sistema de plugins y la búsqueda en memoria de OpenClaw, la parte de recuperación.

En Diali

En Diali, la configuración del runtime se genera desde el panel y se reemplaza en cada versión, así que la selección del motor forma parte de esa configuración generada y no de un archivo que los clientes editan a mano. OpenClaw alojado en Diali describe el asistente alojado y la seguridad en Diali, el límite que rodea cada runtime.

  • Ingest, assemble, compact y el hook posterior al turno: cuatro puntos, un contrato.
  • Un motor roto queda en cuarentena; legacy mantiene al agente respondiendo.
  • Declara la semántica de transcripción o el turno usará legacy sin avisar.
Empezar

Deja de leer sobre ello y crea el tuyo

Configura un agente, elige un canal y ponlo a trabajar dentro de la aplicación que ya tienes abierta.