Desarrollo de Agentes con Amazon Strands Agents 🚀
Source: Dev.to
IA Generativa o IA Agéntica
Es fundamental entender la diferencia para una automatización efectiva:
| Tipo | Descripción |
|---|---|
| IA Generativa | Se enfoca en crear contenido como texto, imágenes, música, código u otros. |
| IA Agéntica | Software capaz de tomar decisiones de manera autónoma; puede incluir generación de contenido. |
| Clave | La IA agéntica describe la capacidad, mientras que los Agentes de IA son la implementación concreta de esa autonomía. |
El Stack Tecnológico: Amazon Strands Agents
Amazon Strands Agents es un SDK open source que trabaja con Python y TypeScript, diseñado para crear y ejecutar agentes, permitiendo escalar desde pruebas locales hasta entornos de producción.
- SDK de código abierto.
- Permite crear y ejecutar agentes.
- Soporta casos simples y complejos.
- Funciona en entornos locales y de producción.
La documentación oficial está disponible en:
Modelo de Operación
Un agente de Strands opera mediante tres componentes clave que trabajan en conjunto:
-
Instrucción (El Propósito)
- Se proporciona una instrucción en lenguaje natural que define la tarea para el agente.
- Ejemplo: “Responder a una pregunta de un usuario final”.
- Chain‑of‑Thought (CoT) dentro de la instrucción:
- Rol: “Eres un asistente especializado en X…”.
- Restricciones: “Nunca inventes datos si no están en la Knowledge Base”.
- Formato de salida: “Responde siempre en formato JSON si la consulta es técnica”.
-
Modelo (El Cerebro)
- El agente utiliza un modelo de lenguaje grande (LLM) como núcleo de razonamiento.
-
Herramientas (Las Acciones)
- Capacidades externas con las que el agente puede interactuar para completar la tarea.
- Protocolo MCP: Strands utiliza este protocolo para proporcionar un “lenguaje” seguro y estandarizado que permite a los LLM comunicarse con datos, aplicaciones y servicios externos.
- Ejemplos de categorías de herramientas: sistemas de archivos, herramientas de desarrollo, herramientas de productividad y comunicación, herramientas de IA especializadas.
Bucle de Interacción
Un agente interactúa con su modelo y herramientas en un bucle continuo hasta que la tarea indicada en la solicitud se completa. Este bucle es fundamental para las capacidades de Strands.

La Mecánica: ¿Cómo Funciona Strands Agents?
El proceso de implementación se puede resumir en los siguientes pasos prácticos:
Paso 1 – Instalar Strands Agents
pip install strands-agents
Paso 2 – Crear el código, seleccionar modelo y configuración
from strands_agents import Agent
from strands_agents.models import BedrockModel
# Seleccionar el modelo (Amazon Bedrock)
model_bedrock = BedrockModel(
model_id="anthropic.claude-3-sonnet-20240229-v1:0",
region_name="us-east-1"
)
# Definir instrucciones y herramientas (MCP)
agente_analista = Agent(
model=model_bedrock,
instructions=(
"Eres un asistente técnico que analiza logs de servidores y sugiere soluciones."
),
tools=["fetch_logs_tool", "cloudwatch_reader"],
max_iterations=10 # Configuración del bucle de interacción
)
Paso 3 – Ejecutar, utilizar y obtener salida
print("Iniciando tarea del agente...")
resultado = agente_analista.run(
"Revisa los errores críticos de las últimas 2 horas en el clúster de producción."
)
print("--- Informe Final del Agente ---")
print(resultado)
¿Por qué usar este flujo?
| Característica | Beneficio |
|---|---|
| Bucle de Interacción | El agente no se detiene en la primera respuesta; utiliza modelo y herramientas repetidamente hasta cumplir la instrucción. |
| Protocolo MCP | Permite que tu agente en Bedrock se conecte de forma estandarizada a sistemas de archivos o herramientas de desarrollo. |
| Escalabilidad | El mismo código puede pasar de un ambiente local a una arquitectura de producción en AWS. |
Próximos pasos
- Explorar más herramientas MCP (bases de datos, APIs externas, etc.).
- Ajustar prompts con CoT para mejorar la precisión.
- Implementar monitoreo de los bucles de interacción en producción.
Con Strands Agents, la creación de agentes autónomos en AWS se vuelve tan sencilla como escribir unas pocas líneas de Python.
Seguridad y control (Guardrails)
Un Guardrail actúa como una “malla de seguridad” entre el usuario y el modelo. Se configura principalmente en cuatro capas:
- Filtros de contenido – Bloquean categorías como odio, insultos, contenido sexual o violencia.
- Temas denegados (Denied Topics) – Evitan que el agente hable de temas específicos (p. ej., “no hables de criptomonedas” o “no menciones a la competencia”).
- Filtros de información personal (PII) – Detectan y anonimicen datos como DNI, tarjetas de crédito o correos electrónicos.
- Filtros de palabras – Bloquean términos específicos definidos por ti.
Ejemplo 1
Configuración de un Tema Denegado para un asistente de atención al cliente de una tienda de electrónica.
Nombre del tema: Comparación con la competencia.
Definición del tema:
“Cualquier consulta donde el usuario pregunte por precios, productos o servicios de competidores directos como Best Buy, MediaMarkt o Amazon Prime Shopping.”
Mensaje de bloqueo personalizado:
“Lo siento, como asistente oficial de esta tienda, solo puedo proporcionarte información sobre nuestros propios productos y servicios. ¿En qué más puedo ayudarte?”
Al invocar al agente desde tu aplicación, pasa el ID del Guardrail creado en la consola para que se aplique en tiempo real.
import boto3
client = boto3.client('bedrock-agent-runtime')
def consultar_agente_con_seguridad(input_texto, session_id):
response = client.invoke_agent(
agentId='ID_DE_TU_AGENTE',
agentAliasId='ALIAS_ID',
sessionId=session_id,
inputText=input_texto,
# Activar el Guardrail creado previamente
guardrailIdentifier='abc123456789',
guardrailVersion='1',
enableTrace=True
)
# Si el Guardrail bloquea la respuesta, el evento 'trace' lo indicará
# o el texto de salida será el mensaje personalizado configurado.
return response
Ejemplo 2
Configuración para que el agente nunca vea o guarde el correo electrónico del usuario (cumplimiento GDPR).
| Tipo de PII | Acción |
|---|---|
BLOCK (bloquea la entrada si hay un email) OR MASK (reemplaza el email por [EMAIL]) |
Resultado esperado
- Usuario: “Hola, mi correo es xx.yyy@gmail.com, ¿puedes ayudarme?”
- Lo que recibe el modelo: “Hola, mi correo es
[EMAIL], ¿puedes ayudarme?”
Construir un agente funcional es solo el comienzo; el verdadero reto es hacerlo seguro, preciso y escalable. Implementar Guardrails y optimizar tus Knowledge Bases es lo que diferenciará una prueba de concepto de una solución lista para producción. ¡Lleva tu agente al siguiente nivel y empieza a construir aplicaciones de IA generativa que realmente transformen tu negocio!