Corso Sviluppo software con l'AI

Agenti di coding, modelli di frontiera e modelli locali per team di sviluppo

Corso di formazione professionale sull'adozione strutturata dell'intelligenza artificiale nello sviluppo software, rivolto a sviluppatori e responsabili tecnici che vogliono introdurre agenti di coding e modelli linguistici nel lavoro del team mantenendo il controllo dell'architettura e della qualità del codice. Il corso tratta sia i modelli di frontiera, utilizzati come servizio, sia i modelli open weight eseguiti in locale.

Lo strumento di riferimento è Claude Code, ma il corso presenta anche una panoramica degli harness alternativi. I concetti trattati valgono in generale per gli agenti di coding.

Il corso si tiene in italiano o in inglese, in presenza a Torino o da remoto.

Per partecipare servono ottime capacità di programmazione e l'accesso a un modello di frontiera, tramite abbonamento o API. Per i moduli sui modelli locali i partecipanti devono disporre di una macchina adeguata, come un computer con GPU dedicata o un Mac con Apple Silicon e memoria sufficiente; gli esercizi possono essere svolti anche con modelli di dimensioni ridotte.

I moduli previsti, ciascuno della durata di mezza giornata (4 ore), sono i seguenti:

  • Fondamenti
    • Funzionamento di un modello linguistico: token, finestra di contesto, temperatura;
    • Caching dei prompt e struttura dei costi;
    • Modelli di frontiera e modelli open weight;
    • Chat, completamento e agenti;
  • Modello e harness
    • Modello e harness: cosa fa ciascuno e perché contano entrambi;
    • Il ciclo di lavoro di un agente: lettura, strumenti, modifica, verifica;
    • Claude Code: sessioni, modalità operative e permessi;
    • Pianificazione e subagenti;
    • Panoramica degli harness alternativi;
  • Il contesto di progetto
    • File di istruzioni (CLAUDE.md, AGENTS.md);
    • Convenzioni scritte in forma verificabile;
    • Documentazione come stato attuale e ledger delle decisioni;
    • Memorie di progetto;
  • Guardrail automatici
    • Hook sul ciclo di lavoro dell'agente: controlli a fine turno e prima dell'uso degli strumenti;
    • Formatter, linter e test come condizioni di chiusura;
    • Controllo delle convenzioni architetturali ed eccezioni documentate;
    • Permessi e sandbox;
  • Il flusso di lavoro
    • Specifica prima del codice e scomposizione in compiti;
    • Discussione delle scelte architetturali;
    • Revisione dei diff generati;
    • Verifica nel browser con Playwright;
    • Commit e cronologia delle modifiche;
  • Estendere gli agenti
    • Model Context Protocol: utilizzo e sviluppo di un server MCP;
    • Skill e comandi personalizzati;
    • Subagenti specializzati per revisione e sicurezza;
    • Lavoro in parallelo;
  • Modelli in locale (prima parte)
    • Casi d'uso: riservatezza dei dati, costi, uso offline;
    • Modelli open weight e quantizzazione;
    • Requisiti hardware: VRAM e memoria unificata;
    • Runtime: llama.cpp, LM Studio, Ollama, vLLM;
  • Modelli in locale (seconda parte)
    • API compatibili e gateway (LiteLLM) per instradare le richieste tra modelli di frontiera e modelli locali;
    • Uso di un modello locale con un harness di frontiera;
    • Limiti dei modelli locali: contesti lunghi e chiamate agli strumenti complesse;
    • Costruzione di un banco di prova per il confronto tra modelli;
  • Sicurezza e privacy
    • Dati che finiscono nei prompt, nei log e presso i fornitori;
    • Gestione dei segreti;
    • Prompt injection da contenuti esterni: pagine web, issue, dipendenze;
    • Permessi minimi, dati personali e GDPR;
    • Policy aziendali di adozione;
  • Misurare l'adozione
    • Telemetria degli agenti: token, costi, sessioni, strumenti;
    • Raccolta e visualizzazione della telemetria su infrastruttura propria;
    • Indicatori utili e indicatori fuorvianti;
  • Integrare i modelli nei prodotti (opzionale)
    • API dei modelli, tool use e output strutturato;
    • Recupero di documenti (RAG);
    • Server MCP come interfaccia di un'applicazione verso gli agenti;
    • Valutazione delle risposte;
  • Il team e l'organizzazione (opzionale)
    • Responsabilità del codice generato;
    • La revisione nel lavoro del senior;
    • Crescita degli sviluppatori junior;
    • Introduzione graduale nei team;

Durante i moduli sono previsti esercizi per mettere in pratica gli argomenti trattati.