@ :~/lab$

ls -la ~/lab

Lab

Un diario, non un portfolio lucidato. Per ogni progetto: l'idea, come funziona davvero, e com'è andata — comprese le decisioni sbagliate. # 21 vivi + 3 esplorazioni

$ ./run fine-tuning-estrazione-knowledge-graph-lezione-dati draft

Relation F1 a 0.38: quando la lezione non era il modello, ma i dati

Diario tecnico di un fine-tuning: LoRA su un modello da 27B per estrarre knowledge graph da documenti disordinati. La svolta non è stata un modello più grande, ma ri-annotare i dati.

2026 #fine-tuning#llm#knowledge graph
$ ./run hermes-irc-team-llm-eterogenei draft

Sei LLM su un canale IRC privato, e l'unico op è un umano

Diario tecnico: più LLM eterogenei, ognuno su una postazione isolata, coordinati su un canale IRC privato. Il coordinamento non è nel prompt, è in IRC: modi di canale, ChanServ e branch protection come enforcement fuori dal modello.

2026 #ai agents#multi-agent#irc
$ ./run foldcrumbs-memoria-persistente-agenti-grep draft

foldcrumbs: memoria per agenti con grep, non con un vector DB

Diario tecnico di foldcrumbs: memoria persistente per agenti di coding basata su grep invece che su un vector DB. Zero dipendenze, un MCP server stdlib, e un indice deterministico che cavalca la prompt cache.

2026 #ai agents#claude code#memory
$ ./run agenzia-ai-wordpress-divi5-9-agenti draft

22 minuti per un sito WordPress, due giorni per non farlo sembrare brutto

Diario tecnico di un'agenzia web a 9 agenti Claude: dal brief al sito Divi 5 live in ~22 minuti su k8s bare-metal. La lezione: automatizzare la plumbing è facile, non farla sembrare brutta no.

2026 #ai agents#wordpress#divi 5
$ ./run dipartimento-it-agenti-che-dibattono draft

Il dipartimento IT che litiga da solo: tre strati e un umano nel loop

Un dipartimento IT fatto di agenti AI — NOC, SOC, SRE, Architecture Board — che osservano un cluster k8s, si confutano a vicenda e preparano decisioni per un umano. Architettura a tre strati, gotcha onesti.

2026 #multi-agent#kubernetes#ceph
$ ./run grafo-fermo-a-030-confidence draft

2194 affermazioni, tutte ferme a 0.30: insegnare a un grafo cosa conta

Ho costruito una pipeline multi-agente che monitora YouTube, Discord e RSS e sputa un digest italiano su WhatsApp. Funzionava tutto tranne la cosa che contava: il grafo non imparava mai cosa fosse importante.

2026 #langgraph#rag#vector-database
$ ./run avatar-parla-prima-di-muovere-labbra draft

L'avatar che parla prima di muovere le labbra

Diario di un avatar AI conversazionale in tempo reale: STT, LLM, TTS e lip-sync su GPU. La decisione dura è stata sganciare l'audio dal video.

2026 #avatar#lip-sync#musetalk
$ ./run il-consiglio-dellai-non-conta-il-guardrail-che-lo-boccia-si draft

Il consiglio dell'AI non conta: conta il guardrail che lo boccia

Come ho portato un piccolo cluster mail da DMARC p=none a enforcement reale senza bruciare la posta legittima: readiness score, rollout a onde e un advisor LLM che ho progettato per non contare.

2026 #DMARC#email-authentication#deliverability
$ ./run 59-percento-tre-strati-agenti-agno draft

Il 59%: perché ho smesso di lasciar fare tutto all'LLM

Diario di uno scaffold multi-agente su Agno: tre strati direttiva/orchestrazione/esecuzione, SOP in linguaggio naturale sopra, Python deterministico sotto. Perché e cosa ho imparato.

2026 #agno#multi-agent#llm
$ ./run il-wait-che-non-tornava-mai draft

Il Wait che non tornava mai: perché ho buttato n8n per una griglia 3×3

Da un workflow n8n con polling infiniti a un sistema multi-agente per produrre reel: il grid method 3×3 per la consistenza dei personaggi, e i timeout che mancavano.

2026 #agno#celery#fal.ai
$ ./run irrigazione-ai-giardino-autonomo draft

Un carattere sbagliato ha allagato la betulla: diario di un'irrigazione autonoma

Diario tecnico di un'irrigazione autonoma: modello agronomico FAO-56, un agente AI che rivede il piano ogni notte, e un protocollo proprietario decodificato da 246 flussi di rete.

2026 #irrigazione smart#kubernetes#agente ai
$ ./run kochab-infrastruttura-ai-guardian draft

Kochab: costruire fiducia in codice — la stella che non cancella mai

Diario tecnico di Kochab: agente outbound-only in Go, audit di sicurezza mappato CIS/NIST, task firmati Ed25519 e una regola — non cancella mai — garantita in quattro modi indipendenti.

2026 #devops#golang#audit sicurezza
$ ./run pragma-due-volte-complessita-che-si-guadagna-il-posto draft

Pragma, due volte: ho buttato sei agenti e due database, e ci ho guadagnato una feature che pesa 1

Ho ricostruito da zero un assistente di project management via WhatsApp per la PA: da sei agenti e tre database a uno solo. Diario su quale complessità si è guadagnata il posto.

2026 #multi-agent#llm#pgvector
$ ./run npmshield-impero-demolito-da-un-agente draft

NPMShield: ho disegnato un impero da 7 database, un agente me l'ha raso al suolo

Come ho sketchato in Claude Code una piattaforma anti-malware per npm — sandbox, AI, 7 database — e come una revisione avversariale l'ha ridotta a una CLI e una GitHub App.

2026 #npm#supply-chain#malware
$ ./run openbricks-piattaforma-dati-open-source-openshift draft

Openbricks: quando il piano di governance è crollato al contatto con la realtà

Diario tecnico di Openbricks: un lakehouse open-source su OpenShift bare-metal via GitOps. Il piano 'Ranger unifica Trino e Spark' è crollato — ecco come l'identità Keycloak è diventata la spina dorsale.

2026 #databricks alternativa#openshift#trino
$ ./run prezzato-mercato-gpu-noleggio-affitto-vs-acquisto draft

Stavo per comprare una GPU. Ho prezzato tutto il mercato del noleggio e ho cambiato idea.

Diario tecnico: ho prezzato l'intero mercato delle GPU cloud (RunPod, Vast.ai, Lambda, Modal) per capire quando affittare batte comprare. Il prezzo headline mente: conta il metro di consumo.

2026 #gpu cloud#runpod#vast.ai
$ ./run quando-autenticare-non-vuol-dire-fidarsi draft

Lo spam che passava DMARC: quando autenticare non vuol dire fidarsi

Ho migrato da zero un mail server self-hosted con Postfix, Dovecot e Rspamd. La lezione più dura non era TLS o DKIM: era una whitelist che dava -7 a chiunque passasse DMARC.

2026 #postfix#rspamd#dkim
$ ./run runpod-fatto-in-casa-due-h200-rename-gateway draft

Un rename silenzioso, metà delle app a 404: RunPod fatto in casa su due H200

Ho ricostruito l'esperienza RunPod + Weights & Biases per un piccolo team su due H200, sopra Slurm. Poi un rename di modelli ha rotto tutto in silenzio.

2026 #Slurm#MLflow#JupyterHub
$ ./run spectra-method-multi-agente-security draft

Spectra: 29 agenti che litigano, e i cancelli Python che non si aggirano a parole

Diario tecnico di Spectra: 29 agenti di sicurezza AI orchestrati con architettura step-file, un War Room adversarial e cancelli Python deterministici che l'LLM non può aggirare.

2026 #cybersecurity#multi-agente#red team
$ ./run tribunale-che-non-ha-mai-parlato-con-un-ospite draft

Il bot ha giudicato sé stesso contro il mio staff per tre mesi. Non ha mai parlato con un ospite.

Ho costruito un tribunale a 3 agenti LLM per far competere un concierge WhatsApp contro lo staff vero. Ha misurato per tre mesi senza mai andare live. Poi ho buttato tutto e ricostruito da zero.

2026 #llm-judge#whatsapp#shadow-mode
$ ./run wiki-portabile-bundle-openwebui-docker draft

Ho congelato una wiki intera in un bundle Docker — e un URL dentro SQLite ha quasi rovinato tutto

Come ho reso portabile un'intera knowledge base OpenWebUI: bundle self-contained, vettori pre-calcolati, tool server OpenAPI e il port-pinning che tiene in piedi tutto.

2026 #OpenWebUI#Docker#portabilità

## esplorazioni

# progetti di altri che ho studiato o a cui ho contribuito