Catalog · How the catalog works
this-is-jarvis
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Jarvis — Un runtime personale, estendibile all'infinito
Costruito da un singolo individuo con Claude Opus 4.8 come orchestratore di progetto e GitHub Copilot come assistente di sviluppo. Tutto locale. Zero costi. Gate umano attivo.
La filosofia in una riga
Non un assistente finito, ma un runtime: un kernel piccolo che instrada eventi, più moduli intercambiabili. Aggiungere una capacità significa registrare un modulo, mai toccare il nucleo.
Come è stato costruito: agentic development su un singolo hardware
Il tratto più distintivo di questo progetto non è il codice — è il metodo.
Jarvis è stato progettato interamente da una sola persona orchestrando più agenti AI in parallelo, con comunicazione condivisa, task assegnate e documenti progettuali vivi. Il flusso operativo:
Claude Opus 4.8 ??? Orchestratore ??? split parallelo
???
???????????????????????????????????????????????????????????????????????????????????????
??? ??? ???
Architetto Implementatore Revisore
(pianifica) (GH Copilot) (read-only)
??? ??? ???
???????????????????????????????????????????????????????????????????????????????????????
???
Revisione ??? Gate umano ??? merge- Claude Opus 4.8 ha prodotto tutti i documenti di progetto (PRD, architettura, ADR, roadmap, skill catalog, roster agenti) e ha pilotato l'orchestrazione.
- GitHub Copilot ha implementato il codice seguendo i task scoped prodotti dall'Architetto.
- Il gate umano è sempre rimasto attivo: nessun merge senza approvazione esplicita.
- Ogni agente ha un ruolo, un perimetro di scrittura e una skill di dominio. Least-privilege by design.
I documenti di progetto live si trovano in docs/ e .github/agency/. Le schede dei task, gli audit e le decisioni architetturali (ADR) sono tutti versionati e leggibili.
I tre pilastri
1. Memoria a strati con illusione di velocità
Risposta immediata dal livello caldo, approfondimento in background. La latenza è il male assoluto — va nascosta, non eliminata.
| Layer | Nome | Descrizione |
|---|---|---|
| L0 | Limbo | Buffer grezzo append-only, non embeddato |
| L1 | Memoria rapida | Cache calda di ciò che probabilmente serve adesso |
| L2 | Wiki | Pagine Markdown distillate, mantenute dall'LLM (pattern Karpathy) |
| L3 | Grafo | Indice a grafo su L2 per query multi-hop/temporali (Fase 2+) |
2. Proattività
Jarvis non aspetta solo di essere chiamato. In base al flusso decide se intervenire, fare domande di completamento, suggerire un tool o cambiare persona.
3. Auto-estensione con gate umano
Jarvis fa il project manager, non scrive il codice: produce una spec, delega agli agenti di coding, e tu approvi prima che una nuova capacità diventi attiva.
Architettura — il kernel e il bus
?????????????????????????????????????????????????????????????????????????????????????????????????????????
Voce ??????ASR????????? ??? Event Bus / Kernel ???
??? instradamento ?? policy ?? modalit?? ???
???????????????????????????????????????????????????????????????????????????????????????????????????????????????
??? ??? ???
LLM conv Memoria Proattivit??
(residente) L0-L2 + Persona L3
???
LiteLLM Router
???
Esecutore LLM
(a richiesta)
???
Tools
(MCP)
???
TTS ????????? VoceIl kernel fa una sola cosa: instrada eventi e applica policy (quale modello, quale persona, quale gate). Tutto il resto è modulo: voce, memoria, proattività, tool.
Vincolo hardware che decide tutto
RTX 3060 ??? 12 GB VRAM ?? 32 GB RAM ?? i9 ?? WindowsNessun costo di API. Tutto gira in locale. L'architettura intera ruota attorno alla gestione della VRAM.
Budget VRAM residente (~4.8 GB)
| Componente | VRAM |
|---|---|
| ASR — faster-whisper small (CUDA float16) | ~1.0 GB |
| TTS — Qwen3-TTS 0.6B | ~0.6 GB |
| LLM conversazionale — Gemma-4-E2B | ~3.2 GB |
Esecutore a richiesta — Qwen3-8B (~5 GB): caricato sul task pesante, evittato (LRU) a fine task.
Struttura del repository
this-is-jarvis/
????????? kernel/ # Event bus, router eventi, state machine modalit??
????????? orchestration/ # Client Ollama, policy VRAM, router LiteLLM
????????? memory/ # L0 limbo, L1 cache calda, L2 dreaming / consolidamento
????????? voice/ # Pipeline ASR/TTS, Wyoming protocol, streaming
????????? jarvis/ # Entry point, wiring dei moduli
????????? persona/ # Sistema persona e switch contestuale
????????? proactivity/ # Motore proattivit?? e spunti
????????? tools/ # Tool MCP (calendario, web, ???)
????????? tests/ # Test unit + integration + smoke
????????? scripts/ # Script di utilit?? e setup
????????? docs/ # Documenti di progetto vivi (PRD, ADR, roadmap, ???)
????????? .github/
????????? agents/ # Definizioni ruoli agenti (Orchestratore, Architetto, ???)
????????? agency/ # Board operativo: task, audit, decisioni
????????? skills/ # Skill di dominio per gli agenti
????????? prompts/ # Prompt template riutilizzabili
????????? workflows/ # GitHub ActionsRoadmap per fasi
| Fase | Nome | Obiettivo | Stato |
|---|---|---|---|
| 0 | Parla | Risposta vocale italiana < ~2 s percepiti, swap modello mai su CPU | ✅ Completata |
| 1 | Ricorda | L0 attivo, recall istantaneo, L2 dreaming in idle | 🔨 In corso |
| 2 | Agisce | Tool MCP operativi, gate auto-estensione attivo | ⏳ |
| 3 | Acquisisce | Jarvis integra tool esterni con scansione security | ⏳ |
| 4 | Si evolve | Jarvis propone le proprie capability spec | ⏳ |
Documenti di progetto
I documenti in docs/ sono il cuore del progetto — non note tecniche, ma decisioni vive mantenute dagli agenti.
| File | Contenuto |
|---|---|
00-orchestration.md |
Piano operativo vivo: stato fase, task board, roster agenti |
01-roadmap-phases.md |
Fasi 0→4, obiettivi, deliverable, criteri di uscita |
02-architecture.md |
Kernel, bus, orchestrazione modelli, policy VRAM |
03-memory.md |
Strati L0-L3, vault, consolidamento async, routing retrieval |
04-speech.md |
Pipeline voce, Wyoming, latenza/streaming, illusione a strati |
05-interaction-and-personas.md |
Modalità, motore proattività, sistema persona |
06-tools-and-self-extension.md |
MCP, manifesto tool, protocollo acquisizione |
07-feedback-loop.md |
Macchina a stati feedback/escalation, budget tentativi |
08-sources-and-projects.md |
Progetti OSS da riusare: verdetto riusa/wrappa/costruisci |
09-dev-setup.md |
Team agenti: ruoli, skill, struttura repo, handoff |
10-agent-roles.md |
Custom agent, least-privilege, template per ruolo |
11-skills-catalog.md |
Skill da riusare e da scrivere; mappa ruolo × skill × fase |
12-phase1-plan.md |
Piano dettagliato Fase 1 |
13-dialogue-stt-tts.md |
Dialogo voce: turn-taking, barge-in, full-duplex, AEC |
Agenti del team di sviluppo
Il progetto viene costruito da un team di agenti con ruoli e perimetri definiti (vedi docs/10-agent-roles.md).
| Agente | Scrive | Ruolo |
|---|---|---|
| Orchestratore | solo docs/ + agency/ |
Vista d'insieme, instradamento, gate 3/5/1 |
| Architetto | solo docs/ + sezione scheda |
Piano + task scoped + ADR |
| Implementatore | package assegnato | Codice di un task scoped (con skill di dominio) |
| Revisore | solo sezione scheda | Code review read-only: qualità + OWASP |
| Security-Gate | no | Scansione pre-integrazione tool acquisiti |
| Sistemista | docs/ + config |
Setup infrastruttura locale, CI, ambienti |
| Tecnico Jarvis | package assegnato | Specialista pipeline voce e integrazione HW |
Convenzioni
- Lingua dei contenuti e della voce: italiano
- Stack: Python (async, hot path pulito; lavoro pesante in backend compilati)
- Orchestrazione modelli: Ollama + LiteLLM
- Test: pytest + pytest-asyncio, copertura minima 80%
- Linting: ruff + mypy strict
- Versioning dipendenze: uv (workspace multi-package)
- Stile commit: Conventional Commits (
feat,fix,refactor, …)
Quick start
# 1. Clona e installa dipendenze (richiede uv)
git clone https://github.com/TorchiaHub/this-is-jarvis.git
cd this-is-jarvis
uv sync
# 2. Avvia Ollama e carica i modelli (vedi docs/09-dev-setup.md)
ollama pull gemma4:e2b
ollama pull qwen3.5:7b
# 3. Lancia i test di smoke
uv run pytest tests/smoke/ -v
# 4. Avvia Jarvis
uv run python -m jarvisPer la guida completa all'ambiente di sviluppo locale vedi docs/09-dev-setup.md e docs/SETUP.md.
Progettato con Claude Opus 4 · Sviluppato con GitHub Copilot · Hardware: RTX 3060 12 GB · Tutto locale

