ls -la ~/lab

Lab

A journal, not a polished portfolio. For every project: the idea, how it actually works, and how it went — wrong decisions included. # 21 alive + 3 explorations

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

Relation F1 at 0.38: when the lesson wasn't the model, but the data

Technical diary of a fine-tuning: LoRA on a 27B model to extract knowledge graphs from messy documents. The turning point wasn't a bigger model…

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

Six LLMs on a private IRC channel, and the only op is a human

Technical diary: several heterogeneous LLMs, each on an isolated box, coordinated over a private IRC channel. Coordination isn't in the prompt, it's in IRC: modes…

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

foldcrumbs: agent memory with grep, not a vector DB

Technical diary of foldcrumbs: persistent memory for coding agents built on grep instead of a vector DB. Zero dependencies, one stdlib MCP server, and a…

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

22 minutes to build a WordPress site, two days to make it not look ugly

Technical diary of a 9-agent Claude web agency: from brief to live Divi 5 site in ~22 minutes on bare-metal k8s. The lesson: automating the plumbing is…

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

The IT department that argues with itself: three layers and a human in the loop

An IT department made of AI agents — NOC, SOC, SRE, Architecture Board — that watch a k8s cluster, rebut each other and prepare decisions for a…

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

2194 claims, all stuck at 0.30: teaching a graph what matters

I built a multi-agent pipeline that monitors YouTube, Discord and RSS and spits out an Italian digest on WhatsApp. Everything worked except the one thing that…

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

The avatar that talks before it moves its lips

Diary of a real-time conversational AI avatar: STT, LLM, TTS and lip-sync on GPU. The hard decision was decoupling audio from video.

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

The AI's advice doesn't count: what counts is the guardrail that rejects it

How I moved a small mail cluster from DMARC p=none to real enforcement without burning legitimate mail: a readiness score, a wave-based rollout, and an advisor…

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

The 59%: why I stopped letting the LLM do everything

Diary of a multi-agent scaffold on Agno: three layers directive/orchestration/execution, natural-language SOPs on top, deterministic Python underneath…

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

The Wait that never returned: why I ditched n8n for a 3×3 grid

From an n8n workflow with infinite polling to a multi-agent system for producing reels: the 3×3 grid method for character consistency, and the timeouts that were missing.

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

A wrong character flooded the birch: diary of an autonomous irrigation system

A technical diary of an autonomous irrigation system: a FAO-56 agronomic model, an AI agent that reviews the plan every night, and a proprietary protocol decoded…

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

Kochab: building trust into code — the star that never deletes

Technical diary of Kochab: an outbound-only agent in Go, a security audit mapped to CIS/NIST, Ed25519-signed tasks, and one rule — it never deletes — guaranteed…

2026 #devops#golang#audit-sicurezza
$ ./run npmshield-impero-demolito-da-un-agente poc

NPMShield: I designed a 7-database empire, an agent razed it to the ground

How I sketched out an anti-malware platform for npm in Claude Code — sandbox, AI, 7 databases — and how an adversarial review cut it down to a CLI and…

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

Openbricks: when the governance plan collapsed on contact with reality

Technical diary of Openbricks: an open-source lakehouse on bare-metal OpenShift via GitOps. The 'Ranger unifies Trino and Spark' plan collapsed — here's how…

2026 #databricks-alternativa#openshift#trino
$ ./run pragma-due-volte-complessita-che-si-guadagna-il-posto alive

Pragma, twice: I threw out six agents and two databases, and gained a feature that weighs 1

I rebuilt a WhatsApp project-management assistant for the public sector from scratch: from six agents and three databases to just one. A diary on which complexity…

2026 #multi-agent#llm#pgvector
$ ./run prezzato-mercato-gpu-noleggio-affitto-vs-acquisto research

I was about to buy a GPU. I priced the entire rental market and changed my mind.

Technical journal: I priced the entire cloud GPU market (RunPod, Vast.ai, Lambda, Modal) to figure out when renting beats buying. The headline price…

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

The spam that passed DMARC: when authenticating doesn't mean trusting

I migrated a self-hosted mail server from scratch with Postfix, Dovecot and Rspamd. The hardest lesson wasn't TLS or DKIM: it was a whitelist that gave -7 to anyone…

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

A silent rename, half the apps at 404: home-made RunPod on two H200s

I rebuilt the RunPod + Weights & Biases experience for a small team on two H200s, on top of Slurm. Then a model rename broke everything silently.

2026 #slurm#mlflow#jupyterhub
$ ./run spectra-method-multi-agente-security shipped

Spectra: 29 agents that argue, and Python gates you can't talk your way past

Technical journal of Spectra: 29 AI security agents orchestrated with a step-file architecture, an adversarial War Room, and deterministic Python gates that…

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

The bot judged itself against my staff for three months. It never spoke to a single guest.

I built a 3-agent LLM tribunal to pit a WhatsApp concierge against the real staff. It measured for three months without ever going live. Then I…

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

I froze an entire wiki into a Docker bundle — and a URL inside SQLite nearly ruined everything

How I made an entire OpenWebUI knowledge base portable: a self-contained bundle, pre-computed vectors, an OpenAPI tool server, and the port-pinning that holds it…

2026 #openwebui#docker#portabilità

## explorations

# projects by others I studied or contributed to