Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

this-is-jarvis

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate 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:

pascal
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

pascal
                 ?????????????????????????????????????????????????????????????????????????????????????????????????????????
   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 ????????? Voce

Il 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

pascal
RTX 3060 ??? 12 GB VRAM  ??  32 GB RAM  ??  i9  ??  Windows

Nessun 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

pascal
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 Actions

Roadmap 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

bash
# 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 jarvis

Per 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