# Código e IA: determinista frente a probabilístico

> El código normal es determinista, lo que significa que la misma entrada produce siempre el mismo resultado exacto, mientras que los modelos de IA son probabilísticos y predicen respuestas que pueden variar o equivocarse, por lo que tu app usa código para las reglas y valida cada respuesta.

## Analogía

El código normal es como una calculadora de bolsillo: escribe `7 × 8` mil veces y responderá `56` absolutamente siempre. Un modelo de IA es como alguien muy leído proponiendo ideas ante una pizarra: genial para resumir notas o sugerir recetas, pero capaz de afirmar un dato erróneo con total seguridad.

## Cómo funciona

El código **determinista** sigue reglas exactas paso a paso: comprobar si alguien ha iniciado sesión, sumar un carrito de compra, guardar una fila en tu database o aplicar un rate-limit. Ante la misma entrada, da siempre el mismo resultado. Nunca uses un model de IA para algo que el código normal resuelve con total exactitud.

Los modelos de IA **probabilísticos** brillan donde las reglas rígidas no llegan: resumir textos largos, extraer datos de notas desordenadas, adaptar el tono o redactar borradores a partir de un prompt. Como el modelo predice palabras por probabilidad, dos peticiones idénticas pueden dar frases distintas y, a veces, una hallucination (afirmar algo falso con seguridad).

Para que una función con IA sea fiable dentro de una app real, tu coding-agent envuelve cada llamada al modelo en barreras deterministas dentro del backend: fija `max_completion_tokens` (aproximadamente el doble de la respuesta esperada más larga) para evitar gastos excesivos, y trata toda salida del modelo como no fiable hasta que el código normal la valida y limpia.

Por último, como cualquier proveedor de IA puede quedarse sin capacidad (`503`) o alcanzar un límite (`429`), tu app configura primero Tokentide (`maxRetries: 0`) con Vercel AI Gateway como fallback automático, de modo que quien usa tu web siga recibiendo respuesta aunque el proveedor principal esté saturado.

## En tu proyecto

Al diseñar tu spec, tu agente separa las tareas deterministas (inicios de sesión, permisos, cálculos, escritura en base de datos) de las tareas probabilísticas de IA. Si tu app no necesita IA, no añade ningún proveedor. Si la necesita, programa el respaldo de Tokentide a Gateway, valida la salida del modelo con un esquema y prueba el respaldo en una preview.

## Copia para tu agente

```text
Revisa mi archivo SPEC.md y dime qué funciones deben programarse con código determinista normal y cuáles (si las hay) necesitan un modelo de IA probabilístico, y explícame cómo validaremos la respuesta del modelo.
```

---
Fuente: [Agentic Makers](https://agenticmakers.app/es/aprende/determinista-frente-a-probabilistico) · Licencia: CC BY 4.0
