Cómo se crea el prompt del sistema
OpenClaw ensambla su propio prompt del sistema en cada ejecución. Incluye:- Lista de herramientas + descripciones breves
- Lista de Skills (solo metadatos; las instrucciones se cargan bajo demanda con
read). Los turnos nativos de Codex reciben el bloque compacto de Skills como instrucciones de desarrollador para la colaboración limitadas al turno; otros entornos de ejecución lo reciben en la superficie normal del prompt. Limitado porskills.limits.maxSkillsPromptChars, con una anulación opcional por agente enagents.entries.*.skillsLimits.maxSkillsPromptChars. - Instrucciones de actualización automática
- Espacio de trabajo + archivos de arranque (
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md,HEARTBEAT.md,BOOTSTRAP.mdcuando es nuevo, además deMEMORY.mdcuando está presente). Los archivos grandes inyectados se truncan medianteagents.defaults.bootstrapMaxChars(valor predeterminado:20000); la inyección total de arranque está limitada poragents.defaults.bootstrapTotalMaxChars(valor predeterminado:60000).- Los turnos nativos de Codex no pegan
MEMORY.mdsin procesar cuando las herramientas de memoria están disponibles para ese espacio de trabajo; en su lugar, reciben un pequeño puntero de memoria en las instrucciones de desarrollador para la colaboración limitadas al turno y usan las herramientas de memoria bajo demanda. Si las herramientas están deshabilitadas, la búsqueda en memoria no está disponible o el espacio de trabajo activo difiere del espacio de trabajo de memoria del agente,MEMORY.mdrecurre a la ruta normal de contexto de turno limitado. - El archivo raíz
memory.mden minúsculas nunca se inyecta. Es una entrada de reparación heredada paraopenclaw doctor --fix, que la migra aMEMORY.md. - Los archivos diarios
memory/*.mdno forman parte del prompt de arranque normal; permanecen disponibles bajo demanda mediante las herramientas de memoria en los turnos ordinarios. Las ejecuciones del modelo durante el restablecimiento o el inicio pueden anteponer un bloque de contexto de inicio de un solo uso con memoria diaria reciente para ese primer turno, controlado poragents.defaults.startupContext. Los mensajes de chat simples/newy/resetse confirman sin invocar el modelo. - Los extractos posteriores a la Compaction de
AGENTS.mdrequieren la activación explícita medianteagents.defaults.compaction.postCompactionSections; los plugins pueden añadir otro contexto mediantebefore_prompt_build.
- Los turnos nativos de Codex no pegan
- Hora (UTC + zona horaria del usuario)
- Etiquetas de respuesta + comportamiento de Heartbeat
- Metadatos del entorno de ejecución (host/SO/modelo/razonamiento)
Qué se contabiliza en la ventana de contexto
Todo lo que recibe el modelo se contabiliza para el límite de contexto:- Prompt del sistema (todas las secciones anteriores)
- Historial de la conversación (mensajes del usuario + del asistente)
- Llamadas a herramientas y resultados de herramientas
- Archivos adjuntos/transcripciones (imágenes, audio, archivos)
- Resúmenes de Compaction y artefactos de poda
- Envoltorios del proveedor o encabezados de seguridad (no visibles, pero igualmente contabilizados)
agents.defaults.contextLimits (anulaciones por agente en
agents.entries.*.contextLimits):
Estos son extractos limitados del entorno de ejecución y bloques inyectados que son propiedad de este,
independientes de los límites de arranque, los límites del contexto de inicio y los límites
del prompt de Skills.
OpenClaw deriva el límite activo de los resultados de herramientas a partir de la ventana de contexto
efectiva del modelo:
16000 caracteres por debajo de
100K tokens, 32000 caracteres con 100K+ tokens y 64000 caracteres con 200K+ tokens.
La protección de proporción del contexto del entorno de ejecución también limita un único resultado de herramienta al 30% de la
ventana de contexto.
Las ventanas grandes de los proveedores no se habilitan automáticamente cuando alteran considerablemente
el coste o la latencia. Por ejemplo, los modelos directos OpenAI GPT-5.5 y GPT-5.6
publican una ventana total de 1050000 tokens, pero OpenClaw establece de forma predeterminada su presupuesto activo
del entorno de ejecución en 272000 tokens. El presupuesto de entrada opcional 922000 reserva la
asignación completa de salida de 128000, y OpenAI aplica precios superiores por contexto largo
a toda la solicitud una vez que la entrada supera los 272000 tokens. Consulte
Valores predeterminados de la ventana de contexto de OpenAI.
Para las imágenes, OpenClaw reduce la resolución de las cargas de imágenes de transcripciones y herramientas antes de
las llamadas al proveedor. Ajústelo con agents.defaults.imageMaxDimensionPx (valor predeterminado:
1200):
- Los valores más bajos reducen el uso de tokens de visión y el tamaño de la carga.
- Los valores más altos conservan más detalle visual en capturas de pantalla con abundante OCR o elementos de interfaz.
/context list o /context detail. Consulte
Contexto.
Cómo consultar el uso actual de tokens
En el chat:/status-> tarjeta de estado con abundantes emojis que muestra el modelo de la sesión, el uso del contexto, los tokens de entrada/salida de la última respuesta y el coste estimado cuando los precios locales están configurados para el modelo activo./usage off|tokens|full-> añade un pie de uso por respuesta a cada respuesta. Se conserva por sesión (almacenado comoresponseUsage)./usage reset(alias:inherit,clear,default) borra la anulación de la sesión para que vuelva a heredar el valor predeterminado configurado./usage tokensmuestra los detalles de tokens/caché del turno./usage fullmuestra detalles compactos del modelo/contexto/coste; el coste estimado solo aparece cuando OpenClaw dispone de metadatos de uso y precios locales para el modelo activo. Los diseños personalizados demessages.usageTemplatepueden incluir campos de tokens/caché.
/usage cost-> resumen local de costes a partir de los registros de sesión de OpenClaw.
- TUI/TUI web: se admiten
/statusy/usage. - CLI:
openclaw status --usageyopenclaw channels listmuestran ventanas normalizadas de cuota del proveedor (X% left, no costes por respuesta). Proveedores actuales con ventanas de uso: Claude (Anthropic), ClawRouter, Copilot (GitHub), DeepSeek, Gemini (Google Gemini CLI), MiniMax, OpenAI, Xiaomi, Xiaomi Token Plan y z.ai.
input_tokens/output_tokens como prompt_tokens/completion_tokens, por lo que
los nombres de campo específicos del transporte no modifican /status, /usage ni los resúmenes
de sesión. También se normaliza el uso de Gemini CLI: el analizador predeterminado stream-json
lee los eventos message del asistente, y stats.cached se asigna a
cacheRead, con stats.input_tokens - stats.cached cuando la CLI omite
un campo stats.input explícito. Las anulaciones JSON heredadas siguen leyendo el texto de la respuesta
desde response.
Para el tráfico nativo de Responses de la familia OpenAI, los alias de uso de WebSocket/SSE se
normalizan del mismo modo, y los totales recurren a la suma normalizada de entrada + salida
cuando total_tokens falta o es 0.
Cuando la instantánea de la sesión actual contiene pocos datos, /status y session_status
pueden recuperar los contadores de tokens/caché y la etiqueta del modelo activo del entorno de ejecución a partir del
registro de uso de transcripción más reciente. Los valores activos distintos de cero siguen
teniendo prioridad sobre los valores alternativos de la transcripción, y los totales de la transcripción
orientados al prompt que sean mayores pueden prevalecer cuando los totales almacenados faltan o son inferiores.
La autenticación de uso para las ventanas de cuota del proveedor procede primero de los hooks
específicos del proveedor; si un proveedor no dispone de un hook (o el hook no resuelve un token),
OpenClaw recurre a las credenciales OAuth/clave de API coincidentes de los perfiles de
autenticación, el entorno o la configuración.
Las entradas de transcripción del asistente conservan la misma estructura de uso normalizada,
incluido usage.cost cuando el modelo activo tiene precios configurados y el
proveedor devuelve metadatos de uso. Esto proporciona a /usage cost y
al estado de sesión basado en transcripciones una fuente estable incluso después de que desaparezca el estado
activo del entorno de ejecución.
OpenClaw mantiene la contabilidad de uso del proveedor separada de la instantánea actual del
contexto. El usage.total del proveedor puede incluir entrada en caché, salida y
varias llamadas al modelo dentro del bucle de herramientas, por lo que resulta útil para costes y telemetría, pero
puede sobreestimar la ventana de contexto activa. Las vistas y los diagnósticos del contexto utilizan
la instantánea del prompt más reciente (promptTokens, o la última llamada al modelo cuando no hay
ninguna instantánea de prompt disponible) para context.used.
Estimación de costes (cuando se muestra)
Los costes se estiman a partir de la configuración de precios del modelo:input, output, cacheRead y
cacheWrite. Si faltan los precios, /usage full omite el coste; utilice
/usage tokens o un messages.usageTemplate personalizado cuando necesite
detalles de tokens/caché en cada respuesta. La visualización del coste no se limita a la
autenticación mediante clave de API: los proveedores que no usan claves de API, como aws-sdk, pueden mostrar el coste estimado cuando
la entrada de su modelo configurado incluye precios locales y el proveedor
devuelve metadatos de uso.
Después de que los procesos auxiliares y los canales alcancen la ruta de disponibilidad del Gateway, OpenClaw inicia un
proceso opcional en segundo plano para obtener precios de las referencias de modelos configuradas que aún no
dispongan de precios locales. Este proceso obtiene los catálogos remotos de precios de OpenRouter y
LiteLLM. Configure models.pricing.enabled: false para omitir la obtención de esos
catálogos en redes sin conexión o restringidas; las entradas explícitas de
models.providers.*.models[].cost siguen determinando las estimaciones locales de costes.
Impacto del TTL de caché y la poda
El almacenamiento en caché del prompt del proveedor solo se aplica dentro de la ventana de TTL de la caché. OpenClaw puede ejecutar opcionalmente la poda por TTL de caché: poda la sesión una vez que el TTL de la caché ha caducado y luego restablece la ventana de caché para que las solicitudes posteriores reutilicen el contexto recién almacenado en caché en lugar de volver a almacenar en caché todo el historial. Esto reduce los costes de escritura en caché cuando una sesión permanece inactiva más allá del TTL. Configúrelo en Configuración del Gateway y consulte los detalles del comportamiento en Poda de sesiones. Heartbeat puede mantener la caché activa durante periodos de inactividad. Si el TTL de caché del modelo es1h, configurar el intervalo de Heartbeat justo por debajo de ese valor (por ejemplo, 55m) puede
evitar volver a almacenar en caché todo el prompt, lo que reduce los costes de escritura en caché.
En configuraciones con varios agentes, puede mantener una configuración de modelo compartida y ajustar el comportamiento de
la caché por agente mediante agents.entries.*.params.cacheRetention.
Para obtener una guía completa de cada opción, consulte Almacenamiento en caché de prompts.
En los precios de la API de Anthropic, las lecturas de caché son considerablemente más económicas que los tokens
de entrada, mientras que las escrituras en caché se facturan con un multiplicador superior. Consulte los precios
de almacenamiento en caché de prompts de Anthropic para conocer las tarifas y los multiplicadores de TTL más recientes:
https://docs.anthropic.com/docs/build-with-claude/prompt-caching
Ejemplo: mantener activa una caché de 1h con Heartbeat
Ejemplo: tráfico mixto con estrategia de caché por agente
agents.entries.*.params se combina sobre params del modelo seleccionado, por lo que se
puede sobrescribir únicamente cacheRetention y heredar los demás valores predeterminados del modelo
sin cambios.
Contexto de 1M de Anthropic
OpenClaw configura los modelos Claude 4.x con disponibilidad general, como Opus 4.8, Opus 4.7, Opus 4.6 y Sonnet 4.6, con la ventana de contexto de 1M de Anthropic. No se necesitaparams.context1m: true para esos modelos.
context1m: true, pero OpenClaw ya no envía
el encabezado beta retirado context-1m-2025-08-07 de Anthropic para este ajuste ni
amplía a 1M los modelos Claude antiguos no compatibles.
Requisito: la credencial debe ser apta para el uso de contexto largo. De lo contrario,
Anthropic responde con un error de límite de tasa del proveedor para esa solicitud.
Si la autenticación con Anthropic se realiza mediante tokens de OAuth/suscripción
(sk-ant-oat-*), OpenClaw conserva los encabezados beta de Anthropic requeridos por OAuth
y elimina el beta retirado context-1m-* si aún permanece en una
configuración antigua.
Consejos para reducir la presión de tokens
- Usar
/compactpara resumir sesiones largas. - Recortar las salidas extensas de las herramientas en los flujos de trabajo.
- Reducir
agents.defaults.imageMaxDimensionPxpara sesiones con muchas capturas de pantalla. - Mantener breves las descripciones de las Skills (la lista de Skills se inserta en el prompt).
- Preferir modelos más pequeños para trabajos detallados y exploratorios.