Prompt del sistema
OpenClaw crea un prompt del sistema personalizado para cada ejecución del agente. El prompt es propiedad de OpenClaw y no usa el prompt predeterminado de pi-coding-agent. El prompt es ensamblado por OpenClaw e inyectado en cada ejecución del agente. Los plugins de proveedor pueden aportar guía de prompt consciente de caché sin reemplazar el prompt completo propiedad de OpenClaw. El runtime del proveedor puede:- reemplazar un pequeño conjunto 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
before_prompt_build para compatibilidad o para cambios de prompt verdaderamente globales, no para el comportamiento normal del proveedor.
Estructura
El prompt es intencionalmente compacto y usa secciones fijas:- Herramientas: recordatorio de la fuente de verdad de herramientas estructuradas más guía de runtime para el uso de herramientas.
- Seguridad: breve recordatorio de barreras de protección para evitar comportamiento de búsqueda de poder o elusión de 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, aplicar parches a la configuración conconfig.patch, reemplazar la configuración completa conconfig.applyy ejecutarupdate.runsolo a petición explícita del usuario. La herramientagateway, solo para propietarios, también se niega a reescribirtools.exec.ask/tools.exec.security, incluidas las aliases heredadastools.bash.*que se normalizan a esas rutas de ejecución 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 el runtime aislado, las rutas del sandbox y si la ejecución elevada está disponible.
- Fecha y hora actuales: hora local del usuario, zona horaria y formato de hora.
- Etiquetas de respuesta: sintaxis opcional de etiquetas de respuesta para proveedores compatibles.
- Heartbeats: prompt de heartbeat y comportamiento de acuse de recibo, cuando los heartbeats están habilitados para el agente predeterminado.
- Runtime: host, SO, node, modelo, raíz del repositorio (cuando se detecta), nivel de razonamiento (una línea).
- Razonamiento: nivel de visibilidad actual + sugerencia del toggle
/reasoning.
- usa cron para seguimiento futuro (
check back later, recordatorios, trabajo recurrente) en lugar de bucles de espera conexec, trucos de retraso conyieldMso sondeo repetido deprocess - usa
exec/processsolo para comandos que comienzan ahora y continúan ejecutándose en segundo plano - cuando la reactivación automática al completarse está habilitada, inicia el comando una vez y confía en la ruta de reactivación basada en push cuando emita salida o falle
- usa
processpara logs, estado, entrada o intervención cuando necesites inspeccionar un comando en ejecución - si la tarea es más grande, prefiere
sessions_spawn; la finalización del subagente es basada en push y se anuncia automáticamente al solicitante - no sondees
subagents list/sessions_listen un bucle solo para esperar la finalización
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 el plan completo después de cada actualización.
Las barreras de seguridad en el prompt del sistema son orientativas. Guían el comportamiento del modelo, pero no aplican la política. Usa la política de herramientas, las aprobaciones de ejecución, el sandboxing y las listas de permitidos de canales para una aplicación estricta; los operadores pueden desactivarlas por diseño.
En canales con tarjetas o botones de aprobación nativos, el prompt de runtime ahora indica al agente que confíe primero en esa IU 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 vía.
Modos de prompt
OpenClaw puede renderizar prompts del sistema más pequeños para subagentes. El runtime establece unpromptMode para cada ejecución (no es una configuración de cara al usuario):
full(predeterminado): incluye todas las secciones anteriores.minimal: se usa para subagentes; omite Skills, Recuperación de memoria, Autoactualización de OpenClaw, Aliases de modelos, Identidad del usuario, Etiquetas de respuesta, Mensajería, Respuestas silenciosas y Heartbeats. Herramientas, Seguridad, Espacio de trabajo, Sandbox, Fecha y hora actuales (cuando se conocen), Runtime y el contexto inyectado siguen estando disponibles.none: devuelve solo la línea de identidad base.
promptMode=minimal, los prompts inyectados adicionales se etiquetan como Contexto del subagente en lugar de Contexto de chat grupal.
Inyección de arranque del espacio de trabajo
Los archivos de arranque se recortan y se agregan en Contexto del proyecto para que el modelo vea el 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; en caso contrario,memory.mdcomo alternativa en minúsculas
HEARTBEAT.md se omite en ejecuciones normales cuando los heartbeats están deshabilitados para el agente predeterminado o cuando agents.defaults.heartbeat.includeSystemPromptSection es false. Mantén los archivos inyectados concisos, especialmente MEMORY.md, que puede crecer con el tiempo y provocar un uso de contexto inesperadamente alto y compactaciones más frecuentes.
Nota: los archivos diariosLos archivos grandes se truncan con un marcador. El tamaño máximo por archivo está controlado pormemory/*.mdno forman parte del Contexto del proyecto de arranque normal. En turnos normales se accede a ellos bajo demanda mediante las herramientasmemory_searchymemory_get, por lo que no cuentan contra la ventana de contexto a menos que el modelo los lea explícitamente. Los turnos simples/newy/resetson la excepción: el runtime puede anteponer memoria diaria reciente como un bloque único de contexto de inicio para ese primer turno.
agents.defaults.bootstrapMaxChars (predeterminado: 20000). El contenido total de arranque inyectado entre archivos está limitado por agents.defaults.bootstrapTotalMaxChars (predeterminado: 150000). Los archivos faltantes inyectan un breve marcador de archivo faltante. Cuando ocurre truncamiento, OpenClaw puede inyectar un bloque de advertencia en Contexto del proyecto; esto se controla con agents.defaults.bootstrapPromptTruncationWarning (off, once, always; predeterminado: once).
Las sesiones de subagentes solo inyectan AGENTS.md y TOOLS.md (los demás 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, intercambiar 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 (bruto frente a inyectado, truncamiento, además de la 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 de 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). Usasession_status cuando el agente necesite la hora actual; la tarjeta de estado incluye una línea de marca de tiempo. La misma herramienta también puede establecer opcionalmente una anulación de modelo por sesión (model=default la borra).
Configura con:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Cuando existen Skills aptas, OpenClaw inyecta una lista compacta de Skills disponibles (formatSkillsForPrompt) que incluye la ruta de archivo para cada Skill. El
prompt indica al modelo que use read para cargar el SKILL.md en la ubicación
indicada (espacio de trabajo, gestionado o integrado). Si no hay Skills aptas, se omite la sección Skills.
La aptitud incluye compuertas de metadatos de Skills, comprobaciones del entorno/configuración de runtime y la lista efectiva de Skills permitidas del agente cuando agents.defaults.skills o agents.list[].skills está configurado.
Documentación
Cuando está disponible, el prompt del sistema incluye una sección de Documentación que apunta al directorio local de documentación de OpenClaw (ya seadocs/ en el espacio de trabajo del repositorio o la documentación integrada del paquete npm) y también menciona el mirror público, el repositorio fuente, el Discord de la comunidad y ClawHub (https://clawhub.ai) para descubrir Skills. El prompt indica al modelo que consulte primero la documentación local para el comportamiento, los comandos, la configuración o la arquitectura de OpenClaw, y que ejecute openclaw status por sí mismo cuando sea posible (preguntando al usuario solo cuando no tenga acceso).