Entradas

Mostrando las entradas de septiembre, 2026

Una máquina de estados evita reprocesar a ciegas

Imagen
Cuando una automatización tiene varios pasos, el estado del proceso se convierte en parte fundamental de la lógica de negocio. Saber que un trabajo falló no es suficiente para recuperarlo correctamente, ya que necesitamos identificar dónde ocurrió el error, qué pasos ya terminaron y qué resultados siguen siendo válidos. Una máquina de estados permite representar esta información de forma explícita mediante fases detalladas que describen con precisión qué ocurrió y qué transición está permitida a continuación. Imagine un documento cuya información ya fue extraída correctamente, pero cuya escritura final falla. Si el resultado de la extracción está almacenado, repetir nuevamente la interpretación aumenta costo y latencia sin aportar valor, por lo que el proceso debe conservar ese resultado y reintentar únicamente la etapa de escritura. Para diseñar un flujo resiliente es necesario considerar criterios como transiciones válidas, control estricto de intentos mediante contadores con límites...

Reintentar no basta: cómo diseñar colas que soporten saturación

Imagen
Cuando un sistema procesa tareas de forma asíncrona, el reto principal no aparece únicamente cuando una operación falla, sino cuando la demanda supera temporalmente la capacidad disponible. En ese momento es común responder con una idea aparentemente sencilla: volver a intentar de inmediato. Sin embargo, un reintento mal diseñado agrava la saturación al aumentar la presión sobre el sistema. Para ilustrarlo, imaginemos una integración con una API externa donde la carga aumenta de forma abrupta. Si cien solicitudes fallan y se repiten al mismo tiempo sin control, el servicio receptor recibe un impacto mayor. La implementación correcta requiere utilizar señales explícitas de saturación, aplicar un esquema de reintentos espaciados con aleatoriedad y establecer un límite estricto de intentos. Al diseñar sistemas basados en colas, es necesario evaluar criterios de decisión claros sobre la gestión de errores y la consistencia. Conviene determinar cuándo un trabajo debe pasar a un estado termi...

Reintentar sin duplicar: por qué la idempotencia importa

Imagen
Los reintentos son una herramienta básica para aumentar la confiabilidad de una automatización. Una API puede responder con un error temporal, una conexión puede interrumpirse o una ejecución puede quedar inconclusa. En esos casos, volver a intentar suele ser razonable. El problema aparece cuando el sistema no puede distinguir entre la operación no ocurrió y la operación ocurrió pero no recibí la confirmación. Ahí entra la idempotencia. Una operación idempotente puede repetirse sin producir efectos adicionales después de la primera ejecución válida. No significa que todos los intentos sean ignorados, sino que el sistema reconoce que varios intentos pertenecen a la misma operación lógica. Considere una integración que debe registrar una transacción en otro sistema. El primer intento envía la solicitud, pero la respuesta se pierde por un problema de red. Desde el punto de vista del cliente, el resultado es incierto: la operación pudo haber sido procesada o pudo haber fallado antes de lle...

Confianza no es autorización: cuándo una IA debe detenerse

Imagen
En los sistemas tecnológicos actuales, uno de los errores más peligrosos es confundir confianza con autoridad. Un modelo puede interpretar una solicitud con mucha seguridad y aun así no tener permiso para decidir qué debe ocurrir después. La distinción es fundamental porque la confianza del modelo responde a una pregunta limitada sobre la consistencia de su interpretación, mientras que la autorización define si una acción está permitida por políticas y cumplimiento. Por ejemplo, un asistente automatizado puede procesar un formulario con absoluta precisión, pero eso no lo faculta para aprobar la transacción financiera asociada sin validaciones previas. Para diseñar sistemas seguros, conviene evaluar el riesgo de cada acción, su reversibilidad, las obligaciones normativas y el nivel de privilegio involucrado. Si una operación es irreversible o maneja información crítica, la autonomía debe reducirse y requerir supervisión humana obligatoria. Una arquitectura madura no busca automatizar ca...

No pague por inmediatez cuando el proceso puede esperar

Imagen
Cuando se diseña un sistema con inteligencia artificial, una de las decisiones más importantes no tiene que ver con el modelo, sino con cuándo debe ejecutarse el trabajo. El procesamiento síncrono es el enfoque natural cuando una persona o sistema espera una respuesta inmediata. Un asistente conversacional, por ejemplo, pierde valor si tarda varios minutos en contestar. En ese contexto, la latencia forma parte de la experiencia y, por tanto, del requisito de negocio. Pero no todos los procesos necesitan esa inmediatez. Hay tareas que pueden esperar minutos u horas, como la clasificación masiva de documentos, el análisis de grandes volúmenes de registros o el procesamiento nocturno. En estos casos, una arquitectura asíncrona o batch puede ser más adecuada y económica. Una Batch API opera enviando un trabajo completo para recuperar los resultados posteriormente, lo cual afecta costo, latencia y diseño. Sin embargo, esto aumenta la complejidad operativa, ya que el sistema debe gestionar e...

No modifique un buen prompt solo para aprovechar Prompt Caching

Imagen
Prompt Caching puede ser una optimización muy útil cuando muchas solicitudes comparten una cantidad importante de contenido estable. Su objetivo es evitar procesar repetidamente partes idénticas de un prompt, lo que puede reducir costo y latencia. Pero antes de intentar aprovecharlo conviene analizar cómo está construido el prompt. Normalmente existe una parte relativamente estable: instrucciones del sistema, políticas de comportamiento, definiciones o contexto común. Después aparece contenido variable: la solicitud actual, datos recuperados dinámicamente, fechas u otra información que cambia entre ejecuciones. El potencial de caching depende de cuánto contenido pueda reutilizarse realmente y de cómo implemente esta capacidad el proveedor y el modelo elegido. Si la porción estable es pequeña, el ahorro puede ser irrelevante. Si es grande y se reutiliza constantemente, la optimización puede ser significativa. El error sería modificar un prompt que ya funciona bien únicamente para aument...

Si una IA falla y no podemos reconstruir por qué, tenemos un problema de observabilidad

Imagen
Medir la calidad general de un sistema de inteligencia artificial no es suficiente. Cuando un caso concreto sale mal, también necesitamos poder reconstruir qué ocurrió y en qué punto se produjo el problema. Ahí entra la observabilidad. Su objetivo no es demostrar que el sistema funciona bien en promedio, sino aportar evidencia sobre una ejecución específica: qué entrada recibió, qué versión o configuración del modelo se utilizó, qué salida produjo, qué reglas o herramientas intervinieron y cuál fue el resultado final. Imagine un clasificador de solicitudes de soporte que asigna una prioridad incorrecta. Saber únicamente que la prioridad final fue equivocada no explica la causa. El fallo pudo aparecer en la interpretación inicial, en información incompleta, en una regla posterior o en una integración externa. Sin una traza suficiente, cada investigación empieza casi desde cero. Una práctica útil es asignar un identificador de correlación a cada ejecución. Ese identificador permite unir ...

Un 9/10 no necesariamente supera a un 8/10

Imagen
Comparar modelos de inteligencia artificial únicamente por una puntuación global puede llevar a decisiones equivocadas. Un resultado de 9/10 frente a 8/10 parece concluyente, pero no dice qué errores cometió cada modelo ni cuánto importa cada uno dentro del proceso. La diferencia está en el costo del error. Un modelo puede acertar nueve casos y fallar precisamente en el único escenario crítico. Otro puede equivocarse en dos situaciones menores, pero resolver correctamente todos los casos de alto impacto. Si solo se observa la cifra final, el primero parecería mejor; si se analiza el riesgo, la conclusión puede cambiar. Por eso una evaluación útil debe comenzar por definir qué errores son tolerables y cuáles no. No es lo mismo confundir una categoría secundaria que interpretar mal un monto, una moneda, una prioridad crítica o una autorización. Las métricas deben reflejar esas diferencias en lugar de tratar todos los fallos como si tuvieran el mismo valor. También importa la composición ...

Recordar no es lo mismo que conocer el estado actual

Imagen
Diseñar memoria para un sistema de inteligencia artificial requiere decidir qué información merece recordarse y qué información debe volver a consultarse en su fuente original. La gestión adecuada de los datos determina la precisión y la utilidad de las respuestas que recibe el usuario final. No todos los datos envejecen de la misma manera dentro de un entorno tecnológico. Algunas preferencias cambian muy poco con el tiempo, como el idioma preferido, el nivel de detalle requerido en una respuesta o el formato habitual de entrega. Estos elementos pueden conservarse para mejorar la experiencia general sin necesidad de repetir preguntas en cada interacción. Existe también la información temporal. Un usuario puede indicar que necesita respuestas adaptadas a una circunstancia específica durante unos días. Este contexto resulta útil durante un periodo determinado, pero conservarlo indefinidamente termina generando respuestas incorrectas cuando la situación cambia. Finalmente se encuentra el ...

Dar herramientas a un LLM no significa darle autoridad

Imagen
El uso de la llamada a herramientas o tool calling en los modelos de lenguaje modernos permite que un asistente solicite acciones o consultas en sistemas externos de manera automatizada. Esta capacidad amplía enormemente el valor operativo de cualquier desarrollo, pero introduce una distinción fundamental que todo arquitecto y desarrollador debe tener clara desde el inicio: la capacidad técnica no significa autoridad de decisión. Para comprender esta diferencia, imagine un asistente virtual diseñado para entornos corporativos que tiene la capacidad de consultar calendarios, buscar información dentro de una base de conocimiento interna y crear tickets de soporte. El modelo puede analizar la petición del usuario, determinar con precisión que se desea abrir un ticket y preparar todos los campos necesarios. Sin embargo, el hecho de que el modelo sepa qué datos enviar no significa que deba decidir por sí mismo si la operación está permitida. El sistema backend todavía debe validar campos ob...

RAG no es el primer paso: es una solución a un problema de recuperación

Imagen
RAG suele presentarse como una arquitectura casi obligatoria cuando queremos que un modelo de lenguaje trabaje con documentación propia. Sin embargo, antes de implementar embeddings, bases vectoriales y procesos de indexación, conviene responder una pregunta más básica: ¿existe realmente un problema de recuperación? Si una organización dispone de pocos documentos bien estructurados, una búsqueda tradicional por palabras clave, metadatos, títulos o secciones puede resolver muchas consultas con menos costo y menor complejidad. La búsqueda semántica empieza a aportar valor cuando las preguntas utilizan vocabulario distinto al de los documentos, cuando la información relevante está distribuida entre múltiples fuentes o cuando las técnicas sencillas fallan de forma repetible. En esos casos, los embeddings pueden ayudar a recuperar fragmentos conceptualmente relacionados aunque no compartan exactamente las mismas palabras. El punto importante es que RAG no es sinónimo de «darle documentos a ...

El LLM no debe ser la fuente de verdad

Imagen
Un modelo de lenguaje puede explicar una respuesta con gran claridad y, aun así, ofrecer un dato equivocado. Esa combinación es peligrosa: cuanto más convincente resulta el texto, más fácil es olvidar que el modelo quizá no consultó la información adecuada. Antes de incorporarlo a un proceso, conviene formular una pregunta sencilla: ¿dónde se encuentra la fuente de verdad para cada dato y cada decisión? La respuesta cambia según la consulta. Un horario vigente suele estar en una página oficial o una API; una regla de acceso puede estar en una política publicada; una disponibilidad en tiempo real debe venir del sistema que la registra. El modelo puede ayudar a entender la pregunta y redactar la respuesta, pero no debería sustituir a esas fuentes. Su habilidad para producir lenguaje no equivale a tener información actualizada ni autoridad para decidir. Pensemos en un sitio que ayuda a planificar la visita a un museo. Una persona pregunta si puede entrar el domingo, cuánto cuesta la entra...

Una IA confiable también sabe cuándo no decidir

Imagen
Una respuesta rápida puede parecer útil, pero no siempre es la mejor respuesta. Cuando faltan datos o una pregunta admite varias interpretaciones, un sistema de inteligencia artificial puede ofrecer una conclusión convincente y aun así equivocarse. Diseñar una IA confiable exige decidir de antemano cuándo debe responder, cuándo conviene pedir una aclaración y cuándo es preferible abstenerse. El problema no se resuelve pidiendo al modelo que «tenga cuidado». Una instrucción general puede mejorar el tono, pero no define qué información es indispensable ni qué consecuencias tendría una suposición incorrecta. Esas condiciones deben formar parte del diseño del proceso. Antes de automatizar una respuesta, conviene identificar los datos mínimos necesarios y establecer qué hacer si alguno falta. Pensemos en una herramienta que propone actividades para un grupo durante un fin de semana. La solicitud dice: «Queremos una opción al aire libre el sábado», pero no indica la ciudad ni si habrá person...

No mida un sistema de IA solo por cuántas veces acierta

Imagen
Evaluar el desempeño de un sistema de inteligencia artificial exige ir mucho más allá de calcular qué porcentaje de respuestas resulta correcto. En escenarios reales de implementación, la simple tasa de acierto ofrece una visión incompleta y potencialmente engañosa sobre la utilidad del modelo. La experiencia demuestra que los errores no son simétricos. Los falsos positivos y los falsos negativos suelen acarrear costos operativos, económicos y estratégicos profundamente distintos para una organización. Un falso positivo típicamente resulta en una ineficiencia menor, como hacer que un operario o analista revise un caso que al final no requería atención. En contraste, un falso negativo puede significar dejar pasar un incidente urgente, un riesgo de seguridad o una oportunidad crítica. Debido a esta asimetría, la métrica adecuada debe diseñarse en función del problema específico que se busca resolver. En determinados procesos, la estrategia correcta consiste en tolerar un mayor vo...

En IA, el costo del error debe definir los controles

Imagen
No todas las decisiones tomadas con inteligencia artificial merecen el mismo nivel de autonomía operativa. Una idea clave para el diseño de sistemas es calibrar los controles según el costo potencial del error. Los modelos de lenguaje actuales interpretan solicitudes con gran soltura, pero eso no significa que deban decidir y ejecutar todo por cuenta propia. Para lograr un equilibrio adecuado, el esquema debe controlar la estructura, las reglas deben validar las condiciones comerciales y el sistema principal debe conservar la autoridad absoluta de ejecución. Este enfoque diferencia claramente entre la capacidad analítica de la tecnología y la responsabilidad final de la organización. Cuando se trata de una clasificación operativa de bajo impacto, la automatización puede ser amplia y directa. Sin embargo, para un acceso privilegiado, una decisión financiera relevante o cualquier acción difícil de revertir, los controles de seguridad deben multiplicarse de forma proporcional. La ...

Structured Outputs: formato correcto no significa interpretación correcta

Imagen
Las salidas estructuradas representan una herramienta muy útil para integrar modelos de lenguaje con flujos de automatización. Permiten exigir campos específicos, tipos de datos precisos y valores esperados dentro de las respuestas. No obstante, existe una distinción fundamental que debemos tener en cuenta durante el diseño de sistemas. Cumplir con un esquema predefinido no significa que el modelo haya comprendido correctamente el problema subyacente. Un sistema automatizado puede generar perfectamente una etiqueta de severidad alta dentro de un JSON totalmente válido y aun así haber clasificado mal un incidente crítico. La precisión sintáctica no es garantía de exactitud conceptual. Por este motivo, las arquitecturas robustas deben validar dos dimensiones de forma completamente independiente. Por un lado, se verifica la estructura técnica de la respuesta y, por otro, se evalúa la lógica de negocio aplicable. Las funciones de salidas estructuradas mejoran notablemente la conf...

Antes de usar IA, pregúntese si realmente la necesita

Imagen
Una idea que estoy incorporando al diseñar automatizaciones es que no todo problema necesita inteligencia artificial. Si una respuesta puede obtenerse con una regla clara, una base de datos o una API, normalmente esa opción será más precisa y predecible. La IA empieza a aportar valor cuando aparece ambigüedad: lenguaje natural, clasificación o interpretación. Por eso muchas buenas soluciones terminan siendo híbridas: el LLM interpreta lo que necesita interpretación y los sistemas determinísticos se encargan de lo que debe ser exacto. La pregunta útil no es «¿cómo uso IA aquí?», sino «¿qué tecnología resuelve mejor cada parte del problema?».