Cuando una cadena se ejecuta seguido con inputs iguales o similares, podés evitar repetir trabajo. El truco: identificar qué pasos son funciones puras (mismo input → mismo output) y guardar el resultado bajo un hash del input.
La próxima vez que llegue el mismo input, vas al cache, traés el output, salteás la llamada LLM. Latencia: 5ms. Costo: cero.
- id: classify_incident
cache:
kind: hash
key: hash(input.text + prompt_version)
ttl: forever
prompt: |
Clasifica el siguiente reporte ...El runtime, antes de llamar al LLM, computa hash(input.text + prompt_version). Si encuentra una entrada, la devuelve. Si no, ejecuta y guarda.
Si solo cacheás por input y mañana cambiás el prompt, el cache devuelve outputs del prompt VIEJO. Es el bug más común con caches LLM. La key tiene que incluir la versión del prompt para invalidar automáticamente.
A la derecha, seis pasos de tu pipeline. Algunos son puros (deterministas, ideales para hash cache), otros dependen del mundo (TTL corto), otros NUNCA se pueden cachear (side effects). Conectá cada paso a su tipo correcto.
El criterio para "nunca cachear": preguntate ¿qué pasa si lo ejecuto dos veces?. Si las dos ejecuciones son equivalentes, cacheable. Si la segunda hace algo nuevo en el mundo, jamás.