System prompt
Un system prompt es el conjunto de instrucciones de alto nivel que defines antes de la conversación para fijar el rol, el tono, las reglas y el contexto con los que Claude debe responder durante toda la sesión.
Un system prompt es el bloque de instrucciones que estableces al inicio, separado de los mensajes del usuario, para condicionar el comportamiento de Claude durante toda la conversación. Define quién es el asistente, cómo debe responder, qué reglas seguir y qué contexto tener siempre presente. Es la capa donde el builder impone las reglas del juego antes de que el usuario escriba nada.
Cómo funciona
En la API de Claude, el system prompt no va dentro del array de messages, sino en un parámetro dedicado llamado system. Esto lo separa técnicamente del diálogo usuario-asistente:
client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system="Eres un asistente legal. Responde solo sobre derecho español y cita el artículo aplicable.",
messages=[{"role": "user", "content": "¿Puedo rescindir un contrato de alquiler?"}]
)Claude trata las instrucciones del system prompt con mayor prioridad que las peticiones normales del usuario. Es el mecanismo que Anthropic recomienda para asignar roles, marcar el tono, imponer restricciones y definir el formato de salida. En la app web y de escritorio, el equivalente son las instrucciones personalizadas o los system prompts de los Proyectos.
Por qué importa
Un system prompt bien construido es la diferencia entre respuestas erráticas y un comportamiento consistente. Al fijar el rol una sola vez, evitas repetir instrucciones en cada mensaje, ahorras tokens y reduces la deriva del modelo en conversaciones largas. Para quien construye productos sobre Claude, es la palanca principal para:
- Definir personalidad y tono coherentes con tu marca.
- Establecer límites: temas que no debe tratar, datos que no debe inventar, formato obligatorio.
- Inyectar contexto persistente: nombre de la empresa, políticas, glosario de producto.
- Reforzar seguridad: instrucciones que resisten mejor los intentos del usuario de reescribir el comportamiento.
Si quieres dominar cómo estructurar estas instrucciones desde el principio, existe un curso para empezar con Claude desde cero que cubre el diseño de prompts efectivos paso a paso.
Ejemplo práctico
Compara dos enfoques para un chatbot de soporte:
Sin system prompt: el usuario escribe "ayúdame" y Claude no sabe si es soporte técnico, ventas o consultas generales. Cada respuesta puede tomar un tono distinto.
Con system prompt:
system="""Eres el asistente de soporte de Acme SaaS.
Reglas:
- Responde en español, tono cercano pero profesional.
- Si no sabes algo, ofrece abrir un ticket, no inventes.
- No hables de precios; deriva a ventas@acme.com.
Formato: máximo 3 frases y un paso accionable."""El resultado es predecible y auditable. Puedes versionar ese bloque, probarlo y medir su impacto sin tocar el resto del código.
Errores comunes
Confundirlo con el primer mensaje del usuario. Meter las instrucciones dentro del rol user funciona a medias: Claude las respeta menos y compiten con las peticiones reales. Usa siempre el parámetro system.
Sobrecargarlo. Un system prompt de 2.000 palabras con contradicciones confunde al modelo. Sé claro, jerarquiza reglas y elimina lo redundante.
Creer que es inviolable. El system prompt condiciona con fuerza, pero no es un muro absoluto: usuarios hábiles pueden intentar sortearlo. Combínalo con validaciones externas si manejas datos sensibles.
Olvidar que consume ventana de contexto. Ocupa tokens en cada llamada, así que un prompt gigante reduce el espacio disponible para la conversación y encarece cada petición.
Preguntas frecuentes
¿Dónde se pone el system prompt en la API de Claude?
En un parámetro dedicado llamado system, separado del array messages. No se coloca dentro de un mensaje con rol user o assistant, sino como campo independiente en la llamada a la API.
¿El system prompt garantiza que Claude siempre obedezca?
No al 100%. Claude prioriza mucho las instrucciones del system prompt, pero no es una barrera infalible ante intentos de manipulación. Para datos sensibles conviene añadir validaciones externas al modelo.
¿Cuál es la diferencia entre system prompt y prompt de usuario?
El system prompt fija reglas de alto nivel para toda la conversación y tiene mayor prioridad; el prompt de usuario es cada petición concreta dentro del diálogo. Anthropic los separa técnicamente en la API.
¿El system prompt consume tokens de la ventana de contexto?
Sí. Se envía en cada llamada y ocupa espacio de la ventana de contexto, lo que reduce el margen para la conversación y aumenta el coste por petición si es muy largo.