Architettura¶
Jarvis è progettato come un'infrastruttura AI personale a strati, in cui ogni livello ha responsabilità ben definite e può essere sostituito o esteso indipendentemente.
Vista generale¶
flowchart TB
subgraph IL[Identity Layer]
AUTH[OAuth · Pairing · Token]
end
subgraph OL[Orchestration & Routing]
LG[LangGraph]
MCP[MCP / A2A protocols]
ROUTE[Capability routing]
end
subgraph ML[Memory Layer]
STM[Short-term]
LTM[Long-term]
SEM[Semantic / vector]
FHIR[Health · FHIR]
end
subgraph DL[Device Mesh]
DESK[Desktop]
MOB[Mobile]
WATCH[Watch]
GLASS[Glasses]
VR[VR]
HOLO[Holographic]
MED[Medical]
end
subgraph PL[Plugins]
PROD[Productivity]
HOME[Smart Home]
DEV[Dev tools]
FIT[Fitness]
end
IL --> OL
OL --> ML
OL --> DL
OL --> PL I cinque livelli¶
1. Identity Layer¶
Responsabilità:
- autenticazione utente (OAuth 2.0, passkey)
- registrazione e pairing dei dispositivi
- gestione token e refresh
- certificati per device, scope di accesso
Ogni dispositivo riceve una registrazione del tipo:
{
"device_id": "uuid",
"owner_id": "user_id",
"device_type": "watch",
"capabilities": ["notifications", "voice", "heartrate"],
"trust_level": "primary"
}
2. Orchestration & Routing Layer¶
Il cervello del sistema. Costruito su LangGraph per:
- workflow a grafo con stati persistenti
- checkpointing e time travel per il debug
- agenti specializzati orchestrati come nodi
- comunicazione cross-agent via MCP (Anthropic) e A2A (Google)
Il routing decide a quale device far eseguire un task. Esempio:
| Input | Contesto | Decisione |
|---|---|---|
| "Ricordamelo tra 20 minuti" | Utente sta correndo | Smartwatch (vibrazione + voce) |
| "Apri il PR #42" | Utente al PC | Desktop agent (IDE) |
| "Mostrami la strada" | Utente alla guida | Mobile (TTS) + glasses (overlay) |
3. Memory Layer¶
Tre tipi di memoria coordinati:
- Short-term: sessione attiva, contesto immediato (Redis)
- Long-term: cronologia, preferenze, profilo (PostgreSQL + mem0)
- Semantic: ricerca su documenti personali e knowledge (Qdrant)
- Health: dati medici e biometrici (HAPI FHIR R4/R5)
Il backend di default è mem0 + Qdrant. Alternative: Zep (knowledge graph temporale) o Letta (paging gestito dall'agente).
4. Device Mesh¶
Ogni dispositivo esegue un agente locale che parla con il server centrale. Vedi la sezione Dispositivi.
5. Plugin & Integrations¶
Sistema modulare per estendere le capacità: produttività, smart home, dev tools, fitness, finanza, web scraping, API esterne.
Strategia di modelli LLM¶
Non un solo modello "monolitico", ma una gerarchia distribuita:
| Tier | Esempio | Use case |
|---|---|---|
| Small | Llama 3.2 1B (Ollama), Phi-3 | Wake word, intent recognition, smartwatch |
| Medium | Llama 3.1 8B, Gemma 2 9B | Conversazioni rapide, mobile |
| Large | Claude Sonnet 4.6, GPT-4 | Reasoning complesso, coding, orchestration |
Il routing avviene per task complexity + device capability + policy di privacy.
Privacy & Security¶
- 🔐 Tutti i dati sono on-premise di default
- 🔑 Cifratura TLS end-to-end tra device e server
- 🪪 Token JWT short-lived + refresh
- 🛡️ Policy di accesso granulari per scope
- 📜 Logging audit completo, conservato secondo policy utente