Ingeniero de IA — agentes en producción dentro de mis dos empresas
Medellín, Colombia
Esto no es un CV — es la obra
Ingeniería de agentes que ya cobran en negocios reales
Mis agentes atienden clientes reales: 33 sedes de Tierra Querida, 63.357 pedidos, COP 3.308 millones. Si se cae el proveedor, siguen respondiendo. Si algo falla, se sabe por qué. Y si toca, entra una persona.
Agentes · Tool-calling · MCP · RAG · Bases vectoriales · Tracing LLM · TypeScript · NestJS
Agarra una letra y lánzala: donde golpea arranca el papel y sale lo que hay impreso debajo.
El cartel es interactivo: cada letra del titular se puede arrastrar y lanzar contra el papel. Donde golpea, el papel se rompe y deja ver las palabras impresas debajo; el contenido de la página no cambia.
La obra · cuatro piezas · dos empresas · un método
- 01Pedidos por WhatsAppPÍDELOUn agente conversacional atiende el chat del negocio: arma el pedido, lo registra, manda el menú, la ubicación y los horarios, y escala a una persona por cuatro motivos tasados. Un segundo canal, el administrativo, es de solo lectura —pedidos activos, reporte del negocio, desglose financiero— y tiene prohibido tomar pedidos. Los prompts se editan como un CMS versionado —borrador, publicado, archivado—, sin tocar código ni desplegar.33 sedes · 63.357 pedidos · 0% de comisión por venta
- 02Software de gobiernoTramoLicencias urbanísticas en producción con el Municipio de Marinilla: radicados, planos, resoluciones de construcción, intervención del espacio público, consulta pública y archivo. Los seis frentes en un solo expediente, con su estado a la vista y sus plazos contados. Los funcionarios dejaron de perseguir papel y de reescribir los mismos datos en cada documento; el municipio mide la radicación en la mitad de tiempo y reporta menos quejas. Dentro del expediente hay un asistente con RAG y base de datos vectorial en fase experimental: todavía no es una función entregada al ciudadano.−50% en radicación · 6 trámites en un sistema · 1 municipio
- 03Finanzas por chatCh4t.ai FinanceUn agente de WhatsApp mueve transacciones, transferencias, presupuestos, deudas y metas de ahorro con 18 herramientas propias. Junto a eso, un servidor MCP mío expone 25 herramientas con autenticación híbrida. El system prompt se arma en cinco capas y el propio agente escribe, actualiza y borra su memoria en texto.18 herramientas · MCP de 25 · Whisper · 5 capas
- 04Cómo lo construyoHarness propioDirijo subagentes de Claude Code por fases, con contratos de salida estructurada, críticos adversariales que auditan cada bloque y guards que rompen el build cuando algo se sale del contrato. Con ese método sostengo a la vez los agentes que toman los pedidos de 33 sedes en producción y el software de licencias del Municipio de Marinilla.Dos empresas en producción · crítica adversarial · guards que rompen el build
Samuel Arbeláez
Quién firma esto
- 01
Samuel Arbeláez, ingeniero de IA y agentes en Medellín, Colombia. Fundé y opero dos empresas de software propias: Ch4t.ai y Tramo. Construyendo desde 2022.
- 02
Diseño y opero los sistemas de agentes de PÍDELO y de Ch4t.ai Finance: bucle de herramientas, prompts versionados, circuit breaker en Redis, tracing. En Tramo dirijo el software de licencias urbanísticas en producción con el Municipio de Marinilla.
- 03
No trabajo en el vacío: tengo colaboradores y los cambios pasan por revisión antes de entrar a producción. Lo que respalda el oficio no es cuánto código escribo: es un sistema mío en producción que ya facturó COP 3.308 millones para 33 sedes.
AGENTES EN PRODUCCIÓN
El pedido entra solo, y nadie lo vuelve a teclear
El agente de PÍDELO atiende el WhatsApp del restaurante de punta a punta: lee el mensaje, confirma que el local está abierto, arma el pedido y lo deja en firme. Nadie lo teclea después. No tiene turno —contesta a las dos de la madrugada igual que en la hora pico— y no añade nada que el cliente no haya pedido: por eso el negocio lo deja tomando pedidos sin mirar. Cuando algo se sale del guion pasa el chat a una persona, por cuatro motivos tasados y no a criterio del modelo.
- Pedidos que cierra el agente
- 100%
- Los 61.839 entraron, se armaron y quedaron en firme sin que nadie los transcribiera.
- Mediana de respuesta
- 5,8 s
- También a las siete de la tarde, cuando le entran 34.955 respuestas en una hora.
- Comisión por venta
- 0%
- El pedido cae en el WhatsApp del negocio, no en la plataforma de un tercero.
- PQRS, según Tierra Querida
- −50%
- Cifra que reporta el cliente: la mide su operación, no nuestra base de datos.
Buenas, ¿todavía están abiertos? Me regala dos hamburguesas con papas.
- 01sendScheduleResponde si está abiertoConsulta el horario del negocio y confirma que sí, sigue tomando pedidos.
- 02fetchKnowledgePackageTrae menú y horarioConfirma que el local está abierto y qué hay disponible.
- 03prepareOrderArma el pedidoDos hamburguesas con papas, listas para confirmar con el cliente.
- 04createOrderCrea el pedido en firmeEl pedido cae en el WhatsApp del negocio, sin comisión.
createOrder
Listo, quedó el pedido: dos hamburguesas con papas. Ya le llegó al restaurante y por aquí mismo le confirman. ¿Le mando la ubicación del local?
Un turno real de tool-calling: los nombres son los de las herramientas del código, no adorno.
INGENIERÍA DE CONTEXTO
El contexto hace el trabajo del tamaño
Un modelo pequeño con instrucciones precisas, el conocimiento del dominio metido en su contexto y un arnés que lo sujeta rinde como uno frontera dentro de ese dominio, y cuesta una fracción. Así corre este sistema: 3.729 millones de tokens y 321,2 mil mensajes de IA en producción, todos servidos con modelos abiertos.
- 01
Instrucciones precisas
Los prompts se versionan como contenido, no se escriben a mano dentro del código, y cada salida tiene un contrato estructurado que se valida antes de que nadie la use. Un modelo pequeño falla por ambigüedad mucho antes que por falta de capacidad: casi todo lo que parece un techo del modelo es una instrucción que admitía dos lecturas.
- 02
El contexto que hace falta, no el que cabe
Recuperación y paquetes de conocimiento armados por caso: el modelo no tiene que saberse el catálogo, tiene que tenerlo delante en el momento exacto en que responde. Llenar la ventana no es informar. Entra lo que decide la respuesta y se queda fuera el resto, que solo agrega costo y ruido.
- 03
El arnés
Herramientas con contrato, escalamiento a una persona por motivos tasados y guards que revisan la salida antes de que la vea un cliente. La capacidad que no pone el modelo la pone la estructura de alrededor: el turno no depende de que acierte siempre, depende de que cada camino equivocado tenga una salida prevista.
- 04
Economía de tokens
El prefijo estable va cacheado, cada tarea se manda al modelo más pequeño que la resuelve y hay cadena de respaldo para que la resiliencia no salga de pagar más. Lo que se optimiza es el gasto por turno, no la factura de fin de mes: el ahorro es la consecuencia de decidir bien, no un recorte.
Modelo frontera, sin caché ni enrutado
Todo el trabajo contra el mismo modelo grande y el prompt entero pagado de nuevo en cada turno.
Costo mensual$2.425
Veces más caro11,8×
Modelo frontera con el 80% del prefijo cacheado
El mismo modelo, pero la parte del prompt que nunca cambia se cobra a precio de caché.
Costo mensual$940
Veces más caro4,6×
Con ingeniería de contexto
Instrucciones, conocimiento, arnés y enrutado: cada turno gasta donde hace falta y no más.
Costo mensual$205
Veces más carolínea base
Las tres filas mueven exactamente los mismos tokens —1.650 millones de entrada y 36,3 millones de salida— y lo único que cambia es cómo se gastan. La tabla además se queda corta a propósito: un flujo de verdad ingenuo consumiría más tokens, porque nadie le recorta el contexto ni le arma paquetes de conocimiento, así que la distancia real es mayor que la que se ve aquí. Enseñar por dónde cojea la comparación propia es lo que hace que el resto se pueda creer.
Datos de producción, 23 de agosto de 2026. El consumo medido va del 24 de julio al 23 de agosto de 2026. La base de precio de las dos primeras filas es GPT-5, consultada ese mismo día.
ARSENAL DE IA
Nadie ve las piezas hasta que fallan
Un agente en producción no es un prompt bien escrito: es un sistema con recuperación, memoria, validación, colas, tracing y un plan para cuando el modelo se cae. He construido cada una de esas capas, y por eso sé cuál se rompe primero.
- 01
Agentes que actúan
Modelos que deciden, invocan herramientas, recuerdan lo dicho y admiten cuándo el caso ya no es suyo.
- Tool-calling
- Orquestación multi-agente
- MCP (Model Context Protocol)
- Memoria de agente
- Salida estructurada
- Escalamiento a humano
- 02
Recuperación y datos
Que el modelo responda con la información real del negocio y no con lo que se imagina.
- RAG
- Bases de datos vectoriales
- Embeddings
- Búsqueda semántica
- Bases de conocimiento
- Fine-tuning
- 03
Fiabilidad
Lo que mantiene el agente en pie cuando el proveedor deja de responder o el dato llega roto.
- Guardarraíles
- Evaluación de agentes
- Fallback multi-modelo
- Circuit breaker
- Validación de esquemas con Zod
- Reintentos y reanudación
- 04
Operación y costo
Un sistema en producción se mide: cuánto cuesta, cuánto tarda y dónde se atascó esa respuesta.
- Observabilidad y tracing
- Control de costo y tokens
- Latencia y concurrencia
- Colas y workers (BullMQ)
- Despliegue y entornos
- Voz con Whisper
- 05
Arquitectura y patrones
Decisiones que sobreviven al segundo año: límites claros, dominio explícito y guards que rompen el build.
- Arquitectura limpia
- Domain-Driven Design
- Patrón estrategia
- Circuit breaker
- Colas y workers
- Guards de arquitectura
EN PRODUCCIÓN CON UN MUNICIPIO
Un municipio que radica en la mitad de tiempo
El Municipio de Marinilla, Antioquia, tramita sus licencias urbanísticas con Tramo. El expediente dejó de vivir repartido entre carpetas, correos y escritorios: ahora está en un solo sitio, con su estado a la vista y sus plazos contados. Los funcionarios dejaron de perseguir papel y de reescribir los mismos datos en cada documento. El municipio mide la radicación en la mitad de tiempo, y reporta menos quejas y una mejor percepción de la ciudadanía. Dentro del expediente hay un asistente con RAG y base de datos vectorial en fase experimental: no es una función entregada al ciudadano.
Tramo
- Tiempo de radicación
- −50%
- Trámites en un solo sistema
- 6
NestJSFastifyTypeORMNext.js
Leer el casoSEO PARA MOTORES DE IA
Cuando dejen de buscar, ¿quién te va a citar?
Cada vez menos gente recorre una lista de enlaces: le pregunta a un modelo y se queda con la respuesta. Ahí no compite tu posición en una lista de enlaces, compite si el modelo te encuentra, te entiende y te cita bien. Eso es SEO generativo —GEO, AEO, como quieras llamarlo— y se diseña con datos estructurados, no con palabras clave repetidas.
Que el modelo te encuentre
Un rastreador que no ejecuta JavaScript solo ve lo que ya está en el HTML. Por eso el contenido se entrega prerenderizado, con sitemap y con cada rama de idioma indexable por separado.
Que entienda qué ofreces
JSON-LD de persona, empresa, sitio, artículo y migas de pan le da al modelo hechos con etiqueta en vez de párrafos que tiene que adivinar. Y el texto se escribe para ser citado: afirmaciones cerradas, no promesas.
Que te cite sin inventar
Un modelo rellena los huecos que le dejes. Si cada dato tiene una sola fuente, una fecha y una redacción cerrada, la respuesta generada repite lo que escribiste en vez de una versión inventada.
Medirlo o es una opinión
Pregunto a los modelos lo que preguntaría un cliente y reviso qué citan, qué se saltan y qué se inventan. Sin ese registro no hay estrategia: hay opinión y esperanza.
Este sitio es la demostración: JSON-LD, hreflang en las dos ramas, sitemap completo y HTML prerenderizado que se lee sin ejecutar nada.
PRUEBA DE NEGOCIO
Cuatro meses de dinero real
- Por el sistema
- 3.308millones de pesos
- facturados pedido a pedido, del 27 de abril al 23 de agosto de 2026. COP 3.308.455.136 exactos.
- No se fueron en comisión
- 827millones de pesos
- es lo que habrían costado esas mismas ventas al 25% que cobra de comisión una plataforma de domicilios en Colombia. Al 30%, hasta 992. Aquí la comisión por venta es 0%.
- Pedidos procesados
- 63.357
- sin contar cancelados
- Por el agente
- 97,6%
- 61.839 entraron por conversación, no por mostrador
- Clientes atendidos
- 55.120
- personas distintas con historial en el sistema
- Sedes en producción
- 33
- activas y operando sobre la misma instalación
Cifras leídas de la base de datos de producción el 23 de agosto de 2026. La comisión es una comparación, no un ahorro cobrado: no todos esos pedidos habrían pasado por una plataforma, y esa distinción es parte de la cifra.
Notas de taller
Tres notas: agentes, guards y gobierno
Escribo poco. Cuando escribo es porque hay algo que puedo sostener con código. Tres notas: cómo se construye un agente que aguanta producción, los guards de arquitectura que rompen el build y defienden el criterio cuando no estoy mirando, y lo que se aprende haciendo software para un municipio.
Preguntas frecuentes
Lo que me preguntan antes de escribirme
Las mismas dudas, una y otra vez, en la primera llamada. Están respondidas aquí, con cifras y sin rodeos, para que nadie tenga que gastar esa llamada en averiguarlas.
Samuel Arbeláez, conocido como arbelxez, es un ingeniero de IA y agentes con base en Medellín, Colombia. Funda y opera dos empresas de software: Ch4t.ai, con los productos PÍDELO y Ch4t.ai Finance, y Tramo, cuyo sistema de licencias urbanísticas está en producción con el Municipio de Marinilla. Construye desde 2022.
Un chatbot devuelve texto; un agente ejecuta acciones con consecuencias. El agente de WhatsApp de PÍDELO tiene ocho herramientas registradas —arma el pedido, lo crea, manda el menú, la ubicación y los horarios, consulta la base de conocimiento y escala a una persona— y decide cuál llamar y cuándo parar. Esa decisión es lo que hay que construir.
Sí, y hay uno haciéndolo en mostradores reales de Colombia: el agente de PÍDELO atiende al cliente por WhatsApp, arma el pedido y lo deja en el chat del negocio con 0% de comisión sobre la venta. También transcribe notas de voz con Whisper, porque mucha gente prefiere hablar antes que escribir.
Rendirse a tiempo es una función, no un fallo. El agente de PÍDELO escala a una persona por cuatro motivos tasados: petición explícita de humano, queja repetida, frustración evidente y consulta fuera de alcance. Un agente que no sabe cuándo apartarse acaba costando el cliente que iba a atender.
MCP, el Model Context Protocol, permite exponer las capacidades de un sistema como un servidor al que se puede conectar cualquier modelo, en vez de encerrarlas dentro de un producto. Ch4t.ai Finance tiene un servidor MCP propio con 25 herramientas y autenticación híbrida, aparte de las 18 herramientas de su agente de WhatsApp.
Hacen falta cuando la respuesta correcta vive en documentos que el modelo no vio al entrenarse y que cambian: normativa, expedientes, contratos. Tramo tiene un asistente de este tipo dentro del expediente municipal, con recuperación y base vectorial, y sigue en fase experimental precisamente porque una respuesta inventada sobre una resolución de construcción es un problema legal, no un error de pantalla.
Con las mismas herramientas que cualquier sistema distribuido, aplicadas al modelo. En PÍDELO hay un circuit breaker por modelo implementado en Redis con scripts Lua atómicos, una cadena de fallback entre proveedores, un presupuesto compartido entre workers con doble límite de peticiones y de tokens, y tracing en Langfuse para ver el costo y los errores por herramienta.
Se puede, pero despacio y con el freno puesto. El sistema de Tramo gestiona licencias urbanísticas reales para el Municipio de Marinilla —138 entidades de dominio y unos 40 módulos— y su asistente con recuperación documental sigue siendo experimental. En un trámite legal, lo que se publica tiene efectos jurídicos.
Es el trabajo de conseguir que un modelo encuentre, entienda y cite bien lo que publicas cuando alguien le pregunta, en vez de competir por una posición en una lista de enlaces. Se hace con contenido prerenderizado, datos estructurados que declaran entidades en vez de párrafos, y afirmaciones cerradas que se puedan citar sin reconstruir el contexto.
TypeScript de punta a punta: NestJS y Fastify en el backend, Next.js y React en el frente, PostgreSQL y DynamoDB según el caso, Redis y BullMQ para colas y control de ritmo, Docker y AWS para operarlo. Para agentes, Vercel AI SDK sobre OpenRouter, validación con Zod y tracing con Langfuse.
Escribiendo a hola@arbelxez.com. Trabaja desde Medellín, Colombia, en español y en inglés, y responde él: no hay formulario ni intermediario.
Trabajemos
Si tienes un problema de agentes, escríbeme
Tomo proyectos freelance de ingeniería de agentes, IA aplicada y producto. Si tienes algo en producción que se rompe, o algo que todavía no existe, escríbeme. O sígueme y mira lo que publico.