El motor de estrategias de contexto
La decisión central de cualquier RAG es qué contexto viaja al modelo.
karajan-rag no la impone: sobre el mismo índice ofrece tres estrategias
(--mode rag|cag|hybrid), todas por el mismo camino guardado (sensitivity
policy + redacción PII). rag es el default que ya has visto: los top-k
chunks del retrieval híbrido.
Modo CAG: el corpus completo como contexto
Sección titulada «Modo CAG: el corpus completo como contexto»Para corpus pequeños/medianos, --mode cag (Cache-Augmented Generation)
salta el retrieval y carga todo el corpus en el contexto del modelo:
karajan-rag query "resume la arquitectura" ./mi-proyecto --answer --mode cag- El contexto es determinista y estable (orden por ruta): mismo corpus → mismo prompt, lo que permite al proveedor amortizar su prompt-cache entre consultas.
- La sensibilidad efectiva es el máximo de todo el manifest — aquí viaja el corpus entero, así que el gate es más restrictivo que en RAG por diseño. La redacción PII aplica igual.
- Presupuesto con fallo explícito (
--max-context-chars, default 400K caracteres ≈ 100K tokens): si el corpus no cabe, error con el tamaño real y alternativas — nunca se trunca en silencio. - No necesita vector store para responder (el manifest basta), pero sí un corpus indexado.
Y el término medio, --mode hybrid: el retrieval selecciona los
ficheros relevantes y el contexto lleva esos ficheros completos (no
fragmentos), con los que no caben en el presupuesto declarados en el
log. Ideal cuando los chunks se quedan cortos pero el corpus entero no
cabe.
Regla rápida: corpus que cabe en contexto y preguntas que piden visión
global → cag; corpus grande y preguntas puntuales → rag; corpus
grande y preguntas que piden entender ficheros enteros → hybrid.
¿Dudas con TU corpus? Decide con datos:
karajan-rag eval golden.json --compare-modesCompara offline el recall del retrieval contra el coste de contexto de cada modo y emite una recomendación justificada con números.