El problema de la reproducibilidad
Si ejecutas el mismo agente sobre la misma tarea dos veces, puedes obtener resultados distintos. El modelo puede elegir palabras diferentes, tomar decisiones distintas sobre llamadas a herramientas o explorar caminos de razonamiento alternativos. Ese no determinismo es una característica de los modelos de lenguaje (permite creatividad y respuestas con tono natural), pero supone un reto para sistemas en producción que necesitan comportamiento previsible.
Cuando un cliente reporta que el agente produjo un resultado equivocado, querrás reproducir el problema. Pero si el agente no se comporta igual dos veces, reproducir se vuelve difícil. El bug puede no manifestarse en la segunda ejecución, dejándote sin posibilidad de diagnosticarlo o corregirlo.
Fuentes de no determinismo
La principal es el parámetro temperature del modelo. A temperatura cero, las salidas son casi deterministas (no perfectamente, debido a diferencias de cómputo en punto flotante). A temperaturas más altas, las salidas varían más en cada ejecución.
Los resultados de las herramientas también introducen no determinismo. Si el agente consulta una base de datos y los datos cambiaron desde la última ejecución, recibe información distinta y puede tomar decisiones diferentes. Las búsquedas web devuelven resultados distintos en momentos distintos. Incluso el contenido de un archivo puede cambiar entre ejecuciones.
El orden del contexto también influye. Cuando varios servidores MCP devuelven resultados, el orden en que aparecen en el contexto puede afectar las decisiones del modelo. Pequeños cambios en la ordenación pueden derivar en caminos de razonamiento distintos.
Cuándo importa el determinismo
No toda aplicación basada en agentes necesita comportamiento determinista. Las tareas creativas, la investigación exploratoria y el brainstorming se benefician de la variabilidad. La capacidad del modelo de probar enfoques distintos en cada ejecución puede destapar ideas que un sistema determinista pasaría por alto.
El determinismo importa cuando la salida del agente alimenta otros sistemas, cuando los resultados deben ser auditables o cuando la consistencia es una expectativa del usuario. Cálculos financieros, generación de informes, pipelines de procesamiento de datos y, en general, cualquier tarea en la que «funcionó ayer pero hoy da resultados distintos» sea inaceptable se benefician de un comportamiento más determinista.
Técnicas para aumentar la consistencia
Fijar la temperatura en cero (o casi) es la vía más directa. Hace que el modelo elija el token de mayor probabilidad en cada paso, reduciendo la variabilidad. El trade-off es una salida menos creativa, lo cual puede importar o no según el caso.
Imponer un formato de salida estructurado reduce la variabilidad porque restringe lo que el modelo puede producir. En lugar de texto libre, exige al agente que devuelva datos estructurados (JSON, plantillas concretas) que los sistemas posteriores puedan parsear de forma fiable.
Cachear los resultados de las herramientas asegura que ejecuciones repetidas vean los mismos datos. Si el agente consulta una base de datos en el paso 3, cachear ese resultado significa que las siguientes ejecuciones de la misma tarea verán datos idénticos, eliminando una fuente de variabilidad.
La planificación explícita antes de la ejecución también ayuda, porque compromete al agente con un enfoque concreto desde el inicio. Una vez fijado el plan, los pasos de ejecución quedan más acotados y, por tanto, son más consistentes.
Probar sistemas no deterministas
Probar sistemas basados en agentes requiere un enfoque distinto al del software determinista. En lugar de comprobar coincidencias exactas de salida, se prueban propiedades de la salida: ¿contiene la información requerida? ¿Está en el formato correcto? ¿Cumple los criterios de calidad?
El testing estadístico, que ejecuta el mismo caso varias veces y comprueba que la tasa de acierto supera un umbral, es más adecuado que un pass/fail de una sola ejecución. Si un agente produce resultados correctos 95 de cada 100 veces, eso te dice más que una única prueba que casualmente pasó o falló.