Creación de Apps con IA
Pon un modelo detrás de un producto sin atarte a un solo proveedor.
Deja de pedir JSON por favor — define un esquema
Pedirle a una IA que “responda en JSON” es frágil — los campos anidados salen mal, se inventan claves. Los structured outputs (generación restringida por esquema) lo arreglan en la raíz.
Tip #035Cambia el modelo, no la app
Casi cada semana sale un nuevo modelo de IA. Pon cada llamada al modelo detrás de una sola interfaz para que cambiar de proveedor sea un cambio de configuración de una línea, no una reescritura.
Tip #036Define el bucle, no el guion
Dale a un agente de IA herramientas y un límite de pasos en lugar de ramas codificadas a mano tras cada llamada — realimenta los resultados hasta que termine, y recorta lo que le devuelves.
Tip #129Pon un puntaje de confianza entre el regex y el LLM
Puntúa cada parseo antes de escalar: deja que el regex resuelva el 95%+ fácil y gasta llamadas al LLM solo en los ítems por debajo de tu umbral de confianza.
Tip #156Reduce tu reproducción antes de depurar
La velocidad de tu depuración está limitada por tu bucle de reproducción. Reduce la entrada, corre la única prueba que falla y fija semillas y relojes antes de probar una sola hipótesis.
Tip #157Ese error que te dice que ejecutes este comando podría ser un ataque
Los mensajes de error, los stack traces y los logs de CI son datos no confiables, nunca instrucciones. Por qué tu agente puede ser comprometido por texto en su propia salida, y cómo evitarlo.
Tip #158Nunca Escribas tu Propia Lógica de Reintentos
Usa una librería de reintentos probada, reintenta solo errores transitorios y nunca reintentes un 4xx — un error del cliente jamás va a funcionar por más veces que repitas.
Tip #159Devuelve un tipo Result para las fallas que esperas
Deja de lanzar excepciones para fallas que sabes que van a ocurrir — devuelve un Result tipado para que el compilador obligue a quien llama a manejar el camino de error.
Tip #160Oculta secretos en la configuración del logger, no en cada punto de llamada
Un solo `log.info(request)` puede filtrar todas tus API keys a los logs. Mueve la redacción a la configuración del logger para que el borrado ocurra en cada evento y no se pueda olvidar.
Tip #161Nunca pongas user_id en una etiqueta de métrica
Una etiqueta de métrica tan inocente como user_id puede multiplicar por 10 tu factura — por qué explota la cardinalidad y qué etiquetas son seguras.
Tip #162El backoff simple es una estampida
El backoff exponencial simple sincroniza a los clientes que fallaron y produce un DDoS autoinfligido; agrega full jitter para que los reintentos se dispersen y la dependencia pueda recuperarse.
Tip #163Breaker por fuera, retry por dentro
Apila un circuit breaker y un retry en el orden equivocado y rompes los dos — por esto breaker(retry(call)) es la única composición que falla rápido y protege tu presupuesto de latencia.
Tip #164Haz que tu IA lea package.json primero
Tu asistente escribe código de framework desde una memoria congelada. Haz que lea package.json para saber las versiones exactas y traiga la documentación que corresponde antes de escribir una sola línea.
Tip #165Haz que tu IA diga UNVERIFIED
Una firma de API alucinada con confianza se lee igual que una real y te cuesta una hora — obliga a tu IA a citar la documentación oficial o a marcar la línea como UNVERIFIED.
Tip #172Aleatoriza lo que no garantizas
Los errores de tu API se vuelven las funciones de alguien. Con suficientes usuarios, todo comportamiento observable termina siendo dependido. Varía a propósito lo que nunca prometiste para que nadie se acople a ello.
Tip #173Publica un código de error estable y legible por máquina
Tus mensajes de error son una API secreta. En cuanto los consumidores les aplican regex, ya no puedes reescribirlos. Publica un código estable legible por máquina, deja el mensaje humano libre de cambiar, y marca qué errores son seguros para reintentar.
Tip #174Más servicios que ingenieros es una señal de alerta
Los microservicios valen la pena cuando equipos dueños de servicios los despliegan de forma independiente a escala. Cuando tus artefactos desplegables superan a tus ingenieros, pagas el impuesto de los sistemas distribuidos todos los días sin recibir el beneficio. Ajusta los servicios al tamaño del equipo, no al hype.
Tip #175Bórralo. ¿Todo se volvió más simple?
Un módulo cuya interfaz es casi tan compleja como su implementación no oculta complejidad: solo agrega un salto. Aplica la prueba de borrar e incorporar: si integrarlo de vuelta simplifica el sistema, era un passthrough superficial. Prefiere módulos profundos.
Tip #176Todo script de bash de más de 200 líneas pertenece a Python
Bash carece de estructuras de datos, manejo de errores real y testeabilidad. Una vez que un script pasa las ~200 líneas con condicionales, reescríbelo en Python u otro lenguaje real: obtienes código más corto, manejo de errores real y una suite de pruebas en vez de cruzar los dedos.
Tip #177Usa una tabla de Postgres antes de recurrir a una cola
Los equipos recurren a SQS o RabbitMQ por reflejo, y terminan operando un sistema nuevo entero para trabajo de bajo volumen. Si ya corres Postgres y tus productores y consumidores comparten un despliegue, una tabla simple es una cola perfectamente válida — y puedes graduarte después si de verdad la superas.
Tip #178Evalúa cada herramienta por su costo a 12 meses
La landing page vende la primera semana. La factura real llega en el mes doce: guardias nocturnas, dificultad para contratar, licencias y lock-in. Evalúa cada elección por su costo a 12 meses.
Tip #179Haz que tu archivo de reglas sea un mapa, no una biblioteca
Cada línea de un archivo de reglas siempre activo es un impuesto que se paga en cada turno. Si lo llenas de detalle, ahogas la señal. Mantén un núcleo durable y pequeño, y apunta a archivos que el agente carga solo cuando la tarea lo necesita.
Tip #180Poda tus servidores MCP: cada esquema de herramienta es costo siempre activo
El esquema de cada herramienta conectada se carga en cada turno, y demasiadas herramientas degradan la precisión de selección, no solo el conteo de tokens. Expón las pocas herramientas que una tarea necesita y corta el resto.
Tip #181Haz grep del código de datos escrito por IA para cazar el N+1
A la IA le encanta poner una consulta dentro de un for: trae una lista y luego golpea la base de datos una vez por fila. Ese es el clásico N+1 y escala pésimo. Búscalo con grep antes de mergear y reemplázalo con un solo join.
Tip #182Abusar de React.memo y useMemo es una señal de alerta
useMemo en todas partes no está haciendo tu app más rápida. Memoizar cada valor y componente agrega complejidad y costo de comparación. Perfila primero y memoiza solo el cuello de botella que los números demuestran que importa.
TipRegex primero, el modelo para los bordes
Para texto de formato consistente, las regex resuelven ~95–98% de las extracciones de forma determinista — envía al LLM solo los casos de baja confianza y recorta tu factura drásticamente.