Skip to content
Learning Lab · 6 min read

Construyendo Agentes de IA: Los Tres Patrones que Realmente Funcionan

Tres patrones de arquitectura para agentes de IA, desde el enrutamiento simple de herramientas hasta bucles de agente. Aprende cómo estructurar la llamada a herramientas, establecer límites de memoria y evitar los modos de falla más comunes, con código funcional.

AI Agent Architecture: Patterns, Tool Calling, Memory

El mes pasado vi a un agente usar 47 llamadas a la API para responder una pregunta que podría haber resuelto en dos. La configuración parecía razonable: llamada a herramientas habilitada, búfer de memoria en su lugar, manejo de errores en el papel. El agente simplemente no tenía idea de qué herramienta usar primero, seguía llamando a la misma y no tenía forma de saber que estaba en un bucle.

Esto es lo que sucede cuando construyes un agente sin comprender sus modos de falla reales. La arquitectura importa. Esto es lo que he aprendido al lanzar agentes en producción.

Los Tres Patrones Centrales

Un agente de IA necesita tres cosas para funcionar: una forma de decidir qué hacer, acceso a herramientas y memoria de lo que sucedió. La forma en que conectas estas tres cosas determina si tu agente funciona limpiamente o quema tokens persiguiendo su cola.

Patrón 1: Enrutamiento Simple (Decisión → Herramienta → Respuesta)

Esta es la base. El agente ve una solicitud del usuario, elige una herramienta, la ejecuta y devuelve un resultado. Sin bucles. Sin recursión. Punto de decisión único.

from anthropic import Anthropic

client = Anthropic()

def route_and_execute(user_message: str) -> str:
    tools = [
        {
            "name": "lookup_price",
            "description": "Obtener el precio actual de un producto",
            "input_schema": {
                "type": "object",
                "properties": {
                    "product_id": {"type": "string"}
                },
                "required": ["product_id"]
            }
        },
        {
            "name": "check_stock",
            "description": "Verificar inventario de un producto",
            "input_schema": {
                "type": "object",
                "properties": {
                    "product_id": {"type": "string"}
                },
                "required": ["product_id"]
            }
        }
    ]
    
    response = client.messages.create(
        model="claude-3-5-sonnet-20241022",
        max_tokens=1024,
        tools=tools,
        messages=[{
            "role": "user",
            "content": user_message
        }]
    )
    
    # Verificar tipo de respuesta
    for block in response.content:
        if block.type == "tool_use":
            tool_name = block.name
            tool_input = block.input
            
            # Ejecutar herramienta (implementación simulada)
            if tool_name == "lookup_price":
                result = f"Precio para {tool_input['product_id']}: $29.99"
            elif tool_name == "check_stock":
                result = f"Stock para {tool_input['product_id']}: 15 unidades"
            else:
                result = "Herramienta no encontrada"
            
            return result
    
    # Si no se llamó a ninguna herramienta, devolver respuesta de texto
    return response.content[0].text if response.content else ""

# Uso
response = route_and_execute("¿Cuál es el precio del producto ABC-123?")
print(response)

Esto funciona bien para tareas sencillas: consultas de atención al cliente, búsquedas de datos, decisiones únicas. Falla cuando la respuesta requiere múltiples pasos.

Patrón 2: Bucle Agente (Decidir → Herramienta → Evaluar → Decidir de Nuevo)

Cuando una tarea necesita varios pasos (investigar algo, luego calcular, luego formatear), necesitas un bucle. El agente toma una decisión, la ejecuta, recibe retroalimentación y decide qué hacer a continuación. La trampa: sin condiciones de salida, esto se vuelve infinito.

def agentic_loop(user_message: str, max_iterations: int = 5) -> str:
    tools = [
        {
            "name": "search_knowledge_base",
            "description": "Buscar información en documentos internos",
            "input_schema": {
                "type": "object",
                "properties": {
                    "query": {"type": "string"}
                },
                "required": ["query"]
            }
        },
        {
            "name": "calculate_metric",
            "description": "Realizar cálculo sobre datos",
            "input_schema": {
                "type": "object",
                "properties": {
                    "values": {"type": "array", "items": {"type": "number"}},
                    "operation": {"type": "string", "enum": ["sum", "average", "max"]}
                },
                "required": ["values", "operation"]
            }
        }
    ]
    
    messages = [{
        "role": "user",
        "content": user_message
    }]
    
    for iteration in range(max_iterations):
        response = client.messages.create(
            model="claude-3-5-sonnet-20241022",
            max_tokens=1024,
            tools=tools,
            messages=messages
        )
        
        # Verificar si tenemos una respuesta final
        if response.stop_reason == "end_turn":
            return response.content[0].text if response.content else ""
        
        # Procesar llamadas a herramientas
        if response.stop_reason == "tool_use":
            # Agregar respuesta del asistente al historial de mensajes
            messages.append({
                "role": "assistant",
                "content": response.content
            })
            
            # Ejecutar herramientas y recopilar resultados
            tool_results = []
            for block in response.content:
                if block.type == "tool_use":
                    # Ejecución simulada
                    if block.name == "search_knowledge_base":
                        result = f"Documentos encontrados sobre: {block.input['query']}"
                    elif block.name == "calculate_metric":
                        values = block.input['values']
                        op = block.input['operation']
                        if op == "sum":
                            result = f"Resultado: {sum(values)}"
                        elif op == "average":
                            result = f"Resultado: {sum(values)/len(values)}"
                        else:
                            result = f"Resultado: {max(values)}"
                    else:
                        result = "Herramienta desconocida"
                    
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": result
                    })
            
            # Agregar resultados de herramientas de vuelta a los mensajes
            messages.append({
                "role": "user",
                "content": tool_results
            })
    
    return "Se alcanzó el máximo de iteraciones"

# Uso
result = agentic_loop("Encuentra nuestros datos de ingresos del tercer trimestre y calcula el valor mensual promedio")
print(result)

Punto clave: El límite max_iterations no es opcional. He visto agentes alcanzar más de 100 llamadas porque nadie estableció un límite. Establécelo en 5 por defecto y aumenta solo cuando las pruebas demuestren que necesitas más.

Patrón 3: Planificación Jerárquica (Planificar → Ejecutar Subtareas → Sintetizar)

Para flujos de trabajo complejos (analizar un informe, planificar una campaña, depurar un sistema), descompón el problema en subtareas primero. Haz que el agente planifique, luego ejecute el plan y, finalmente, sintetice. Esto te da visibilidad sobre lo que el agente cree que necesita hacer antes de que desperdicie tokens haciéndolo.

Llamada a Herramientas: Configuración y Modos de Falla

La llamada a herramientas en Claude (desde marzo de 2025) es confiable, pero la configuración importa. Defines las herramientas como esquemas JSON. El modelo decide qué herramienta llamar y con qué parámetros. Ejecutas la herramienta y devuelves los resultados.

La mayoría de las fallas provienen de dos lugares:

1. Descripciones de Herramientas Vagas

Malo: "search" - buscar información

Bueno: "search_customer_database" - buscar por correo electrónico, nombre o ID. Devuelve el registro del cliente con el historial de compras. Usa esto cuando necesites verificar los detalles del cliente antes de procesar pedidos.

El modelo elige herramientas basándose en las descripciones. Descripciones vagas llevan a una selección incorrecta de herramientas.

2. Falta de Retroalimentación de Errores

Cuando una herramienta falla, dile al agente específicamente por qué. No devuelvas solo un error genérico. En el código del bucle agente anterior, cada resultado de herramienta regresa como un mensaje. Si una búsqueda falla, di "No se encontraron resultados para la consulta 'xyz'. Intenta con un término de búsqueda diferente." en lugar de "Error."

Memoria: Sin Estado vs. Persistente

Los agentes necesitan recordar el contexto. Tienes dos opciones:

Historial de Conversación (sin estado): Pasa todo el hilo de mensajes al modelo cada vez. Funciona para interacciones cortas. Se vuelve caro rápidamente. Costo de tokens = O(longitud_conversación) por llamada.

Memoria Persistente: Almacena el resumen de la conversación, hechos clave y registros de ejecución de herramientas en una base de datos. Pasa solo el contexto relevante. El costo de tokens se mantiene plano.

Para agentes en producción, usa memoria persistente. Almacena los últimos 10-15 mensajes en el historial del hilo, más un resumen rodante. Si la conversación tiene más de ~20 mensajes, pídele al modelo que resuma y almacene por separado.

Un Patrón para Probar Hoy

Elige el Patrón 1 (Enrutamiento Simple) e impleméntalo para una tarea real en tu sistema: búsqueda de clientes, recuperación de datos, cualquier cosa de un solo paso. Define 2-3 herramientas con descripciones específicas. Ejecuta 10 consultas de prueba y verifica:

  • ¿Eligió la herramienta correcta? (Si no, reescribe la descripción).
  • ¿Usó los parámetros correctos? (Si no, tu esquema de entrada no está claro).
  • ¿La salida realmente responde a la pregunta del usuario?

Una vez que eso funcione, pasa al Patrón 2. Los agentes de múltiples pasos no son más difíciles, son solo el Patrón 1 en un bucle. Pero solo agrega el bucle cuando el paso único no sea suficiente.

Batikan
· 6 min read
Topics & Keywords
Learning Lab que herramientas una herramienta response content tool los agente
Share

Stay ahead of the AI curve

Weekly digest of the most impactful AI breakthroughs, tools, and strategies.

Related Articles

Crea Logos Profesionales en Midjourney: Activos de Marca Paso a Paso
Learning Lab

Crea Logos Profesionales en Midjourney: Activos de Marca Paso a Paso

Midjourney genera conceptos de logo en segundos — pero los activos de marca profesionales requieren estructuras de prompt específicas, refinamiento iterativo y conversión a vector. Esta guía muestra el flujo de trabajo exacto que produce logos listos para producción.

· 5 min read
Claude vs ChatGPT vs Gemini: Elige el LLM Adecuado para Tu Flujo de Trabajo
Learning Lab

Claude vs ChatGPT vs Gemini: Elige el LLM Adecuado para Tu Flujo de Trabajo

Claude, ChatGPT y Gemini destacan en diferentes tareas. Esta guía desglosa diferencias reales de rendimiento, tasas de alucinación, compensaciones de costos y flujos de trabajo específicos donde cada modelo gana, con prompts concretos que puedes usar de inmediato.

· 5 min read
Crea tu primer Agente de IA sin Código
Learning Lab

Crea tu primer Agente de IA sin Código

Crea tu primer agente de IA funcional sin código ni conocimiento de API. Aprende las tres arquitecturas de agentes, compara plataformas y sigue un ejemplo real que maneja el triaje de correos y la búsqueda en CRM, desde la configuración hasta el despliegue.

· 15 min read
Gestión de la Ventana de Contexto: Procesar Documentos Largos Sin Perder Datos
Learning Lab

Gestión de la Ventana de Contexto: Procesar Documentos Largos Sin Perder Datos

Los límites de la ventana de contexto rompen los sistemas de IA de producción. Aprende tres técnicas concretas para manejar documentos y conversaciones largas sin perder datos ni quemar costos de API.

· 4 min read
Construyendo Agentes de IA: Patrones de Arquitectura, Llamadas a Herramientas y Gestión de Memoria
Learning Lab

Construyendo Agentes de IA: Patrones de Arquitectura, Llamadas a Herramientas y Gestión de Memoria

Aprende a construir agentes de IA listos para producción dominando los contratos de llamadas a herramientas, estructurando correctamente los bucles de agentes y separando la memoria en capas de sesión, conocimiento y ejecución. Incluye ejemplos de código Python funcionales.

· 2 min read
Conecta LLMs a Tus Herramientas: Configuración de Automatización de Flujos de Trabajo
Learning Lab

Conecta LLMs a Tus Herramientas: Configuración de Automatización de Flujos de Trabajo

Conecta ChatGPT, Claude y Gemini a Slack, Notion y Hojas de Cálculo a través de APIs y plataformas de automatización. Conoce las compensaciones entre modelos, crea un bot funcional de Slack y automatiza tu primer flujo de trabajo hoy mismo.

· 6 min read

More from Prompt & Learn

Surfer vs Ahrefs AI vs SEMrush: ¿Cuál optimiza mejor el contenido para posicionar?
AI Tools Directory

Surfer vs Ahrefs AI vs SEMrush: ¿Cuál optimiza mejor el contenido para posicionar?

Dedicaste tres horas a optimizar un artículo de 2.500 palabras. Lo publicaste. Esperaste dos semanas. Alcanzó la posición 47. El competidor con la mitad de tu recuento de palabras llegó a la posición 3. La diferencia no fue el esfuerzo. Fue la herramienta. Tres plataformas de SEO con IA ahora afirman que arreglarán tu problema de posicionamiento: Surfer, Ahrefs AI y SEMrush. Cada una utiliza modelos de lenguaje para analizar el contenido mejor posicionado, detectar brechas de optimización y sugerir correcciones. En teoría, resuelven el mismo problema. En la práctica, lo resuelven de manera diferente, con diferentes puntos ciegos, diferentes costos y diferentes tasas de precisión. Esto no es una comparación de marketing. Esto es lo que sucede cuando usas las tres en campañas de posicionamiento reales.

· 13 min read
Figma AI vs Canva AI vs Adobe Firefly: Comparativa de Herramientas de Diseño
AI Tools Directory

Figma AI vs Canva AI vs Adobe Firefly: Comparativa de Herramientas de Diseño

Figma AI, Canva AI y Adobe Firefly abordan el diseño generativo de forma diferente. Figma prioriza la integración fluida; Canva, la velocidad; Firefly, la calidad del resultado. Descubre qué herramienta se adapta mejor a tu flujo de trabajo.

· 6 min read
DeepL añade traducción por voz. Esto es lo que cambia para los equipos
AI Tools Directory

DeepL añade traducción por voz. Esto es lo que cambia para los equipos

DeepL anunció la traducción de voz en tiempo real para Zoom y Microsoft Teams. A diferencia de las soluciones existentes, se basa en la fortaleza de DeepL en traducción de texto: modelos de traducción directa con menor latencia. Aquí explicamos por qué esto importa y dónde falla.

· 4 min read
10 Herramientas Gratuitas de IA que Realmente se Pagan Solas en 2026
AI Tools Directory

10 Herramientas Gratuitas de IA que Realmente se Pagan Solas en 2026

Diez herramientas gratuitas de IA que realmente reemplazan el SaaS de pago en 2026: Claude, Perplexity, Llama 3.2, DeepSeek R1, GitHub Copilot, OpenRouter, HuggingFace, Jina, Playwright y Mistral. Cada una probada en flujos de trabajo reales con límites de tasa realistas, benchmarks de precisión y comparaciones de costos.

· 3 min read
Copilot vs Cursor vs Windsurf: ¿Qué asistente de IDE funciona realmente?
AI Tools Directory

Copilot vs Cursor vs Windsurf: ¿Qué asistente de IDE funciona realmente?

Tres asistentes de codificación dominan 2026. Copilot sigue siendo seguro para empresas. Cursor gana en velocidad y precisión para la mayoría de los desarrolladores. El modo agent de Windsurf ejecuta código para prevenir alucinaciones. Aquí te explicamos cómo elegir.

· 3 min read
Herramientas de IA que realmente te ahorran horas
AI Tools Directory

Herramientas de IA que realmente te ahorran horas

Probé 30 herramientas de productividad de IA en escritura, codificación, investigación y operaciones. Solo 8 ahorraron tiempo medible. Aquí te explico qué herramientas tienen un ROI real, en qué flujos de trabajo destacan y por qué la mayoría de las "herramientas de productividad de IA" fallan.

· 15 min read

Stay ahead of the AI curve

Weekly digest of the most impactful AI breakthroughs, tools, and strategies. No noise, only signal.

Follow Prompt Builder Prompt Builder