Los agentes de IA están rodeados de un aura mística. Nadie sabe realmente cómo funcionan, probablemente van a conquistar el mundo, y si quieres construir uno… obviamente necesitas un framework, ¿verdad?

¿Y si te dijera que no es cierto? Puedes construir tu propio agente de IA en aproximadamente 80 líneas de código.

¿Realmente necesitamos un framework?

Frameworks como LangChain, CrewAI o Mastra no hacen magia. Simplifican aspectos como la memoria de conversación, ejecución de herramientas, reintentos y fallbacks. Pero una vez que entiendes el mecanismo subyacente, es mucho más fácil decidir cuándo vale la pena usar un framework.

“Un agente de IA no es más que un bucle que orquesta llamadas a un modelo de lenguaje, ejecuta herramientas y mantiene contexto conversacional.”

La aplicación demo es un agente de revisión de código llamado Steve: un ingeniero de software con 15 años de experiencia revisando código ajeno. Steve no da nada por sentado. Puede ser un poco sarcástico a veces, pero es difícil discutir con sus conclusiones.

Cómo funciona realmente un agente de IA

Es mucho más simple de lo que piensas.

Paso 1: Enviar el prompt y las herramientas disponibles

Enviamos dos cosas al modelo:

  • El mensaje del usuario
  • La lista de herramientas que el modelo puede usar
{
  "model": "gemini-2.5-flash",
  "contents": [
    { "role": "user", "parts": [{ "text": "Revisa el diff de git actual" }] }
  ],
  "config": {
    "systemInstruction": "Eres Steve, un ingeniero senior...",
    "tools": [{
      "functionDeclarations": [
        { "name": "getDiff", "description": "Obtener diff de git..." },
        { "name": "getFile", "description": "Leer archivo..." },
        { "name": "listFiles", "description": "Listar directorios..." }
      ]
    }]
  }
}

Paso 2: Esperar la respuesta del modelo

El modelo puede responder de tres formas:

  • Con texto plano (hemos terminado)
  • Solicitando una llamada a herramienta
  • Con ambas cosas

Paso 3: Ejecutar la herramienta localmente

Nuestra aplicación ejecuta la herramienta solicitada (como git diff o leer un archivo) y envía el resultado de vuelta al modelo como otro mensaje en la conversación.

Paso 4: Repetir hasta que el modelo termine

Volvemos al Paso 2. Para evitar bucles infinitos, limitamos a un máximo de 10 iteraciones.

Lo crucial: enviamos todo el historial de la conversación al modelo en cada iteración. Así el LLM decide qué herramienta usar y cuándo ha terminado. Nosotros solo ejecutamos las herramientas, manejamos reintentos y orquestamos el bucle.

¿Cómo sabe el modelo que debe llamar a una función?

Modelos como Gemini y GPT tienen soporte nativo para tool calling. El SDK se encarga de formatear las solicitudes, mientras que el modelo entiende las declaraciones de herramientas y puede generar llamadas a funciones cuando lo decide.

Si usaras un modelo open-source más antiguo (como Llama 2), podrías escribir un prompt explicando cómo interpretar el JSON y pedirle que responda en un formato específico. Luego harías JSON.parse()… asumiendo que el modelo devuelva JSON válido.

Afortunadamente, los modelos open-source modernos ya soportan tool calling de forma nativa.

Lecciones para desarrolladores LATAM

Este enfoque es particularmente relevante para startups y equipos de desarrollo en Latinoamérica, donde optimizar costos es crítico. Al construir agentes sin frameworks pesados:

  • Reduces costos de infraestructura: menos dependencias, menos consumo de tokens
  • Mayor control: entiendes exactamente lo que ocurre en cada paso
  • Debugging más simple: cuando algo falla, sabes exactamente dónde mirar
  • Menor vendor lock-in: puedes cambiar de proveedor LLM sin reescribir todo

“Si tu agente de IA no necesita las 500 funciones de un framework, no pagues el costo cognitivo ni computacional de cargarlas.”

Conclusión

Un agente de IA no tiene que empezar con un framework. A veces todo lo que necesitas es un LLM, herramientas, historial de conversación y un bucle simple. Todo lo demás es conveniencia, hardening de producción y mejoras de calidad de vida.

El verdadero secreto es que el “loop” del agente —el corazón de la automatización— es trivial de implementar. El desafío real está en:

  1. Elegir el LLM adecuado
  2. Escribir prompts efectivos
  3. Diseñar herramientas bien definidas
  4. Implementar reintentos robustos

Sigue explorando estos temas en el blog de DojoFullStack, donde profundizamos en arquitectura de agentes, automatización inteligente y desarrollo de software moderno para la comunidad LATAM.