local-llm-agent/docs/90-adr/ADR-001-runtime-selection.md
Adrian Flores Cortes 3def230d58 Initial commit: local-llm-agent infrastructure project
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 16:42:45 -06:00

69 lines
1.7 KiB
Markdown

# 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
...
```