Razonar solo donde aporta: un modelo local de 8B, de 4,7 a 0,7 segundos al redactar
En un turno real, la llamada que solo redactaba la respuesta generó 954 tokens de razonamiento: 96 de los 141 segundos. Apagar el razonamiento justo ahí bajó esa llamada de 4,7 a 0,7 s, pero hubo que volver a encenderlo en dos casos concretos.
- LLM locales (Ollama, Qdrant, RAG)
- Python
El problema
qwen3 puede responder «pensando» (genera un razonamiento interno antes de contestar) o directo. Pensar multiplicaba por seis el tiempo de una llamada.
En un turno con herramientas hay al menos dos llamadas al modelo: una que decide qué herramienta usar y con qué argumentos, y otra que redacta la respuesta con el resultado delante. La segunda estaba gastando cientos de tokens en pensar algo que ya tenía resuelto.
La regla
- Ninguna herramienta ejecutada todavía: pensar. Elegir herramienta y calcular argumentos lo necesita: sin razonamiento, el modelo calculaba mal fechas relativas e inventaba duraciones.
- Resultado con datos y sin avisos: directo. Solo queda redactar.
- Resultado vacío o con error: pensar otra vez. Hay que decidir otro paso.
- Se ha inyectado un aviso junto al resultado: pensar. El aviso pide decidir algo.
- Si la llamada directa pide otra herramienta, se repite pensando.
Lo que se rompió al principio
La primera versión apagaba el razonamiento después de la primera herramienta, sin más. Ganó velocidad y perdió dos cosas que la batería tardó en enseñar:
- Tras una búsqueda vacía, nunca intentaba otra fuente: respondía «no he encontrado nada» con el dato a una llamada.
- Ignoraba los avisos que el código añade al resultado: seguía dando una dirección sin puerto aunque el aviso dijera que faltaba.
Resultado
En los 9 casos de interpretación con 5 semillas: 45/45 en los dos modos, con 31 tokens de salida en vez de 258. Turnos completos entre un 25 % y un 40 % más rápidos, y la batería entera de 10,1 a 8,0 minutos.