Buena pregunta — he trabajado bastante con Ollama + n8n en esto. Aquí está lo que realmente funciona de forma confiable en 2026:
**1. Usa el parámetro nativo `format: json` de Ollama (capa más confiable)**
Cuando configures el nodo Ollama Chat Model, añade `format: json` en los campos adicionales / parámetros del modelo. Esto obliga a Ollama a limitar el muestreo de tokens solo a tokens JSON válidos — no es ingeniería de prompts, está aplicado a nivel del modelo. Modelos como `llama3`, `mistral` y `qwen2.5` lo soportan bien. Esto solo elimina ~80% de la salida malformada.
**2. Combínalo con el Structured Output Parser de n8n**
Combina Ollama format:json + el Structured Output Parser (con un JSON Schema). El esquema le dice al modelo qué campos esperas; el parser valida y extrae. Si haces enrutamiento, tu esquema podría ser tan simple como `{ “route”: { “type”: “string”, “enum”: [“billing”, “support”, “sales”] } }`.
**3. Nodo Code como red de seguridad**
Después del parser, añade un nodo Code que haga:
```js
const out = $input.first().json;
if (!out.route || ![‘billing’,‘support’,‘sales’].includes(out.route)) {
throw new Error('Invalid route: ’ + JSON.stringify(out));
}
return [{ json: out }];
```
Esto bloquea los nodos posteriores para que nunca enrutes mal silenciosamente.
**4. Para SQL intent específicamente**
No le pidas al modelo que genere SQL. Pídele que genere intención estructurada: `{ “table”: “orders”, “filters”: [{“field”: “status”, “op”: “eq”, “value”: “pending”}], “limit”: 10 }`. Entonces tu nodo Code mapea eso a una consulta parametrizada. Mucho más seguro y confiable que SQL de forma libre.
**5. Bucle de reparación de un intento si es necesario**
Para esquemas complejos donde el modelo aún falla ocasionalmente, conecta un nodo IF que verifique errores de parseo → reenvía a Ollama con el mensaje de error añadido al prompt. Un reintentos atrapa la mayoría de casos rezagados. Si falla dos veces, enruta a un fallback/revisión humana en lugar de adivinar.
La combinación de format:json + esquema + validación Code es lo que uso en flujos de estilo producción. Funciona sin nodos pagados.