# ADR-001: Runtime Selection ## Status Accepted ## Date 2026-01-20 ## Context Necesitamos seleccionar el runtime para ejecutar el modelo LLM local. Las opciones principales son: 1. **Windows + Ollama**: El sistema actual ya tiene Ollama instalado en Windows 2. **WSL + vLLM**: vLLM ofrece capacidades avanzadas pero requiere Linux ### Analisis Comparativo | Criterio | Windows (Ollama) | WSL (vLLM) | |----------|------------------|------------| | Setup | Simple (ya instalado) | Requiere config GPU | | vLLM support | Limitado | Completo | | Multi-LoRA | No | Si | | Continuous Batching | Basico | Avanzado | | Overhead | Ninguno | ~5-10% | | Produccion Ready | No recomendado | Recomendado | ## Decision **Estrategia hibrida:** 1. **MVP (Fase 1)**: Windows + Ollama - Usa infraestructura existente (puerto 11434) - Implementacion rapida - Suficiente para validar arquitectura 2. **Produccion (Fase 3)**: WSL + vLLM - Capacidades completas de Multi-LoRA - Continuous batching optimizado - Mejor rendimiento con multiples agentes ## Consequences ### Positivas - MVP funcional en dias, no semanas - Validacion temprana de la arquitectura - Path claro hacia produccion ### Negativas - Dos implementaciones de backend a mantener - Migracion requerida en Fase 3 - Algunas features (Multi-LoRA) no disponibles hasta Fase 3 ## Implementation Notes El Inference Engine debe abstraer el backend detras de una interfaz comun: ```python class InferenceBackend(ABC): @abstractmethod async def chat_completion(self, messages, **kwargs) -> CompletionResponse: pass class OllamaBackend(InferenceBackend): # MVP ... class VLLMBackend(InferenceBackend): # Produccion ... ```