Al crear chatbots de IA para casos de uso específicos, necesitas una forma de controlar cómo responde la IA. Las indicaciones del sistema son la clave para transformar una IA de propósito general en un asistente especializado que sigue pautas específicas y se mantiene en el tema.

El problema con las instrucciones a nivel de usuario
Podrías pensar que la solución es incluir todos tus requisitos en el propio mensaje del usuario. Por ejemplo, decirle a la IA en cada conversación que "mencione servicios de AWS" y "no mencione a la competencia". Este enfoque tiene limitaciones serias:
- Tendrías que anticipar cada posible pregunta y caso límite
- La lista de instrucciones se vuelve inmanejable y repetitiva
- Los usuarios ven todas las instrucciones internas, lo que hace que las conversaciones se vean desordenadas
- Los requisitos cambian según la pregunta específica que se esté haciendo

Indicaciones del sistema: un mejor enfoque
Las indicaciones del sistema resuelven este problema al darle a Claude un rol que interpretar. En lugar de enumerar qué hacer y qué no hacer específicamente, le dices a Claude que actúe como un tipo particular de profesional. La IA entonces responde como esa persona respondería naturalmente.

Las indicaciones del sistema ofrecen varios beneficios clave:
- Claude recibe orientación sobre cómo responder de manera consistente
- La IA adopta la mentalidad y las restricciones del rol especificado
- Las respuestas se mantienen enfocadas y alineadas con la marca automáticamente
- No necesitas anticipar cada escenario posible
Implementación de indicaciones del sistema
Para agregar una indicación del sistema a tu conversación con Claude, la pasas como parámetro a la función converse:
system_prompt = """
You are an AWS cloud support specialist. Your job is to answer user queries related
to cloud hosting services on AWS.
"""
response = client.converse(
modelId=model_id,
messages=messages,
system=[{"text": system_prompt}]
)La indicación del sistema se pasa como una lista que contiene un diccionario con una clave "text". Esto le indica a Claude qué rol adoptar antes de ver cualquier mensaje del usuario.
Creación de una función de chat flexible
Aquí tienes una función de chat reutilizable que maneja las indicaciones del sistema de manera elegante:
def chat(messages, system=None):
params = {"modelId": model_id, "messages": messages}
if system:
params["system"] = [{"text": system}]
response = client.converse(**params)
return response["output"]["message"]["content"][0]["text"]Este enfoque te permite incluir opcionalmente una indicación del sistema. Cuando no se proporciona ninguna indicación del sistema, Claude responde como su versión predeterminada. Cuando incluyes una, Claude adopta ese rol específico.
Las indicaciones del sistema en acción
La diferencia es inmediatamente evidente cuando pruebas la misma pregunta con y sin una indicación del sistema. Pregunta "¿Cómo hospedo una base de datos Postgres?" sin una indicación del sistema, y obtendrás una respuesta completa que cubre múltiples proveedores de nube y opciones de autohospedaje.

Con una indicación del sistema de especialista en soporte de AWS, la respuesta se enfoca exclusivamente en soluciones de AWS como RDS, Aurora e implementaciones basadas en EC2. No se menciona a la competencia, y la respuesta incluye pasos de configuración específicos de AWS.
Aún más impresionante es cómo las indicaciones del sistema manejan preguntas fuera de tema. Pide una receta de pan con la indicación de especialista en AWS activa, y Claude se niega educadamente mientras se mantiene en su personaje:

Detalles técnicos importantes
Al trabajar con indicaciones del sistema, ten en cuenta estos requisitos:
- Las indicaciones del sistema no pueden ser cadenas vacías: deben contener al menos un carácter
- El parámetro system espera una lista de diccionarios con claves "text"
- Las indicaciones del sistema se procesan antes de cualquier mensaje del usuario en la conversación
- Puedes cambiar el valor de
systemde nivel superior entre solicitudes, pero no a mitad de una sola lista demessages
Si has trabajado directamente con la API de Claude de Anthropic, es posible que sepas que algunos modelos de Claude admiten mensajes del sistema a mitad de conversación: agregar un mensaje con el rol system al array de messages en lugar de cambiar el campo de nivel superior. Esa función no está disponible en Amazon Bedrock. En este curso, siempre establecerás las instrucciones del sistema a través del parámetro system de nivel superior en cada llamada a converse.
Las indicaciones del sistema te brindan un control poderoso sobre el comportamiento de la IA sin sistemas de reglas complejos. Al asignarle a Claude un rol profesional específico, obtienes respuestas consistentes y apropiadas que siguen naturalmente las restricciones y la experiencia de ese rol.