¿Qué es un system prompt?

Un system prompt es una forma de proporcionar contexto, instrucciones y directrices a Claude antes de presentarle una pregunta o tarea. Al utilizar un system prompt, puedes preparar el escenario para la conversación, especificando el rol, la personalidad, el tono u otra información relevante de Claude que le ayudará a comprender y responder mejor a la entrada del usuario.

Los system prompts pueden incluir:

  • Instrucciones y objetivos de la tarea
  • Rasgos de personalidad, roles y directrices de tono
  • Información contextual para la entrada del usuario
  • Restricciones de creatividad y orientación de estilo
  • Conocimiento externo, datos o material de referencia
  • Reglas, directrices y barandillas
  • Estándares y requisitos de verificación de salida

Beneficios de usar system prompts

Incorporar system prompts bien elaborados puede mejorar significativamente el rendimiento de Claude y la calidad de su salida. Algunos beneficios clave incluyen:

  1. Mejora del juego de roles y la consistencia del personaje: Al asignar a Claude un rol o personalidad específica a través de un system prompt, puede mantener ese personaje de manera más efectiva a lo largo de la conversación, exhibiendo respuestas más naturales y creativas mientras se mantiene en el personaje.
  2. Mayor adherencia a las reglas e instrucciones: Los system prompts pueden ayudar a Claude a comprender y seguir mejor las directrices, lo que hace menos probable que realice tareas prohibidas, genere contenido restringido o se desvíe de las instrucciones dadas.
  3. Mejor comprensión del contexto: Al proporcionar información de fondo relevante o material de referencia en el system prompt, puedes mejorar la comprensión de Claude de la entrada del usuario y permitirle generar respuestas más precisas y conscientes del contexto.
  4. Formato de salida personalizado: Los system prompts se pueden usar para especificar los formatos de salida deseados, como encabezados, listas, tablas o bloques de código, asegurando que las respuestas de Claude estén estructuradas y presentadas de una manera que mejor se adapte a tus necesidades.

Es importante tener en cuenta que, si bien los system prompts pueden aumentar la robustez y la resistencia de Claude contra comportamientos no deseados, no garantizan una protección completa contra jailbreaks o fugas. Sin embargo, proporcionan una capa adicional de orientación y control sobre la salida de Claude.


Cómo usar system prompts

Para usar system prompts con la API de Messages, establece el parámetro system en el texto de system prompt deseado. Aquí hay un ejemplo de llamada a la API:

Python
import anthropic

client = anthropic.Client(api_key="YOUR_API_KEY")

response = client.messages.create(
    model="claude-2.1",
    system="Responde solo en español.", # <-- system prompt
    messages=[
        {"role": "user", "content": "¡Hola, Claude!"} # <-- user prompt
    ]
)

print(response.message)

Para obtener más información, consulta nuestra documentación de la API de Messages.

Nota: También puedes usar system prompts en la Console, pero no en claude.ai.


Técnicas de prompting

Puedes aplicar las mismas técnicas de prompting que usarías en un user prompt a un system prompt en su lugar. Por ejemplo, puedes:

  1. Especificar el formato de salida: Proporcionar ejemplos de respuestas o instrucciones para patrones de salida deseados dentro del system prompt para guiar el comportamiento de Claude.
  2. Proporcionar documentos, guías y material de referencia: Incluir información relevante o contenido RAG en el system prompt para ayudar a Claude a generar respuestas más informadas y precisas.
  3. Usar etiquetas XML, especialmente para estructurar documentos largos: Usar etiquetas XML para organizar tu system prompt en secciones para mejorar la claridad. Al incorporar múltiples documentos o documentos extensos en el system prompt, puedes usar el formato XML de varios documentos para ayudar a Claude a comprender y utilizar mejor la información proporcionada.

Preguntas frecuentes

¿Cómo sé cuándo usar un system prompt vs. un user prompt?

¡El prompting es todo experimentación, así que te recomendamos que lo intentes de ambas formas! Pero en general, puedes pensar en los system prompts como un espacio para proporcionar orientación sobre la interacción general con Claude, y el turno user como parte de la interacción en sí, o cuando solo tienes una tarea única que deseas realizar.

¿Cómo puedo convertir mis prompts existentes de solo usuario para usar system prompts?

Para convertir tus prompts de solo user a system prompts, simplemente mueve cualquier contenido que no sea parte de la entrada del usuario al parámetro system en la API de Messages. Esto puede incluir instrucciones de tareas, pautas de personalidad, material de referencia o cualquier otra información contextual que ayude a preparar el escenario para la conversación. Te animamos a experimentar para ver qué funciona mejor en qué campo.

¿Dónde puedo usar system prompts?

Los system prompts están actualmente disponibles para su uso con los modelos Claude 3 y Claude 2.1 a través de nuestra API, Console, la API de Amazon Bedrock y la API de Google Cloud Vertex AI. No son compatibles con claude.ai en este momento.

¿Los system prompts hacen que mis prompts sean a prueba de jailbreaks o fugas?

Si bien Claude ya es altamente resistente a los jailbreaks y comportamientos no deseados debido a sus métodos de entrenamiento (por ejemplo, RLHF y Constitutional AI), los system prompts pueden mejorar aún más la capacidad de Claude para adherirse a las instrucciones y directrices. Sin embargo, no garantizan una protección completa contra jailbreaks o fugas.