Usare un modello di AI come Claude Fable, della famiglia Mythos, richiede di riconsiderare i classici approcci di sviluppo. Secondo la guida pubblicata da Anthropic, non basta fornire un buon prompt. Occorre andare além, mettendo a fuoco tutte le incognite in gioco. Il risultato della collaborazione tra uomo e macchina dipende da quanto chiaro è il contesto che forniamo all'agente.

La mappa e il territorio

I concetti fondamentali per capire il lavoro con Claude Fable si radicano in un vecchio adagio del linguista Alfred Korzybski: «la mappa non è il territorio». Quando si lavora con l'AI, la mappa è l’input che forniamo, come il prompt e l’ambiente contestuale. Il territorio, invece, è il lavoro effettivo che il modello produce, come codice oppure una funzionalità di design.

Lo scarto tra le due realtà — tra ciò che immaginiamo e ciò che viene realizzato — si chiama incognita. Nella guida introdotta da Thariq Shihipar, ingegnere di Anthropic, si spiega che in un modello come Fable le soluzioni sono limitate solo da quanto sappiamo chiarire nel prompt. Questo spesso sposta il limite da tecnologico a organizzativo: è una questione di quanto sappiamo di non sapere.

I quattro tipi di non-detto

Pensare in termini di incognite si arricchisce con la famosa distinzione di Donald Rumsfeld tra known knowns, known unknowns, unknown knowns e unknown unknowns. Shihipar introduce quattro tipi di non-detto:

    • Le known knowns sono ciò che sappiamo e specifichiamo: le direttive esplicite.
    • I known unknowns sono le domande di cui siamo consapevoli e che formuliamo.
    • Gli unknown knowns sono le informazioni che non riteniamo necessarie menzionare, ma sono chiare a noi.
    • Gli unknown unknowns sono quelli che non riconosciamo nemmeno come problematici.

I primi due tipi sono gestibili, ma i secondi due sono i veri rischi che portano a errori o a sviluppi poco riusciti.

I limiti tra rigida e flessibile direttiva

Gli agenti AI, pur capaci, sono sensibili al tipo di comando. Con un prompt troppo rigido, Claude Fable obbedisce fedelmente, anche quando forse sarebbe meglio adattarsi. Al contrario, un prompt troppo vago gli permette di colmare i vuoti con soluzioni generiche, non pertinenti al contesto. Il rischio di errore aumenta quando non consideriamo le nostre stesse incognite.

La soluzione, invece, non è scrivere di più, ma fornire al modello il contesto completo di dove siamo: che cosa abbiamo già provato, i dati fondamentali, i vincoli irreversibili.

La scoperta come strategia

Scoprire le incognite richiede una strategia attiva. Una buona analogia è l’iceberg: l’incognita è sotto la superficie, nascosta. Il lavoro inziato con Claude deve farla emerge, pezzo per pezzo.

Per ridurre il divario tra mappa e territorio, Shihipar propone pratiche che vanno lungo tre fasi chiave: prima, durante e dopo l’implementazione.

Prima dell’implementazione: scovare l’ignoto

La fase iniziale si concentra su tecniche per identificare gli unknown unknowns. Il primo strumento è il blindsight pass, un passo per cui chiediamo a Claude di rileggere il piano e il codice e di evidenziarne gli aspetti mancanti.

Per esempio, se stiamo integrando un sistema di autenticazione in un software poco conosciuto, il "blind spot pass" aiuta a identificare le buche nascoste, per poi formulare domande chiare.

I brainstorming e i prototipi

Altra azione utile è il design thinking, che genera prototipi e brainstorming. Questi permettono di esplorare gli unknown knowns, quei criteri che riconosciamo solo dopo averli visti.

Si chiede a Claude di generare quattro versioni molto diverse di una dash board, o un mockup di una toolbar con dati fittizi. Questo permette di testare idee prima di iniziare a costruire codice.

Il ribaltamento del ruolo

Un'interessante tecnica è il role reversal (inversione dei ruoli). Si lascia che l’agente inizi ad interrogare il soggetto umano, domanda per domanda.

Sono prioritari quei quesiti che cambierebbero completamente il piano o l’architettura. Le reference, o riferimenti, sono importanti quanto le istruzioni, e in molti casi il codice è il migliore di tutti, soprattutto se mostrato in un altro linguaggio.

Il piano di implementazione

Un’altra pratica chiave è la stesura di un piano d’azione in anticipo sull’inizio del lavoro. Deve includere le parti del sistema che sono più suscettibili al cambiamento, come i modelli dati, le interfacce e i flussi d’uso. Questa mappa guida aiuta a prendere decisioni rapide.

Durante l’esecuzione: seguire un percorso

Una volta che Claude entra in azione, un file di appunti (in formato Markdown, per esempio) traccia l'andamento del lavoro. Questo include deviazioni dal piano iniziale, note su decisioni alternative e annotazioni che vengono fatte durante il processo.

    • Esempi di annotazioni: il modello ha cambiato l’ordine di un modulo.
    • Note su errori imprevisti o limiti nel codice.
    • Suggerimenti di alternative per risolvere problemi.

Dopo la realizzazione: verifiche e condivisione

I risultati di un lavoro con Claude vanno accompagnati da due attività spesso trascurate:

    • Si chiede all’agente di redigere un pitch, o una descrizione chiara del lavoro svolto. Questo permette di accelerare l’approvazione e la comprensione del team.
    • Viene lanciato un quiz per verificare la comprensione. Il merge sul codice avviene solo dopo che le risposte sono state controllate e accolte.

Un esempio pratico: il video di lancio di Fable

Nella guida