10 asistencia
Principio¶
La inteligencia artificial de SmallCountry —ejecutada íntegramente sobre infraestructura local con Ollama y modelos descargados— actúa como copiloto de solo lectura para todos los roles del ecosistema.
Puede analizar logs, generar borradores de playbooks, diagnosticar anomalías, transcribir audio a texto y responder preguntas sobre la documentación, pero nunca ejecuta acciones sobre el sistema ni toma decisiones finales sin revisión y aprobación humana explícita.
La arquitectura se divide en dos niveles de computación:
- Motor Ligero (Ollama CPU en Ra, siempre activo): se encarga de tareas deterministas y de bajo consumo —transcripción de audio (STT) con Hermes Agent y faster-whisper local, resúmenes puramente extractivos y organización de datos estructurados. No debe inventar, modificar ni añadir interpretación original al contenido.
- Motor Pesado (Ollama GPU en Horus, bajo demanda): se activa vía Wake‑on‑LAN para tareas que requieren razonamiento profundo, generación de conocimiento nuevo, análisis de infraestructura y asistencia creativa. Utiliza modelos como Qwen 30B, DeepSeek‑R1 14B y Qwen2.5‑Coder 14B.
Ambos motores se apoyan en Qdrant, la base vectorial que indexa documentación, métricas, logs y registros de la finca, permitiendo que la IA disponga de contexto real sin depender de internet.
El agente Hermes Agent materializa este principio: lee todo el estado del sistema y genera sugerencias, pero no puede escribir nada en producción. Toda propuesta se convierte en un pull request o un issue en Forgejo, donde una persona la revisa, la corrige si es necesario y la fusiona. La interpretación profesional, la firma y la responsabilidad recaen siempre en el humano.
Arquitectura dual y componentes¶
Motor Ligero (Ra, CPU, 24/7)¶
| Característica | Detalle |
|---|---|
| Hardware | Servidor Ra, usando solo CPU y RAM. |
| Modelo principal | qwen2.5:3b o equivalente pequeño eficiente. |
| Tareas permitidas | Transcripción STT con Hermes Agent y faster-whisper local, resúmenes extractivos, creación de tablas, organización de datos. |
| Tareas prohibidas | Interpretación creativa, modificación del contenido original, diagnóstico autónomo, escritura en producción. |
| Requisito previo | 32 GB de RAM instalados en Ra (Fase 0). Hasta entonces, el Motor Ligero está congelado. |
Motor Pesado (Horus, GPU, bajo demanda)¶
| Característica | Detalle |
|---|---|
| Hardware | Servidor Horus con GPU (RTX 2070 o 3090). |
| Activación | Wake‑on‑LAN desde n8n o manual. Se apaga automáticamente por inactividad para ahorrar energía. |
| Modelos principales | qwen3:30b-a3b (chat general), qwen3:14b (análisis, informes), deepseek-r1:14b (diagnóstico con razonamiento visible), qwen2.5-coder:14b (autocompletado de código en Continue.dev), nomic-embed-text (embeddings para Qdrant). |
| Tareas permitidas | RAG (generación aumentada con documentos (IA)) completo, análisis de infraestructura, generación de informes, asistencia creativa, diagnóstico complejo. |
| Tareas prohibidas | Ejecución de cambios, reinicio de servicios, modificación de configuraciones, escritura directa en bases de datos. |
Infraestructura de conocimiento (RAG)¶
| Componente | Función |
|---|---|
| Qdrant | Base vectorial que almacena los embeddings de la documentación, playbooks, métricas históricas, registros de farmOS, informes del biólogo y literatura científica. |
| Pipeline de indexación (n8n) | Workflows nocturnos que ingieren nuevos documentos, logs relevantes y snapshots de métricas en Qdrant. |
| Open WebUI | Interfaz de chat accesible desde el navegador para interactuar con los modelos de Ollama. |
| Continue.dev | Plugin de autocompletado y chat en code-server, conectado exclusivamente a Ollama en Horus. |
Cómo se garantiza la supervisión humana¶
-
Todas las propuestas de la IA se convierten en PRs o issues en Forgejo.
Un flujo de n8n recoge las sugerencias generadas por Hermes Agent y las registra como propuestas formales. El administrador revisa el diff, lo corrige si es necesario y lo fusiona. -
Hermes Agent es un agente de solo lectura.
Puede consultar cualquier métrica, log o documento indexado en Qdrant, pero no tiene permisos para escribir en Git, reiniciar servicios ni modificar configuraciones. Su función es recopilar evidencia y redactar borradores. -
La IA nunca ejecuta acciones sobre el sistema.
Ni el Motor Ligero ni el Motor Pesado pueden invocar APIs de Proxmox VE, Forgejo Actions, Ansible o Node-RED. Cualquier orden que afecte a la infraestructura debe ser introducida por un humano a través del flujo normal descrito en el 1. Infraestructura y configuración como código. -
La validación humana queda registrada.
Cada fusión de un PR generado por la IA incluye un comentario del revisor explicando qué se ha modificado y por qué. Esto mantiene la trazabilidad completa exigida por el principio de fuente única de verdad.
Degradación y fallbacks¶
Si el motor pesado no está disponible (Horus apagado, GPU (procesador gráfico para IA) ocupada, modelo no cargado), la IA no se convierte en un punto de fallo:
| Nivel de servicio | Condición | Capacidad disponible |
|---|---|---|
| Completo | Horus activo, Qdrant sano. | RAG (generación aumentada con documentos (IA)) con modelos grandes, diagnóstico profundo, generación de informes. |
| Ligero | Horus no disponible pero Qdrant sano. | RAG con modelo pequeño en CPU (fallback), respuestas más limitadas pero con contexto documental. |
| Reglas | Horus y Qdrant no disponibles. | Diagnóstico basado en playbooks estáticos y reglas predefinidas. Sin IA, pero el sistema sigue siendo diagnosticable. |
Esta degradación garantiza que la capacidad de diagnóstico y asistencia se reduce gradualmente, pero nunca se pierde del todo. La IA no es infraestructura crítica: el sistema opera sin ella, aunque con menos comodidad.
Stack necesario¶
- Ollama – Servidor de modelos locales en CPU (Ra) y GPU (Horus).
- Qdrant – Base vectorial para RAG.
- Open WebUI – Interfaz de chat.
- Continue.dev – Asistente de código en code-server.
- n8n – Workflows de indexación nocturna y agentes de análisis.
- Hermes Agent – Agente de solo lectura que genera sugerencias, análisis de logs (skill
smallcountry-logs) y pipeline de voz con faster-whisper local (STT) y Edge TTS/NeuTTS. - Forgejo – Repositorio donde aterrizan las propuestas de la IA.
Relaciones con otros principios¶
- 1. Infraestructura y configuración como código: las sugerencias de la IA se convierten en PRs en Forgejo, manteniendo Git como fuente de verdad.
- 7. Soberanía operativa y operación local: todos los modelos, embeddings y fuentes de contexto residen en la despensa local. La IA funciona completamente offline.
- 8. Observabilidad integral desde el origen: la IA consume métricas y logs de Victoria Metrics y Loki para contextualizar sus diagnósticos, pero nunca modifica la configuración de los agentes.
- 12. Conocimiento compartido y autonomía de las personas usuarias: la IA indexa la documentación de
docs.scy puede responder preguntas sobre el sistema, facilitando el autoservicio de los usuarios.
Diagrama de la arquitectura de IA con supervisión humana¶
graph TD
subgraph Motores [Motores de IA]
direction TB
Ra[Ra - CPU 24/7<br/>qwen2.5:3b + Hermes Agent]
Horus[Horus - GPU bajo demanda<br/>Qwen 30B, DeepSeek, Coder]
end
subgraph Conocimiento [Base de conocimiento]
direction TB
Qdrant[Qdrant - RAG]
Docs[Documentación docs.sc]
Logs[Métricas y logs Victoria/Loki]
Finca[farmOS + informes]
end
subgraph Herramientas [Herramientas de asistencia]
direction TB
WebUI[Open WebUI]
Continue[Continue.dev]
HermesAgent[Hermes Agent]
end
subgraph Flujo [Flujo de aprobación]
direction TB
n8n[n8n workflow]
Forgejo[Forgejo PR/Issue]
Humano[Revisor humano]
end
Ra --> WebUI
Horus --> WebUI
Horus --> Continue
Docs --> Qdrant
Logs --> Qdrant
Finca --> Qdrant
Qdrant --> WebUI
Qdrant --> HermesAgent
HermesAgent -->|Propuestas| n8n
WebUI -->|Borradores| n8n
n8n --> Forgejo
Forgejo --> Humano
Humano -->|Merge o rechazo| Forgejo
style Motores fill:#ffe082,stroke:#f57f17,color:#000
style Conocimiento fill:#a5d6a7,stroke:#2e7d32,color:#000
style Herramientas fill:#90caf9,stroke:#1565c0,color:#000
style Flujo fill:#e1bee7,stroke:#8e24aa,color:#000
← Principio 9: Silencio operativo | Principio 11: Contención de recursos →