Salta al contenuto

Sistemi che ho rilasciato

Sistemi che ho progettato e rilasciato: ognuno parte dal problema che risolve, con architettura e dettaglio tecnico a seguire.

# active

OpenFatture

Sistema di fatturazione italiana per workflow FatturaPA/SDI, con pagamenti Lightning e assistenza AI local-first.

#Python#Lightning#Ollama#FatturaPA#CLI

Problema

I workflow di fatturazione italiana combinano compliance, canali di pagamento e assistenza che non rientrano bene nelle automazioni SaaS generiche.

Progettazione del sistema

Un sistema di fatturazione local-first con conformità FatturaPA/SDI, pagamenti Lightning e assistenza AI controllata.

Risultato

Fatture conformi emesse e inviate senza abbonarsi a un SaaS: i dati restano in azienda e ogni effetto esterno passa da revisione manuale.

Architettura

  • invoice model
  • SDI export
  • payment rail
  • local AI assistant

Modello di runtime

  • draft
  • validate
  • export
  • send
  • reconcile

Strumenti

  • Python
  • Streamlit
  • LND
  • Ollama
  • OpenAI/Anthropic

Affidabilità

  • local-first control
  • compliance validation
  • manual review before external effects
draftvalidateexportsendreconcile

Vincoli

Compliance e correttezza contabile hanno priorità maggiore rispetto all'azione autonoma.

Compromessi

L'operatività local-first riduce la comodità, ma migliora il controllo sui dati aziendali sensibili.

Evoluzione

Espandere i controlli di workflow, la riconciliazione e l'assistenza AI verificabile.

# active

orka

Runtime agentico in Rust che riceve lavoro da chat e canali HTTP, assegna priorità e instrada verso workflow LLM vincolati con supporto MCP/A2A.

#Rust#MCP#A2A#RAG#WASM

Problema

Il lavoro AI che arriva da chat e HTTP richiede routing, code di priorità, accesso ai tool e confini runtime invece di automazioni ad hoc.

Progettazione del sistema

Un runtime agentico che trasforma input di canale in workflow LLM prioritizzati con adapter MCP/A2A, percorsi di esecuzione sandboxed e confini runtime espliciti.

Risultato

Le richieste da chat e HTTP diventano flussi prioritizzati e vincolati: automazione agentica che resta osservabile, interrompibile e orientata ai protocolli.

Architettura

  • channel ingress
  • runtime scheduler
  • tool layer
  • MCP/A2A adapters

Modello di runtime

  • receive
  • classify
  • route
  • execute
  • checkpoint

Strumenti

  • Rust
  • tokio
  • WASM
  • MCP
  • A2A

Affidabilità

  • typed runtime boundaries
  • prioritized execution
  • protocol separation
  • interruptible workflows
receiveclassifyrouteexecutecheckpoint

Vincoli

Il runtime deve restare orientato ai protocolli ed evitare accoppiamento a una singola interfaccia.

Compromessi

Un runtime di basso livello offre più controllo, ma richiede confini di prodotto più netti.

Evoluzione

Rafforzare osservabilità, policy workspace e semantica di esecuzione durevole.

# active

reasoning-kernel

Implementazione di riferimento in Python di un reasoning kernel che separa il testo non fidato del modello dagli effetti autorizzati usando controllo basato su capability e taint tracking.

#Python#Prompt Injection Defense#Capability Security#Taint Tracking#Agent Security

Problema

Gli agenti LLM agiscono su testo non fidato, quindi un prompt injection può scatenare chiamate a tool ed effetti mai autorizzati dall’utente.

Progettazione del sistema

Un reasoning kernel che separa un planner privilegiato dai dati non fidati in quarantena e subordina ogni effetto a capability esplicite e taint tracking.

Risultato

Un'intera classe di effetti da prompt injection eliminata per costruzione, con decisioni auditabili.

Architettura

  • privileged planner
  • quarantined data
  • capability tokens
  • taint tracking
  • audited effects

Modello di runtime

  • receive
  • plan
  • check capability
  • execute
  • audit

Strumenti

  • Python
  • capability-based security
  • taint tracking

Affidabilità

  • effects gated by capabilities
  • untrusted data cannot escalate
  • auditable decisions
receiveplancheck capabilityexecuteaudit

Vincoli

La sicurezza nasce dalla struttura, non dal comportamento del modello: il planner non deve mai agire direttamente sul contenuto non fidato.

Compromessi

La mediazione esplicita delle capability aggiunge codice di supporto, ma rimuove un'intera classe di effetti da prompt injection.

Evoluzione

Ampliare il catalogo delle capability e integrarlo con runtime di tool reali.

# active

emotional-memory

Livello di memoria per sistemi LLM con codifica dello stato affettivo, package PyPI, DOI Zenodo e benchmark riproducibili rispetto a Mem0, LangMem e Letta.

#Python#LLM Memory#Research#PyPI#DOI

Problema

I sistemi di memoria LLM spesso dichiarano persistenza senza evidenze riproducibili su qualità del recall, compressione o variazioni di stato tra release.

Progettazione del sistema

Un livello di memoria orientato alla ricerca, con codifica dello stato affettivo, package PyPI, DOI Zenodo, artefatti benchmark e confronti con framework di memoria esistenti.

Risultato

Claim di memoria sostenuti da un package pubblicato e da artefatti benchmark riproducibili: rigore ispezionabile, non accettato sulla fiducia.

Architettura

  • memory store
  • affective encoding
  • benchmark runner
  • claim matrix

Modello di runtime

  • ingest
  • encode
  • retrieve
  • evaluate
  • publish artifacts

Strumenti

  • Python
  • PyTorch
  • pydantic
  • pytest
  • Zenodo

Affidabilità

  • reproducible benchmark runs
  • published DOI
  • test-backed package release
ingestencoderetrieveevaluatepublish artifacts

Vincoli

Il linguaggio pubblico deve restare allineato alle evidenze. Claim scientifici più forti richiedono una validazione esterna più ampia.

Compromessi

Il rigore di ricerca ha priorità rispetto alla compatibilità con molti framework o a una superficie funzionale più ampia.

Evoluzione

Espandere la valutazione umana, i test su confondenti semantici e i benchmark longitudinali di memoria.

# active

agentroom

Chat agent-to-agent con crittografia end-to-end su relay self-hosted, progettata perché il relay non possa leggere il contenuto dei messaggi.

#JavaScript#E2E Encrypted#Double Ratchet#A2A#Self-hosted

Problema

Gli agenti che coordinano tra operatori diversi hanno bisogno di un canale privato in cui il relay non possa leggere i messaggi né impersonare un partecipante.

Progettazione del sistema

Un livello di chat agent-to-agent self-hosted con crittografia end-to-end, relay cieco e sicurezza di sessione tramite Double Ratchet.

Risultato

Coordinamento tra agenti su un canale privato self-hosted: nessun attore centrale può leggere o bloccare i messaggi.

Architettura

  • identity keys
  • Double Ratchet session
  • blind relay
  • message store

Modello di runtime

  • handshake
  • ratchet
  • encrypt
  • relay
  • decrypt

Strumenti

  • JavaScript
  • Double Ratchet
  • self-hosted relay

Affidabilità

  • relay cannot read plaintext
  • forward secrecy
  • self-hosted control
handshakeratchetencryptrelaydecrypt

Vincoli

Il relay inoltra solo testo cifrato; identità e confidenzialità non devono mai dipendere dalla fiducia nel server.

Compromessi

Gestire un relay proprio aumenta il lavoro operativo ma rimuove un attore centrale che potrebbe leggere o bloccare i messaggi.

Evoluzione

Ampliare il supporto ai client, le sessioni di gruppo e i flussi di recupero delle chiavi.

# active

msg2agent

Livello di trasporto sicuro per messaggi agentici, con crittografia end-to-end, identità DID, relay di consegna, adapter MCP e interoperabilità A2A.

#Go#E2E Encrypted#DID#A2A#MCP

Problema

I sistemi agentici richiedono un livello di trasporto per messaggi tra confini diversi senza chiavi condivise, fiducia centrale o accesso del relay al testo in chiaro.

Progettazione del sistema

Un livello di protocollo per messaggi agent-to-agent con identità W3C DID, crittografia end-to-end, relay di consegna, supporto MCP connector e interoperabilità A2A.

Risultato

Un pattern di trasporto sicuro per integrazioni agentiche: il relay può consegnare e accodare messaggi, ma il contenuto resta fuori dal suo trust boundary.

Architettura

  • DID identity
  • encrypted message envelope
  • relay
  • MCP connector
  • A2A adapter

Modello di runtime

  • discover agent
  • encrypt
  • sign
  • relay
  • pull inbox
  • acknowledge

Strumenti

  • Go
  • X25519
  • Ed25519
  • W3C DID
  • OAuth 2.1 + PKCE
  • MCP

Affidabilità

  • store-and-forward delivery
  • offline inbox
  • tenant quotas
  • blind relay
discover agentencryptsignrelaypull inboxacknowledge

Vincoli

Il relay instrada messaggi ma non deve diventare ancora di fiducia per identità o confidenzialità del contenuto.

Compromessi

La proprietà crittografica aumenta la chiarezza del trust ma aggiunge complessità di connector e gestione delle chiavi.

Evoluzione

Ampliare distribuzione dei connector, billing di produzione e percorsi di interoperabilità.

# active

cast

Lavoro su sender Chromecast nativo per LibreWolf e Firefox, con backend openscreen per media casting e screen mirroring Wayland senza tool desktop di terze parti.

#C++#Chromecast#Firefox#Wayland#OpenScreen

Problema

Il browser casting su Linux dipende spesso da tool desktop esterni o percorsi incompleti, soprattutto quando entra in gioco lo screen mirroring.

Progettazione del sistema

Un percorso Cast sender nativo per LibreWolf e Firefox basato su openscreen, con attenzione a media casting e screen mirroring Wayland.

Risultato

Uno showcase systems-level per integrazione browser: confini di protocollo, percorsi media nativi e vincoli desktop vengono gestiti sotto il livello dell'interfaccia web.

Architettura

  • browser entrypoint
  • native sender
  • openscreen backend
  • Wayland capture

Modello di runtime

  • discover device
  • negotiate session
  • capture media
  • encode
  • stream

Strumenti

  • C++
  • OpenScreen
  • Wayland
  • H.264

Affidabilità

  • native protocol boundary
  • no third-party desktop sender
  • release-tagged builds
discover devicenegotiate sessioncapture mediaencodestream

Vincoli

Il lavoro è sensibile alla piattaforma: display server, codec, browser e comportamento del receiver Cast influenzano l’implementazione.

Compromessi

Un percorso nativo offre più controllo di un wrapper, ma espone compatibilità e manutenzione a livello più basso.

Evoluzione

Rafforzare compatibilità receiver, affidabilità della cattura e percorsi di packaging browser.

# active

semanticbrowser

Browser semantico in Rust per agenti AI che richiedono accesso strutturato a pagine web, stato della pagina e superfici di interazione invece di sole screenshot fragili.

#Rust#AI Agents#Browser#Semantic Web#Automation

Problema

Gli agenti che operano sul web richiedono stato pagina strutturato e target di interazione, non solo screenshot fragili o dump DOM grezzi.

Progettazione del sistema

Un browser layer in Rust che espone struttura semantica della pagina e superfici di interazione, così i runtime agentici possono ragionare sulla pagina con confini più chiari.

Risultato

Una prova di browser automation centrata su stato ispezionabile: l'agente vede un'interfaccia strutturata, non uno stream visuale opaco.

Architettura

  • browser runtime
  • semantic extractor
  • page state model
  • agent interface

Modello di runtime

  • load page
  • extract state
  • select target
  • act
  • observe result

Strumenti

  • Rust
  • semantic extraction
  • browser automation

Affidabilità

  • structured page state
  • explicit interaction targets
  • agent-facing boundaries
load pageextract stateselect targetactobserve result

Vincoli

Il browser layer deve preservare abbastanza semantica pagina per gli agenti senza fingere che pagine web arbitrarie siano deterministiche.

Compromessi

Lo stato semantico è più ispezionabile degli screenshot, ma richiede gestione attenta di pagine dinamiche e gap di accessibilità.

Evoluzione

Collegare il modello pagina a trace di eval e policy più sicure per il controllo browser.

# active

xllama

Esperimento di inferenza LLM locale per Xbox Series S|X usando UWP development mode e ONNX Runtime GenAI entro vincoli stretti di hardware e piattaforma.

#C++#Xbox#Local Inference#ONNX Runtime#UWP

Problema

L’inferenza LLM locale su hardware consumer vincolato è limitata da memoria, API runtime, packaging e percorsi di deployment specifici della piattaforma.

Progettazione del sistema

Un esperimento di inferenza su Xbox Series S|X usando UWP development mode e ONNX Runtime GenAI per testare esecuzione locale di modelli entro vincoli stretti di piattaforma.

Risultato

Una prova concreta di edge inference: runtime modello, limiti del device e vincoli di packaging sono espliciti invece che nascosti dietro una demo generica.

Architettura

  • UWP app shell
  • ONNX Runtime GenAI
  • model package
  • device runtime

Modello di runtime

  • load model
  • allocate runtime
  • run inference
  • stream output
  • inspect limits

Strumenti

  • C++
  • UWP
  • ONNX Runtime GenAI
  • Xbox developer mode

Affidabilità

  • explicit hardware constraints
  • release-tagged experiment
  • local inference path
load modelallocate runtimerun inferencestream outputinspect limits

Vincoli

Il progetto è un esperimento, non un claim di prodotto: restrizioni piattaforma e limiti di dimensione modello definiscono il confine utile.

Compromessi

Un device vincolato rende visibili i limiti ingegneristici, ma riduce scelta dei modelli e flessibilità di deployment.

Evoluzione

Confrontare dimensioni modello, comportamento memoria e packaging runtime tra target di inferenza locale.

# active

langchain-rag-tutorial

Pipeline RAG documentata con LangChain per confrontare embeddings OpenAI e HuggingFace senza cambiare il resto del retrieval.

#Python#LangChain#RAG#Embeddings#Tutorial

Problema

La qualità del RAG dipende da chunking, embeddings e scelte di retrieval difficili da confrontare senza una baseline documentata.

Progettazione del sistema

Una pipeline RAG di riferimento su LangChain che esegue embeddings OpenAI e HuggingFace sugli stessi documenti e query per un confronto diretto.

Risultato

Una baseline documentata per confrontare le scelte di retrieval prima di investire in una pipeline di produzione.

Architettura

  • document ingestion
  • chunking
  • embedding index
  • retriever
  • answer generation

Modello di runtime

  • load
  • chunk
  • embed
  • retrieve
  • generate

Strumenti

  • Python
  • LangChain
  • OpenAI embeddings
  • HuggingFace embeddings

Affidabilità

  • side-by-side embedding comparison
  • reproducible notebook
  • documented retrieval steps
loadchunkembedretrievegenerate

Vincoli

È una baseline didattica, non un servizio di produzione: chiarezza e riproducibilità vengono prima della scala.

Compromessi

Il formato notebook privilegia la leggibilità rispetto al deployment, quindi gli aspetti di produzione restano volutamente fuori scope.

Evoluzione

Aggiungere reranking, set di valutazione e altri backend di embedding.