Fundamentals
Mensaje del sistema
OpenClaw crea un prompt del sistema personalizado para cada ejecución de agente. El prompt es propiedad de OpenClaw y no usa el prompt predeterminado de pi-coding-agent.
OpenClaw ensambla el prompt y lo inyecta en cada ejecución de agente.
Los plugins de proveedor pueden aportar orientación de prompt compatible con caché sin reemplazar el prompt completo propiedad de OpenClaw. El runtime del proveedor puede:
- reemplazar un conjunto pequeño de secciones principales con nombre (
interaction_style,tool_call_style,execution_bias) - inyectar un prefijo estable por encima del límite de caché del prompt
- inyectar un sufijo dinámico por debajo del límite de caché del prompt
Usa contribuciones propiedad del proveedor para ajustes específicos de familias de modelos. Conserva la
mutación de prompt heredada before_prompt_build por compatibilidad o para cambios de prompt
verdaderamente globales, no para el comportamiento normal del proveedor.
La superposición de la familia OpenAI GPT-5 mantiene pequeña la regla central de ejecución y agrega orientación específica del modelo para fijación de persona, salida concisa, disciplina de herramientas, búsqueda paralela, cobertura de entregables, verificación, contexto faltante e higiene de herramientas de terminal.
Estructura
El prompt es intencionalmente compacto y usa secciones fijas:
- Herramientas: recordatorio de fuente de verdad para herramientas estructuradas más orientación de uso de herramientas en runtime.
- Sesgo de ejecución: orientación compacta de seguimiento: actuar durante el turno ante solicitudes accionables, continuar hasta terminar o quedar bloqueado, recuperarse de resultados débiles de herramientas, comprobar en vivo el estado mutable y verificar antes de finalizar.
- Seguridad: recordatorio breve de barreras para evitar conductas de búsqueda de poder o eludir la supervisión.
- Skills (cuando estén disponibles): indica al modelo cómo cargar instrucciones de Skills bajo demanda.
- Autoactualización de OpenClaw: cómo inspeccionar la configuración de forma segura con
config.schema.lookup, parchear la configuración conconfig.patch, reemplazar la configuración completa conconfig.applyy ejecutarupdate.runsolo ante una solicitud explícita del usuario. La herramientagateway, solo para el propietario, también rechaza reescribirtools.exec.ask/tools.exec.security, incluidos los alias heredadostools.bash.*que se normalizan a esas rutas exec protegidas. - Espacio de trabajo: directorio de trabajo (
agents.defaults.workspace). - Documentación: ruta local a la documentación de OpenClaw (repositorio o paquete npm) y cuándo leerla.
- Archivos del espacio de trabajo (inyectados): indica que los archivos de arranque se incluyen a continuación.
- Sandbox (cuando está habilitado): indica runtime aislado, rutas de sandbox y si exec con privilegios elevados está disponible.
- Fecha y hora actuales: solo zona horaria (estable para caché; el reloj en vivo proviene de
session_status). - Etiquetas de respuesta: sintaxis opcional de etiquetas de respuesta para proveedores compatibles.
- Heartbeats: prompt de Heartbeat y comportamiento de ack, cuando los Heartbeats están habilitados para el agente predeterminado.
- Runtime: host, SO, node, modelo, raíz del repositorio (cuando se detecte), nivel de pensamiento (una línea).
- Razonamiento: nivel de visibilidad actual + pista del interruptor /reasoning.
OpenClaw mantiene el contenido estable grande, incluido Contexto del proyecto, por encima del límite interno de caché del prompt. Las secciones volátiles de canal/sesión, como orientación de incrustación de Control UI, Mensajería, Voz, Contexto de chat grupal, Reacciones, Heartbeats y Runtime, se anexan por debajo de ese límite para que los backends locales con cachés de prefijo puedan reutilizar el prefijo estable del espacio de trabajo entre turnos de canal. Las descripciones de herramientas también deberían evitar incrustar nombres de canales actuales cuando el esquema aceptado ya contiene ese detalle de runtime.
La sección Herramientas también incluye orientación de runtime para trabajos de larga duración:
- usar Cron para seguimiento futuro (
check back later, recordatorios, trabajo recurrente) en lugar de bucles de espera conexec, trucos de demorayieldMso sondeos repetidos deprocess - usar
exec/processsolo para comandos que comienzan ahora y siguen ejecutándose en segundo plano - cuando el despertar automático al completarse esté habilitado, iniciar el comando una vez y confiar en la ruta de despertar basada en push cuando emita salida o falle
- usar
processpara registros, estado, entrada o intervención cuando necesites inspeccionar un comando en ejecución - si la tarea es más grande, preferir
sessions_spawn; la finalización del subagente está basada en push y se autoanuncia al solicitante - no sondear
subagents list/sessions_listen un bucle solo para esperar la finalización
Cuando la herramienta experimental update_plan está habilitada, Herramientas también indica al
modelo que la use solo para trabajo no trivial de varios pasos, mantenga exactamente un paso
in_progress y evite repetir todo el plan después de cada actualización.
Las barreras de seguridad del prompt del sistema son orientativas. Guían el comportamiento del modelo pero no aplican políticas. Usa políticas de herramientas, aprobaciones de exec, sandboxing y listas de permitidos por canal para aplicación estricta; los operadores pueden deshabilitarlas por diseño.
En canales con tarjetas/botones de aprobación nativos, el prompt de runtime ahora indica al
agente que confíe primero en esa UI de aprobación nativa. Solo debe incluir un comando manual
/approve cuando el resultado de la herramienta diga que las aprobaciones por chat no están disponibles o que
la aprobación manual es la única ruta.
Modos de prompt
OpenClaw puede renderizar prompts del sistema más pequeños para subagentes. El runtime establece un
promptMode para cada ejecución (no es una configuración orientada al usuario):
full(predeterminado): incluye todas las secciones anteriores.minimal: usado para subagentes; omite Skills, Recuperación de memoria, Autoactualización de OpenClaw, Alias de modelo, Identidad del usuario, Etiquetas de respuesta, Mensajería, Respuestas silenciosas y Heartbeats. Herramientas, Seguridad, Espacio de trabajo, Sandbox, Fecha y hora actuales (cuando se conozcan), Runtime y contexto inyectado permanecen disponibles.none: devuelve solo la línea de identidad base.
Cuando promptMode=minimal, los prompts inyectados adicionales se etiquetan como Contexto de subagente
en lugar de Contexto de chat grupal.
Para ejecuciones de respuesta automática de canal, OpenClaw puede omitir la sección genérica Respuestas silenciosas
cuando el contexto de chat directo/grupal ya incluye el comportamiento NO_REPLY
resuelto y específico de la conversación. Esto evita repetir la mecánica de tokens
tanto en el prompt global del sistema como en el contexto del canal.
Instantáneas de prompts
OpenClaw mantiene instantáneas de prompt confirmadas para la ruta feliz del runtime de Codex bajo
test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Renderizan
parámetros seleccionados de hilo/turno del servidor de la aplicación más una pila reconstruida de capas de prompt
vinculadas al modelo para turnos directos de Telegram, grupales de Discord y de Heartbeat. Esa pila
incluye un fixture fijado del prompt de modelo Codex gpt-5.5, generado a partir de la forma
del catálogo/caché de modelos de Codex, el texto de desarrollador de permisos de ruta feliz de Codex,
instrucciones de desarrollador de OpenClaw, instrucciones de modo de colaboración acotadas al turno
cuando OpenClaw las proporciona, entrada del turno del usuario y referencias a las especificaciones dinámicas de herramientas.
Actualiza el fixture fijado del prompt de modelo Codex con
pnpm prompt:snapshots:sync-codex-model. De forma predeterminada, el script busca
la caché de runtime de Codex en $CODEX_HOME/models_cache.json, luego
~/.codex/models_cache.json y solo entonces recurre a la convención del checkout de Codex
del mantenedor en ~/code/codex/codex-rs/models-manager/models.json. Si
ninguna de esas fuentes existe, el comando sale sin cambiar el fixture confirmado.
Pasa --catalog <path> para actualizar desde un archivo específico models_cache.json
o models.json.
Estas instantáneas todavía no son una captura sin procesar byte a byte de una solicitud de OpenAI. Codex
puede agregar contexto de espacio de trabajo propiedad del runtime, como AGENTS.md, contexto de entorno,
memorias, instrucciones de app/plugin e instrucciones integradas del modo de colaboración
Default dentro del runtime de Codex después de que OpenClaw envía los parámetros de hilo y turno.
Regenerarlas con pnpm prompt:snapshots:gen y verificar la deriva con
pnpm prompt:snapshots:check. CI ejecuta la comprobación de deriva en el shard de límite
adicional para que los cambios de prompt y las actualizaciones de instantáneas permanezcan vinculados al mismo
PR.
Inyección de arranque del espacio de trabajo
Los archivos de arranque se recortan y se anexan bajo Contexto del proyecto para que el modelo vea contexto de identidad y perfil sin necesitar lecturas explícitas:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(solo en espacios de trabajo completamente nuevos)MEMORY.mdcuando esté presente
Todos estos archivos se inyectan en la ventana de contexto en cada turno, salvo que
aplique una compuerta específica del archivo. HEARTBEAT.md se omite en ejecuciones normales cuando
los Heartbeats están deshabilitados para el agente predeterminado o
agents.defaults.heartbeat.includeSystemPromptSection es false. Mantén los archivos inyectados
concisos, especialmente MEMORY.md, que puede crecer con el tiempo y provocar
uso de contexto inesperadamente alto y Compaction más frecuente.
Cuando una sesión se ejecuta en el arnés nativo de Codex, Codex carga AGENTS.md
mediante su propio descubrimiento de documentación de proyecto. OpenClaw aún resuelve los demás
archivos de arranque y los reenvía como instrucciones de configuración de Codex, de modo que SOUL.md,
TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md y
MEMORY.md mantienen el mismo rol de contexto del espacio de trabajo sin duplicar
AGENTS.md.
Los archivos grandes se truncan con un marcador. El tamaño máximo por archivo se controla mediante
agents.defaults.bootstrapMaxChars (predeterminado: 12000). El contenido total de arranque inyectado
entre archivos está limitado por agents.defaults.bootstrapTotalMaxChars
(predeterminado: 60000). Los archivos faltantes inyectan un marcador breve de archivo faltante. Cuando ocurre truncamiento,
OpenClaw puede inyectar un aviso conciso de advertencia en el prompt del sistema; contrólalo con
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
predeterminado: once). Los recuentos detallados sin procesar/inyectados permanecen en diagnósticos como
/context, /status, doctor y registros.
Las sesiones de subagente solo inyectan AGENTS.md y TOOLS.md (otros archivos de arranque
se filtran para mantener pequeño el contexto del subagente).
Los hooks internos pueden interceptar este paso mediante agent:bootstrap para mutar o reemplazar
los archivos de arranque inyectados (por ejemplo, cambiar SOUL.md por una persona alternativa).
Si quieres que el agente suene menos genérico, empieza con Guía de personalidad de SOUL.md.
Para inspeccionar cuánto aporta cada archivo inyectado (sin procesar frente a inyectado, truncamiento, más sobrecarga del esquema de herramientas), usa /context list o /context detail. Consulta Contexto.
Manejo del tiempo
El prompt del sistema incluye una sección dedicada Fecha y hora actuales cuando se conoce la zona horaria del usuario. Para mantener estable la caché del prompt, ahora solo incluye la zona horaria (sin reloj dinámico ni formato de hora).
Usa session_status cuando el agente necesite la hora actual; la tarjeta de estado
incluye una línea de marca de tiempo. La misma herramienta puede establecer opcionalmente una anulación de modelo por sesión
(model=default la borra).
Configurar con:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Consulta Fecha y hora para ver detalles completos del comportamiento.
Skills
Cuando existen Skills elegibles, OpenClaw inyecta una lista compacta de Skills disponibles
(formatSkillsForPrompt) que incluye la ruta de archivo de cada Skill. El
prompt indica al modelo que use read para cargar el SKILL.md en la ubicación indicada
(espacio de trabajo, administrada o incluida). Si no hay Skills elegibles, se omite la
sección Skills.
La elegibilidad incluye compuertas de metadatos de Skill, comprobaciones de entorno/configuración de runtime
y la lista efectiva de Skills permitidas del agente cuando agents.defaults.skills o
agents.list[].skills está configurado.
Las Skills incluidas en plugins son elegibles solo cuando su plugin propietario está habilitado. Esto permite que los plugins de herramientas expongan guías operativas más profundas sin incrustar toda esa orientación directamente en cada descripción de herramienta.
<available_skills>
<skill>
<name>...</name>
<description>...</description>
<location>...</location>
</skill>
</available_skills>
Esto mantiene pequeño el prompt base y, al mismo tiempo, permite el uso dirigido de Skills.
El presupuesto de la lista de Skills es responsabilidad del subsistema de Skills:
- Valor predeterminado global:
skills.limits.maxSkillsPromptChars - Anulación por agente:
agents.list[].skillsLimits.maxSkillsPromptChars
Los extractos genéricos acotados en tiempo de ejecución usan una superficie diferente:
agents.defaults.contextLimits.*agents.list[].contextLimits.*
Esa separación mantiene el dimensionamiento de Skills separado del dimensionamiento de lectura/inyección en tiempo de ejecución, como memory_get, resultados de herramientas en vivo y actualizaciones de AGENTS.md posteriores a Compaction.
Documentación
El prompt del sistema incluye una sección Documentación. Cuando la documentación local está disponible, apunta al directorio local de documentación de OpenClaw (docs/ en un checkout de Git o la documentación incluida en el paquete npm). Si la documentación local no está disponible, recurre a https://docs.openclaw.ai.
La misma sección también incluye la ubicación del código fuente de OpenClaw. Los checkouts de Git exponen la raíz local del código fuente para que el agente pueda inspeccionar el código directamente. Las instalaciones de paquetes incluyen la URL del código fuente en GitHub e indican al agente que revise allí el código fuente cuando la documentación esté incompleta u obsoleta. El prompt también menciona el espejo público de la documentación, el Discord de la comunidad y ClawHub (https://clawhub.ai) para descubrir Skills. Indica al modelo que consulte primero la documentación para comportamiento, comandos, configuración o arquitectura de OpenClaw, y que ejecute openclaw status por sí mismo cuando sea posible (preguntando al usuario solo cuando no tenga acceso). Para la configuración en concreto, dirige a los agentes a la acción de herramienta gateway config.schema.lookup para obtener documentación y restricciones exactas a nivel de campo, y luego a docs/gateway/configuration.md y docs/gateway/configuration-reference.md para orientación más amplia.