Arquitectura

GurzBrain está diseñado con el patrón thin-client + central brain: múltiples instalaciones pueden distribuirse (clientes), pero la inteligencia (pesos del modelo, aprendizaje colectivo) se mantiene centralizada en gurzbrain.ai.

Stack

┌─────────────────────────────────────────────┐
│  Cliente (self-hosted en tenant)            │
│  ├─ Laravel 13 + PHP 8.3 (LSPHP83)          │
│  ├─ UI web + dashboard + chat               │
│  ├─ RAG local (SQLite + BLOB embeddings)    │
│  ├─ Approval queue + audit log              │
│  ├─ Queue workers (Redis)                   │
│  └─ Phone-home cada 24h                     │
│                                              │
│         ↓ HTTPS + Bearer token              │
│                                              │
│  Nuestro infra (api.gurzbrain.ai)           │
│  ├─ API Gateway (auth, rate limit, bill)    │
│  ├─ LLM farm (Ollama + fine-tuned LoRA)     │
│  ├─ Telemetry ingest (opt-in)               │
│  ├─ Fine-tune pipeline (weekly)             │
│  └─ Model versioning (v1, v2, v3...)        │
└─────────────────────────────────────────────┘

Componentes del cliente

Agent Runner

Loop agentic con persistence. Ciclo: prompt → selección tool → ejecución → respuesta → iterar hasta done o max_iterations.

LLM Router

Clasifica cada prompt y escoge perfil del modelo (fast=3B, smart=8B, code=code-llama, vision=llava, embed=nomic-embed-text).

Tool Registry

24 tools organizadas en 2 tiers: - Read-only (ejecución directa): read_hub_doctor, db_query, rag_search, code_search, etc. - Destructive (requiere approval): ssh_run, deploy_site, send_resend_email, write_memory, bulk_pattern_apply, cloudflare_dns

Persona Registry

11 presets que configuran model_profile + temperature + tools_allowed/denied + system prompt.

Services

Flujo de aprendizaje colectivo

  1. Cliente ejecuta prompt localmente
  2. Si tenant opt-in: prompt + respuesta se loguean anonimizados en nuestros servers
  3. Pipeline gurzbrain:dataset:build procesa ejemplos semanalmente
  4. Fine-tune LoRA en RunPod (~$30-50/sesión)
  5. Nueva versión de pesos → todos los tenants mejoran al actualizar cliente

Datos privados vs compartidos

Tipo Donde vive Compartido
Memory (feedback/project files) DB tenant No
Conversations DB tenant No (anónimas opt-in sí)
Approvals DB tenant No
Audit log DB tenant No
web_knowledge (RAG web nutrition) DB global Sí (todos los tenants)
Fine-tune dataset Nuestros servers Agregado anónimo
Model weights Nuestros servers Nunca sale