<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Juan Irrazabal</title>
    <description>The latest articles on DEV Community by Juan Irrazabal (@juan_irrazabal_c4df8f6338).</description>
    <link>https://dev.to/juan_irrazabal_c4df8f6338</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2481371%2F36f3dd67-2f56-4055-acbc-471f8fd1f97b.png</url>
      <title>DEV Community: Juan Irrazabal</title>
      <link>https://dev.to/juan_irrazabal_c4df8f6338</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/juan_irrazabal_c4df8f6338"/>
    <language>en</language>
    <item>
      <title>Desarrollo de Agentes con Amazon Strands Agents 🚀</title>
      <dc:creator>Juan Irrazabal</dc:creator>
      <pubDate>Sat, 20 Dec 2025 03:53:17 +0000</pubDate>
      <link>https://dev.to/juan_irrazabal_c4df8f6338/desarrollo-de-agentes-con-amazon-strands-agents-3o5f</link>
      <guid>https://dev.to/juan_irrazabal_c4df8f6338/desarrollo-de-agentes-con-amazon-strands-agents-3o5f</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introducción a la Inteligencia Agéntica&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;La conversación en torno a la Inteligencia Artificial está cambiando. Ya no se trata solo de lo que la IA puede “escribir”, sino de lo que puede hacer. Si eres desarrollador o arquitecto de soluciones, el desarrollo de agentes es el siguiente paso lógico en tu stack tecnológico.&lt;/p&gt;

&lt;p&gt;En este artículo, exploraremos cómo Amazon Strands Agents facilita este camino utilizando Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. ¿IA Generativa o IA Agéntica?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Es fundamental entender la diferencia para una automatización efectiva:&lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;IA Generativa:&lt;/strong&gt; Se enfoca en crear contenido como texto, imágenes, música, código u otros.&lt;br&gt;
    &lt;strong&gt;IA Agéntica:&lt;/strong&gt; Se refiere a software capaz de tomar decisiones de manera autónoma. Algunas de esas decisiones pueden incluir generación de contenido.&lt;br&gt;
    &lt;strong&gt;La clave:&lt;/strong&gt; La IA agéntica describe la capacidad , mientras que los Agentes de IA son la implementación concreta de esa autonomía.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;2. El Stack Tecnológico: Amazon Strands Agents&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Amazon Strands Agents es un SDK Open Source, trabaja con Python y Typescript, diseñado para crear y ejecutar agentes , permitiendo escalar desde pruebas locales hasta entornos de producción.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Es un SDK (Software Development Kit) de código abierto (Open Source).&lt;/li&gt;
&lt;li&gt;Permite tanto crear Agentes como ejecutar Agentes.&lt;/li&gt;
&lt;li&gt;Está diseñado para manejar desde casos simples hasta casos complejos.&lt;/li&gt;
&lt;li&gt;Puede utilizarse en entornos locales y de producción.&lt;/li&gt;
&lt;li&gt;La documentación oficial la pueden encontrar en esta url &lt;a href="https://strandsagents.com/latest/" rel="noopener noreferrer"&gt;https://strandsagents.com/latest/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;2.1 El Modelo de Operación&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Un agente de Strands opera fundamentalmente a través de tres componentes clave que trabajan en conjunto: Modelo, Herramientas e Instrucción.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Instrucción (El Propósito)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Se proporciona una instrucción en lenguaje natural que define la tarea para el agente. Por ejemplo, “Responder a una pregunta de un usuario final”.&lt;br&gt;
Implementar técnicas de Chain-of-Thought (CoT) dentro de las instrucciones del agente. En lugar de instrucciones genéricas, define claramente:&lt;br&gt;
    &lt;strong&gt;Rol:&lt;/strong&gt; “Eres un asistente especializado en X…”&lt;br&gt;
    &lt;strong&gt;Restricciones:&lt;/strong&gt; “Nunca inventes datos si no están en la Knowledge Base”.&lt;br&gt;
    &lt;strong&gt;Formato de salida:&lt;/strong&gt; “Responde siempre en formato JSON si la consulta es técnica”.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Modelo (El Cerebro)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;El agente utiliza un Modelo (típicamente un LLM o Modelo de Lenguaje Grande) como su núcleo de razonamiento.&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Herramientas (Las Acciones)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Las Herramientas son las capacidades externas con las que el agente puede interactuar para completar la tarea.&lt;br&gt;
Protocolo MCP: Strands utiliza este protocolo para proporcionar un “lenguaje” seguro y estandarizado para que los LLM se comuniquen con datos, aplicaciones y servicios externos.&lt;/p&gt;

&lt;p&gt;Ejemplos de categorías de herramientas: sistemas de archivos, herramientas de desarrollo, herramientas de productividad y comunicación, herramientas de IA especializadas.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;2.2 El Bucle de Interacción&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Un agente interactúa con su modelo y herramientas en un bucle continuo hasta que la tarea indicada en la solicitud se completa.&lt;br&gt;
Este bucle de interacción es fundamental para las capacidades de Strands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3ql8punrw0roldr5zhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc3ql8punrw0roldr5zhm.png" alt=" " width="683" height="277"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;2.3 La Mecánica: ¿Cómo Funciona Strands Agents?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;El proceso de implementación se puede resumir en una serie de pasos prácticos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paso 1: Instalar Strands Agents&lt;/strong&gt;&lt;br&gt;
Primero, asegúrate de tener el SDK en tu entorno de desarrollo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install strands-agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Paso 2: Crear el código, Seleccionar Modelo y Configuración&lt;/strong&gt;&lt;br&gt;
En este bloque definimos la lógica, el modelo de Amazon Bedrock (como Claude 3) y las herramientas necesarias.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from strands_agents import Agent
from strands_agents.models import BedrockModel
# Seleccionar el Modelo (Amazon Bedrock)
# Configuramos el modelo fundacional que servirá de cerebro
model_bedrock = BedrockModel(
    model_id="anthropic.claude-3-sonnet-20240229-v1:0",
    region_name="us-east-1"
)
# Crear el código y Configuraciones Anexas
# Definimos las instrucciones y las 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 anexa para el bucle de interacción
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Paso 3: Ejecutar, Utilizar y Obtener Salida&lt;/strong&gt;&lt;br&gt;
El agente interactúa en un bucle hasta completar la tarea indicada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Paso 3 Ejecutar y Utilizar
# El agente entra en el bucle de interacción: Modelo -&amp;gt; Herramientas -&amp;gt; Instrucción
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.")
# Paso 4: Obtener la Salida
# Mostramos el resultado final de la tarea autónoma
print("--- Informe Final del Agente ---")
print(resultado)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;2.4 ¿Por qué usar este flujo?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Algunas caracteristicas  de este flujo son:&lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;Bucle de Interacción:&lt;/strong&gt; El agente no se detiene en la primera respuesta, utiliza el modelo y las herramientas repetidamente hasta cumplir la instrucción.&lt;br&gt;
    &lt;strong&gt;Protocolo MCP:&lt;/strong&gt; Permite que tu agente en Bedrock se conecte de forma estandarizada a sistemas de archivos o herramientas de desarrollo.&lt;br&gt;
    &lt;strong&gt;Escalabilidad:&lt;/strong&gt; Este mismo código puede llevarse de un ambiente local a una arquitectura de producción en AWS.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;2.5 Seguridad y control (Guardrails)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Un Guardrail actúa como una “malla de seguridad” entre el usuario y el modelo. Se configura principalmente en cuatro capas:&lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;Filtros de contenido:&lt;/strong&gt; Bloquean categorías como odio, insultos, contenido sexual o violencia.&lt;br&gt;
    &lt;strong&gt;Temas denegados (Denied Topics):&lt;/strong&gt; Evitan que el agente hable de temas específicos (ej. “no hables de criptomonedas” o “no menciones a la competencia”).&lt;br&gt;
    &lt;strong&gt;Filtros de información personal (PII):&lt;/strong&gt; Detectan y anonimizan datos como DNI, tarjetas de crédito o emails.&lt;br&gt;
    &lt;strong&gt;Filtros de palabras:&lt;/strong&gt; Bloquean términos específicos definidos por ti.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ejemplo 1:&lt;/strong&gt; Si estuvieras configurando un Tema Denegado para un asistente de atención al cliente de una tienda de electrónica, usarías algo como esto:&lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;Nombre del tema:&lt;/strong&gt; Comparación con la competencia.&lt;br&gt;
    &lt;strong&gt;Definición del tema:&lt;/strong&gt; “Cualquier consulta donde el usuario pregunte por precios, productos o servicios de competidores directos como Best Buy, MediaMarkt o Amazon Prime Shopping.”&lt;br&gt;
    &lt;strong&gt;Mensaje de bloqueo personalizado:&lt;/strong&gt; “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?”&lt;/p&gt;

&lt;p&gt;Cuando invocas al agente desde tu aplicación, debes pasar el ID del Guardrail que creaste en la consola para que se aplique en tiempo real.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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,
        # Aquí activas 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 que configuraste.
    return response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ejemplo 2:&lt;/strong&gt; Si quieres que el agente nunca vea o guarde el correo electrónico del usuario para cumplir con la GDPR, configurarías el Guardrail así:&lt;/p&gt;

&lt;p&gt;    &lt;strong&gt;Tipo de PII:&lt;/strong&gt; EMAIL&lt;br&gt;
    &lt;strong&gt;Acción:&lt;/strong&gt; BLOCK (Bloquea la entrada si hay un email) o MASK (Reemplaza el email por [EMAIL]).&lt;/p&gt;

&lt;p&gt;Resultado esperado:&lt;br&gt;
Usuario: “Hola, mi correo es &lt;a href="mailto:xx.yyy@gmail.com"&gt;xx.yyy@gmail.com&lt;/a&gt;, ¿puedes ayudarme?”&lt;br&gt;
Lo que recibe el modelo: “Hola, mi correo es [EMAIL], ¿puedes ayudarme?”&lt;/p&gt;

&lt;p&gt;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!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>amazonbedrock</category>
      <category>generativeai</category>
    </item>
  </channel>
</rss>
