Google ha messo a disposizione della comunità il plugin Elephant‑Goldfish Model (EGM), un livello di design e revisione pensato per gli agenti di codifica basati su IA. L’obiettivo principale è obbligare l’agente a scrivere una specifica dettagliata prima di generare il codice, per poi sottoporla a una serie di sub‑agent “goldfish” freschi, privi di storico conversazionale.
Caratteristiche principali e architettura del plugin
EGM è distribuito sotto licenza Apache 2.0 e non contiene propri pesi di modello: l’LLM è fornito dall’utente o dall’harness che lo esegue. Il plugin è composto da:
- 7 skill operative;
- 9 persona di revisione;
- 6 “lenti” di brainstorming;
- 5 fasi di revisione della specifica.
Il design è estremamente semplice: le ipotesi errate vengono catturate in un file Markdown, non direttamente in una pull request, riducendo il rischio di introdurre bug durante la revisione.
Come funziona il flusso di lavoro Elephant‑Goldfish
Il flusso prevede tre comandi principali:
- /egm‑brainstorm: chiarisce l’idea e avvia uno “sciame” di goldfish con sei lenti (YAGNI, costo token, UX, migrazione, osservabilità e debito tecnico). Il risultato è
concepts_brief.md. - /egm‑draft: trasforma il brief in una documentazione di design, salvata sotto
docs/designs/, sezione per sezione. - /egm‑review: avvia la revisione a cinque fasi eseguita da sub‑agent stateless.
Un comando aggiuntivo, /egm‑drift‑report, confronta il codice prodotto con la specifica originale e dovrebbe essere eseguito settimanalmente per monitorare eventuali deviazioni.
Le cinque fasi della revisione Goldfish
Il skill di revisione prevede una sequenza di cinque stadi, ciascuno con la possibilità di una sola riassegnazione:
- Initial Zoom Out: verifica globale del documento.
- Comprehension Test: un goldfish parafrasa il design; errori indicano ambiguità.
- Critic Review: reviewer di design, struttura e stile cercano lacune ed edge case.
- Intermediate Zoom Out: ricontrollo dell’architettura dopo le correzioni.
- Implementation Readiness: verifica di percorsi file, strutture dati e firme delle API.
Ogni risultato è classificato come Blocker, Major o Nit. Se l’ambiente non dispone di strumenti per sub‑agent, EGM si interrompe, poiché una revisione con lo stesso contesto non rispetta il principio “goldfish”.
Supporto per gli agenti di codifica
EGM è stato testato con diversi harness, tra cui:
- Antigravity CLI e App
- Claude Code (versione ≥ 2.1.271)
- Claude Cowork
- Codex
- ChatGPT
- OMP e Muse
Le prime tre piattaforme hanno superato le fixture automatizzate end‑to‑end. Claude Code, ad esempio, utilizza solo gli strumenti Read, Grep e Glob e esclude i file CLAUDE.md dal contesto.
Dati di performance e benchmark
Google non ha pubblicato benchmark di accuratezza tradizionali; la prova di adozione è rappresentata dall’uso interno da parte di migliaia di ingegneri e dai test di harness. Alcuni risultati salienti:
- Codex 0.163.0: 15 reviewer nativi in sequenza, 2 test live completati in 573,13 s.
- Antigravity CLI 1.4.5: 16 reviewer nativi, tutti gli stadi eseguiti in ordine.
- Codex CLI v0.1.0 ZIP: suite completa superata in 482,30 s.
- Il peggior caso è stato il run su Claude Cowork, interrotto tra le fasi 5 e 7 a causa di un limite di utilizzo; il ticket #237 segnala una perdita di
AGENTS.mdnei reviewer Codex.
In sintesi, il punto forte è la revisione indipendente prima del codice; il punto debole è il consumo elevato di token e l’isolamento non sempre verificato su tutti gli host.
Confronto con altre soluzioni “spec‑first”
| Feature | Google EGM | GitHub Spec Kit | Kiro Specs | Superpowers |
|---|---|---|---|---|
| Tipo | Plugin (skill + personas) | Toolkit + CLI Specify | Feature di IDE/CLI/web | Skills plugin |
| Licenza | Apache 2.0 | MIT | Commerciale | MIT |
| Workflow | Brainstorm, draft, review, drift report | Constitution, specify, plan, tasks, implement, converge | Requirements, design, tasks | Brainstorm, plan, subagent build, TDD, review |
| Spec revisionata da sub‑agent fresh‑context | Sì, 5 fasi prima del codice | No (non dichiarato) | No (non dichiarato) | No, solo revisione al task |
| Harness supportati | Antigravity, Claude Code, Codex, ChatGPT, altri | Copilot e altri agenti | Kiro only | 16 harness elencati |
| Setup | Installazione plugin | Python 3.11+, uv | Account Kiro | Installazione plugin |
| Costi | Plugin gratuito; uso modello a carico dell’host | Toolkit gratuito; uso modello a carico dell’host | Abbonamento | Plugin gratuito; uso modello a carico dell’host |
La differenza più rilevante è l’uso di sub‑agent senza contesto preesistente per la revisione della specifica, un approccio unico di EGM rispetto a Spec Kit e Kiro, che si affidano alla revisione umana intermedia.
Implicazioni pratiche per gli sviluppatori
L’adozione di EGM comporta diversi cambiamenti operativi:
- Maggiore disciplina di design: la necessità di produrre una specifica completa prima di ogni ciclo di codifica riduce le ambiguità.
- Isolamento dei reviewer: i goldfish non hanno memoria della conversazione, evitando bias e “slop” tipico dei LLM che mantengono lo stato.
- Consumo token: ogni fase di revisione richiede un’interazione completa con il modello, con un impatto significativo sui costi di utilizzo.
- Integrazione con CI/CD: il comando
/egm‑drift‑reportpuò essere schedulato in pipeline per garantire la coerenza continua tra spec e codice.
Gli sviluppatori che già utilizzano Antigravity o Claude Code possono integrare EGM con pochi passi: aggiungere il plugin al loro repository, configurare le credenziali LLM e lanciare i comandi di brainstorming e revisione. Per gli ambienti basati su Codex o ChatGPT è necessario garantire che le API consentano la creazione di sub‑agent indipendenti.
Considerazioni finali e prospettive future
Il plugin Elephant‑Goldfish rappresenta una risposta concreta al problema del “session collapse” evidenziato nel blog di Google Open Source. Sebbene non sia un prodotto ufficialmente supportato da Google, la documentazione esplicita che si tratta di un progetto open source, invitando la community a contribuire, testare nuovi harness e migliorare le skill di revisione.
Le potenziali evoluzioni includono:
- Pubblicazione di benchmark di accuratezza e costi per diversi modelli LLM.
- Estensione delle lenti di brainstorming per includere considerazioni di sicurezza e compliance.
- Supporto nativo per ulteriori harness, ad esempio Llama‑Index o Gemini.
- Implementazione di un meccanismo di caching dei risultati di revisione per ridurre il consumo di token.
Nel frattempo, la community può già sfruttare il plugin per introdurre una rigorosa fase di “design‑first” nei flussi di lavoro AI‑driven, migliorando la qualità del codice e riducendo il debito tecnico introdotto da generazioni di codice non verificate.
Per approfondire, visita il repository GitHub, il sito del progetto e il post sul blog di Google Open Source. Seguici su Twitter, il subreddit Machine Learning e iscriviti alla newsletter per rimanere aggiornato su ulteriori sviluppi.