La función funciona. Este capítulo trata del año siguiente.
Una función de IA se degrada distinto al código normal. No se rompe nada. Las pruebas siguen pasando, los endpoints siguen devolviendo 200, y la salida deja poco a poco de ser tan buena como era —porque se actualizó un modelo, un proveedor cambió un valor por defecto, o tu producto se movió y el prompt no.
Fija la versión del modelo
'model' => 'claude-sonnet-5',
Nunca un alias flotante que resuelva a «lo más nuevo». Una actualización de modelo es un cambio de comportamiento en tu producto, y debería ocurrir cuando tú decidas, no cuando el proveedor publique.
El capítulo 4 tiene el coste concreto de no hacerlo: un tope que sobraba dejó de sobrar cuando el modelo empezó a razonar antes de responder, y las respuestas empezaron a cortarse a media frase. Nada en nuestro código cambió. Todo en la salida sí.
Trata una subida de modelo exactamente como una subida de dependencia: cambia la versión fijada, ejecuta la suite, mira salida real, publícalo deliberadamente y ten forma de revertir. Y guarda la versión donde tus registros la recojan, para que «¿cuándo cambió esto?» tenga respuesta.
Prueba el camino, no el modelo
El capítulo 12 argumentaba contra hacer aserciones sobre la salida del modelo, y eso sigue valiendo para la monitorización en producción. Lo que sí puedes comprobar continuamente es que el camino funciona de punta a punta: credenciales válidas, proveedor alcanzable, respuesta que se analiza, esquema que valida, resultado que se guarda.
Ejecútalo de forma programada contra producción, con una entrada fija, comprobando estructura y no contenido: volvió, se analizó, tenía las claves obligatorias, tardó menos de N segundos, costó más o menos lo de siempre.
Eso atrapa los fallos que ocurren de verdad —una credencial caducada, un campo renombrado, una cuota, un incidente del proveedor— ninguno de los cuales ve una prueba unitaria, y todos los cuales llegan sin un despliegue.
Alerta sobre síntomas, no sobre el modelo
La tentación es alertar sobre calidad. La calidad no es una señal que tengas.
Las señales que sí tienes, todas de las líneas de registro del capítulo 14:
- Tasa de errores — fallos de análisis, de validación, 5xx del proveedor.
- Tasa de negativas y truncamientos — si cualquiera sube, un prompt o un tope necesita atención.
- Iteraciones por turno — si suben, el modelo recurre más a herramientas, lo cual es un problema de prompt antes que de coste.
- Tokens por turno — la factura, antes de la factura.
- Topes alcanzados — cada tope de iteraciones y presupuesto de reloj que se agota. El punto del capítulo 8: un tope silencioso es indistinguible de un turno terminado.
Alerta sobre tasas y tendencias, nunca sobre eventos individuales. Una negativa es un martes. Una tasa de negativas que se ha duplicado de un día para otro es un despliegue que hay que revertir.
Guarda una salida humana
Toda función de IA necesita una ruta que no pase por el modelo.
Si el camino conversacional falla, un usuario debe poder hacer la cosa igualmente —un formulario normal, una dirección de soporte, un proceso manual que alguien ejecuta. No porque la IA no sea fiable, sino porque toda dependencia acaba no estando disponible, y la puerta del capítulo 15 sólo sirve si hay algo al otro lado de la negativa.
La versión que más importa: todo lo irreversible debería ser alcanzable y reversible por una persona. Si una herramienta crea un recurso facturable, alguien de soporte necesita poder verlo, deshacerlo y reejecutarlo, sin un modelo en el bucle. El capítulo 10 hizo seguras esas operaciones; esto las hace recuperables.
La prueba de los seis meses
La pregunta que hacerle a todo lo que has construido aquí es si un compañero que no lo ha visto nunca podría, dentro de seis meses, responder:
- ¿Qué versión del modelo está corriendo, y cuándo cambió por última vez?
- ¿Dónde está el prompt, y qué ha cambiado en él últimamente?
- ¿Cuánto cuesta un turno, y cuál es el techo?
- ¿Qué pasa cuando el proveedor está caído? ¿Qué ven los usuarios?
- ¿Qué herramientas pueden hacer algo irreversible, y qué las hace seguras de repetir?
- ¿Cómo depurarías un turno que no puedes reproducir?
Cada una tiene un capítulo. Si todas se responden desde el repositorio, la función está terminada. Si viven en tu cabeza, no lo está: sólo funciona.
Lo que sostiene este capítulo
- Fija la versión del modelo. Una actualización es un cambio de comportamiento; que sea tuyo el calendario, y déjalo registrado.
- Prueba el camino completo de forma programada, comprobando estructura y no contenido: eso atrapa credenciales caducadas y contratos cambiados, que llegan sin despliegue.
- Alerta sobre tasas y tendencias: errores, negativas, truncamientos, iteraciones, tokens, topes alcanzados. Nunca sobre calidad; no puedes medirla.
- Guarda un camino que no pase por el modelo, y haz toda acción irreversible visible y deshacible por una persona.
- La función está terminada cuando las seis preguntas se responden desde el repositorio, no desde ti.