Che cos’è AGENTS.md e come scriverne uno in 30 minuti
MarkdownFormato AGENTS.md, supporto negli strumenti di IA, un modello pronto all’uso, regole ed errori. Come coordinare AGENTS.md con CLAUDE.md e altri file di istruzioni.
Leggi l’articolo completo
Materiali pratici sul vibe coding e sul lavoro con gli agenti: documentazione Ailoot.
AGENTS.md in un paragrafo
Punto chiave
AGENTS.md è un semplice file Markdown nella radice del progetto che contiene istruzioni per un agente di IA: come installare le dipendenze, come eseguire i test, quale stile di codice seguire e cosa non toccare. Il formato è aperto, è stato creato da OpenAI nell’agosto 2025 ed è entrato a far parte della Linux Foundation nel dicembre dello stesso anno. Molti strumenti di programmazione possono usarlo, ma il caricamento dipende dal client e dalla versione: alcuni scoprono AGENTS.md automaticamente, altri richiedono un nome di file o una lettura configurati esplicitamente. Dalla versione 2.1.277 (settembre 2026), anche Claude Code legge AGENTS.md se il progetto non contiene CLAUDE.md. Se CLAUDE.md è presente, Claude Code legge per impostazione predefinita solo quel file; AGENTS.md viene incluso con la riga @AGENTS.md o tramite un collegamento simbolico.
Di seguito, il formato viene esaminato facendo riferimento a agents.md, alla documentazione di OpenAI Codex, a JetBrains Junie, alla documentazione di Cursor Rules, al changelog di GitHub Copilot Coding Agent e al comunicato stampa della Linux Foundation sulla Agentic AI Foundation. Tutti i dati e le funzionalità sono aggiornati al 30 maggio 2026; il supporto di AGENTS.md in Claude Code è descritto secondo la documentazione di Anthropic, aggiornata il 24 settembre 2026.
Se non hai idea di cosa sia questo zoo di strumenti sul mercato o del motivo per cui abbiano bisogno di un file condiviso, leggi prima la guida «Con cosa programmare nel 2026: 8 strumenti di IA, da Claude Code ad Antigravity». Questo articolo si concentra proprio sul formato AGENTS.md e su come scriverne uno in 30 minuti.
Che cos’è AGENTS.md e da dove viene?
Punto chiave
AGENTS.md è un formato aperto di file Markdown in cui scrivi personalmente le istruzioni per gli agenti di IA. OpenAI lo ha pubblicato nell’agosto 2025 insieme a Codex CLI e ha subito invitato dei coautori: Cursor, Sourcegraph Amp, Google Jules e Factory. L’idea è semplice: «non creiamo un file proprietario per ogni strumento; mettiamoci d’accordo su uno solo». Il 9 dicembre 2025, AGENTS.md, insieme a MCP di Anthropic e a goose di Block, è entrato a far parte della Linux Foundation come uno dei tre progetti fondatori della nuova Agentic AI Foundation. A dicembre dello stesso anno, più di 60.000 repository GitHub contenevano già AGENTS.md nella directory principale.
In precedenza, ogni strumento di IA aveva il proprio file di regole: Anthropic aveva CLAUDE.md, Cursor .cursorrules, GitHub .github/copilot-instructions.md, Aider .aider.conf.yml e JetBrains .junie/guidelines.md. Se il tuo team aveva tre agenti diversi, questo significava tre file paralleli con gli stessi contenuti, destinati a divergere nel giro di una settimana.
OpenAI è stata la prima a stancarsi di questa situazione. Nell’agosto 2025 ha pubblicato Codex CLI e lanciato contemporaneamente agents.md come formato aperto. Dal sito:
«Considera AGENTS.md come un README per gli agenti.»
(agents.md, tradotto dall’inglese)
Il punto fondamentale è che AGENTS.md integra README. README è scritto per le persone: «cos’è il progetto, come eseguirlo in locale, come contribuire». AGENTS.md è scritto per l’agente: comandi shell esatti, criteri di completamento verificabili e limiti come «non toccare mai questo».
Dal sito:
«AGENTS.md integra README: contiene ulteriore contesto, a volte dettagliato, di cui l’agente ha bisogno: passaggi di compilazione, test e convenzioni che appesantirebbero README o che semplicemente non servono ai collaboratori umani.»
(agents.md, tradotto dall’inglese)
Entro settembre 2025, GitHub Copilot Coding Agent supportava il formato (changelog, 28.08.2025). A dicembre si erano aggiunti Cursor, Junie, Gemini CLI, Aider e un’altra dozzina di strumenti. Il 9 dicembre 2025, la Linux Foundation ha costituito la Agentic AI Foundation (AAIF): i suoi tre progetti fondatori erano AGENTS.md di OpenAI, MCP di Anthropic e goose di Block. I membri fondatori erano AWS, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft e OpenAI. Entro il 24 febbraio 2026, la fondazione comprendeva già 146 organizzazioni, tra cui Red Hat, ServiceNow, Akamai, Lenovo, JPMorgan Chase, Huawei, UiPath e Hitachi.
Da quel momento, AGENTS.md ha smesso di essere «l’ennesima cosa di OpenAI» ed è diventato uno standard de facto.
Quali agenti di IA leggono AGENTS.md e quali no?
Punto chiave
AGENTS.md viene usato da molti strumenti di programmazione, compresi quelli elencati sotto. La tabella descrive percorsi di caricamento, non un supporto nativo identico: scoperta automatica, configurazione esplicita, priorità dei nomi e gestione dei file annidati possono differire. Claude Code di Anthropic era un’eccezione di lunga data: la issue #6235, che chiedeva il supporto, è rimasta aperta dall’agosto 2025 all’agosto 2026. Dalla versione 2.1.277 (18 settembre 2026), Claude Code legge AGENTS.md autonomamente se il progetto non contiene CLAUDE.md. Se CLAUDE.md è presente, per impostazione predefinita viene letto solo quel file; AGENTS.md viene incluso con la riga @AGENTS.md all’interno di CLAUDE.md o tramite un collegamento simbolico.
Tabella del supporto aggiornata al 30 maggio 2026; la riga di Claude Code è stata aggiornata il 24 settembre 2026:
| Strumento | Legge AGENTS.md | Data / fonte |
|---|---|---|
| OpenAI Codex CLI | Sì (formato nativo) | Agosto 2025, agents.md |
| GitHub Copilot Coding Agent | Sì | 28.08.2025, GitHub Changelog |
| Cursor | Sì, radice + sottocartelle annidate | Documentazione Cursor Rules |
| JetBrains Junie | Sì, progetto + globale ~/.junie/AGENTS.md | Documentazione Junie |
| Gemini CLI (Google) | Sì, tramite .gemini/settings.json con fileName: AGENTS.md | agents.md |
| Jules (Google) | Sì, coautore dello standard | Agosto 2025 |
| Sourcegraph Amp | Sì, coautore dello standard | Agosto 2025 |
| Aider | Sì, tramite read: AGENTS.md in .aider.conf.yml | agents.md |
| Factory | Sì, coautore dello standard | Agosto 2025 |
| OpenCode | Sì | — |
| Zed | Sì | agents.md |
| Warp | Sì | agents.md |
| VS Code | Sì | agents.md |
| Windsurf | Sì | — |
| Devin (Cognition) | Sì, tramite Spec Kit Skills | Aprile 2026 |
| RooCode, Kilo Code, Augment Code | Sì | agents.md |
| Claude Code (Anthropic) | Sì, se il progetto non contiene CLAUDE.md | Dalla versione 2.1.277 (18.09.2026), documentazione di Claude Code |
Anthropic è stata l’ultima tra i grandi operatori ad aderire. Nell’agosto 2025 è stata aperta nel repository ufficiale anthropics/claude-code la issue #6235, che chiedeva il supporto ad AGENTS.md.
La issue è rimasta aperta per quasi un anno ed è stata chiusa il 17 agosto 2026; la versione 2.1.277 con supporto per AGENTS.md è uscita il 18 settembre. La logica di Anthropic è la seguente: CLAUDE.md ha la precedenza e AGENTS.md viene letto quando non c’è CLAUDE.md nella cartella di lavoro o in una delle sue cartelle genitrici. Secondo la documentazione, funziona così:
| Contenuto del progetto | File letto da Claude Code |
|---|---|
| Solo AGENTS.md | AGENTS.md |
| AGENTS.md e CLAUDE.md (o CLAUDE.local.md) | Solo CLAUDE.md |
CLAUDE.md con la riga @AGENTS.md | CLAUDE.md, che include AGENTS.md |
Il punto è che anche un file personale CLAUDE.local.md viene considerato e, in sua presenza, Claude Code smette di leggere AGENTS.md. Puoi modificare questo comportamento in /config, nella sezione Project instructions, per esempio per far leggere a Claude Code entrambi i file contemporaneamente. Nelle versioni precedenti alla 2.1.277, AGENTS.md non viene caricato automaticamente; la riga @AGENTS.md in CLAUDE.md resta la soluzione alternativa.
In che modo AGENTS.md è diverso da CLAUDE.md e .cursorrules?
Punto chiave
Dal punto di vista tecnico, non hanno nulla di speciale: tutti e quattro i formati (AGENTS.md, CLAUDE.md, .cursorrules, .github/copilot-instructions.md) sono normali file Markdown con istruzioni per un agente. La differenza sta in chi li legge e dove si trovano. AGENTS.md può contenere istruzioni condivise da diversi client, mantenendo separati i rispettivi meccanismi di scoperta o configurazione. CLAUDE.md è solo per Claude Code, ma gli dà accesso a funzionalità avanzate: regole associate a percorsi specifici, CLAUDE.local.md per le personalizzazioni personali, @import per includere altri file e una gerarchia progetto + utente + locale. .cursorrules è obsoleto in Cursor: il nuovo sistema usa .cursor/rules/*.mdc con associazione automatica in base al tipo di file. .github/copilot-instructions.md serve solo per Copilot sul web.
Confronto tra i quattro formati aggiornato al 30 maggio 2026:
| Formato | Chi lo legge | Dove si trova | Punto di forza | Punto debole |
|---|---|---|---|---|
| AGENTS.md | Diversi client, secondo il percorso di caricamento | Radice e sottocartelle secondo il client | Istruzioni condivise, con configurazione specifica del client | Verificare priorità e file annidati per ogni client |
| CLAUDE.md | Solo Claude Code | Radice + ~/.claude/CLAUDE.md + CLAUDE.local.md | Gerarchia, regole associate a percorsi, @import, skills, hooks | Solo Claude. Non funziona in Cursor / Codex / Copilot |
.cursor/rules/*.mdc | Solo Cursor | .cursor/rules/<rule>.mdc | Associazione automatica in base al tipo di file (TS, Python, percorsi specifici) | Solo Cursor, sintassi .mdc non standard |
.github/copilot-instructions.md | GitHub Copilot (web + classico) | .github/ | Funziona direttamente nel browser su GitHub.com | Solo Copilot, duplica AGENTS.md |
L’idea chiave è che AGENTS.md può contenere le istruzioni condivise del progetto, mentre il caricamento e le impostazioni personali richiedono ancora una configurazione distinta per ogni client. Claude Code ha CLAUDE.local.md per questo e Cursor ha file .mdc locali sotto user. AGENTS.md da solo non offre questa possibilità: occorre combinarlo con altri file oppure accordarsi in team per scrivere le regole personali in sezioni escluse da git.
Un altro dettaglio importante riguarda i monorepo. Codex e Cursor applicano la regola «vince l’AGENTS.md più vicino»:
«In un monorepo, inserisci un AGENTS.md separato in ogni pacchetto. Gli agenti leggono automaticamente il file più vicino nella struttura delle directory e quello più vicino prevale.»
(agents.md, tradotto dall’inglese)
Il sito agents.md menziona che il monorepo principale di OpenAI contiene 88 file AGENTS.md per diversi sottopacchetti. Se lavori in un monorepo, distribuisci le regole su più livelli: regole generali alla radice, regole specifiche nelle sottocartelle.
Cosa dovrebbe contenere un buon AGENTS.md?
Punto chiave
La struttura di un buon AGENTS.md comprende 8 sezioni presenti nella maggior parte dei file più diffusi: Panoramica del progetto, Comandi di configurazione, Stile del codice, Suggerimenti per l’ambiente di sviluppo, Istruzioni per i test, Linee guida per le PR, Considerazioni sulla sicurezza e Limiti (cosa non fare). Tutto il resto è facoltativo. Regola principale: ogni voce deve essere un comando esatto o un esempio concreto, non un’idea generica come «scrivi codice pulito».
Il sito agents.md propone un formato flessibile, «qualsiasi Markdown». Ma l’80% dei buoni file esistenti contiene le stesse otto sezioni. Regola principale: ogni voce dovrebbe essere un comando esatto o un esempio concreto. Un’idea astratta come «scrivi codice pulito» verrà ignorata dall’agente.
- Panoramica del progetto — 2–3 righe. Cos’è il progetto, a chi è destinato e qual è il suo obiettivo principale. Niente marketing. Esempio: «Bot Telegram per l’onboarding a un workshop a pagamento. Stack: Next.js 14, Prisma, PostgreSQL. Si attiva quando viene aggiunto un nuovo record a
purchases.» - Comandi di configurazione — comandi shell esatti per l’esecuzione in locale.
npm install,npm run dev,npm run build. Niente «di solito facciamo così». - Stile del codice / convenzioni — regole specifiche con un esempio, non «scrivi in modo pulito». Per esempio: «TypeScript strict, apici singoli, niente esportazioni predefinite, nomi dei componenti in PascalCase, gli hook iniziano con
use.» - Suggerimenti per l’ambiente di sviluppo — dove si trovano le cose importanti. Quali variabili servono in
.env, dove sono conservati i segreti, quali porte sono in uso e come lavorare con il DB locale. - Istruzioni per i test — come eseguire un test specifico e cosa significa che è «verde». Per esempio:
npm test -- --testPathPattern=user-auth; ci si aspetta il 100% dei test superati. - Linee guida per PR / commit — formato dei messaggi di commit, checklist prima della PR (test, linter, documentazione) e chi approva.
- Considerazioni sulla sicurezza — cosa non deve mai accadere. «Non eseguire mai il commit di
.env. I segreti devono stare solo in Vault. Non mostrare nei log i dati personali degli utenti.» - Limiti / Non fare mai questo — divieti con un’alternativa. «Non usare
git push --forcesu main. Se devi annullare una modifica, usagit revertogit resetsu un feature branch.»
Per ogni sezione, applica il principio «un comando invece di un’idea». L’agente ignorerà «fai attenzione alle migrazioni». Seguirà invece «Prima di alembic upgrade head, esegui alembic check. Se segnala un errore, non applicare la migrazione; chiedimelo».
Modello AGENTS.md pronto all’uso (copia e adatta)
Punto chiave
Di seguito trovi un modello AGENTS.md di partenza per un tipico progetto web. Copialo nella radice del repository, sostituisci <project-name>, <stack>, i comandi esatti e rimuovi le sezioni che non ti servono. Adattarlo richiede 20–30 minuti, o anche di più se è la prima volta.
# AGENTS.md
## Project overview
<project-name> - <one phrase describing its purpose>.
Stack: <Next.js / Python / Go / ...>.
Main entities: <users, orders, posts ...>.
Details for people are in README.md.
## Setup commands
```bash
# first install
npm install
cp .env.example .env # then fill in manually; see list below
# run
npm run dev # dev server on :3000
npm run build # production build
npm run start # run production build
```
## Dev environment
- Node 20+ (via nvm: `nvm use 20`)
- PostgreSQL 16 locally on :5432 (`docker-compose up postgres`)
- Redis is optional, needed only for queues (`docker-compose up redis`)
- `.env`: `DATABASE_URL`, `STRIPE_KEY`, `RESEND_API_KEY`, `JWT_SECRET`
- Never read the entire `.env` file. If you need one variable: `grep "^VAR=" .env`
## Code style
- TypeScript strict mode
- Single quotes, no semicolons (unless ESLint requires them)
- Imports: external first, then internal via `@/`, then relative
- Components in PascalCase; hooks start with `use`
- No `any` without an explicit comment explaining “why it can’t be typed”
Example of a good module:
```ts
import { z } from 'zod'
const UserSchema = z.object({
email: z.string().email(),
name: z.string().min(2),
})
export function parseUser(raw: unknown) {
return UserSchema.parse(raw)
}
```
## Testing
```bash
npm test # all tests
npm test -- --testPathPattern=auth # auth only
npm test -- --watch # watch mode
```
All tests must pass (be green) before committing. If a test is red, don’t commit; ask me what to do.
## Pull request guidelines
- Commit format: `<type>(<scope>): <description>` (`feat(auth): add magic-link`)
- Before PR: `npm run build && npm test && npm run lint`
- PR description = what changes, why, and how to test
- Don’t approve your own PR—always wait for human review
## Security
- Secrets only in `.env` and Vault, never in code
- Don’t log personal data (email, phone, name)
- When working with the production DB, use read-only queries only unless explicitly authorized
- Don’t hardcode external service API keys (Stripe, OpenAI) in tests
## Never do this
- Don’t `git push --force` to main. If you need to roll back, use `git revert` or open a new PR
- Don’t run DB migrations without `alembic check` (or the equivalent in your ORM)
- Don’t use `npm install -g` or `sudo` for project dependencies
- Don’t add dependencies without approval (especially heavy ones: webpack plugins, ORM)
In media, il modello contiene 80–120 righe. Se il file supera le 150 righe, è un segnale che serve riorganizzarlo: sposta qualcosa in docs/, aggiungi un collegamento o comprimi qualcosa in una riga. In pratica, i file di 100–150 righe funzionano meglio; oltre quel punto, i miglioramenti della qualità iniziano a invertirsi.
Quali 5 regole rendono AGENTS.md davvero utile?
Punto chiave
Un buon AGENTS.md segue cinque regole: comandi invece di idee, divieti accompagnati da alternative, una sola fonte di verità, criteri di completamento verificabili e un file più corto di 150 righe.
Comandi invece di idee. Un agente non capisce «fai attenzione alle migrazioni». Seguirà
alembic checkprima dialembic upgrade head. Gli agenti lavorano con comandi e condizioni, non con stati d’animo. Formula tutte le regole chiave come «fai X, altrimenti Y».Divieti accompagnati da un’alternativa. Un semplice «non eseguire un force push» viene ignorato silenziosamente dall’agente dopo due o tre prompt. Funziona l’abbinamento «non fare X; fai Y invece». Esempio: «non usare
git push --forcesu main; se devi annullare una modifica, usagit reverto apri una nuova PR».Una sola fonte di verità. L’AGENTS.md nella radice è la fonte di verità per l’intero progetto. Se hai un monorepo, usa file AGENTS.md annidati nelle sottocartelle, seguendo la regola «vince quello più vicino». Niente file paralleli con istruzioni in conflitto.
Criteri di completamento verificabili. «I test devono passare» non serve a nulla. Un criterio preciso è:
npm testrestituisce il codice di uscita 0 e non stampaFAILsu stdout. Anche «il codice deve essere pulito» non serve a nulla. Un criterio preciso è:npm run linttermina senza avvisi. Un agente capisce cosa significa «completato» solo se descrivi esplicitamente la condizione.Un file più corto di 150 righe. Oltre le 150 righe, le metriche iniziano a peggiorare: l’agente impiega più contesto a leggere il file e si perde le regole importanti. Se non ci sta, sposta i dettagli in
docs/architecture.mde collegalo da AGENTS.md, lasciando nel file solo comandi e limiti.
Quali 10 errori trasformano AGENTS.md in spazzatura?
Punto chiave
Il motivo principale per cui AGENTS.md non funziona è la vaghezza. In uno studio su più di 2.500 repository, il GitHub Blog ha mostrato che la maggior parte dei file fallisce perché è scritta in termini troppo generici. Per esempio, «Sei un assistente di programmazione disponibile» non fornisce all’agente neanche una sola informazione utile. Di seguito trovi 10 errori tipici e come si manifestano nei file scritti male: duplicare README, prosa senza struttura, oltre 30 divieti senza alternative, priorità in conflitto, segreti hardcoded, documentazione obsoleta e un eccesso di architettura per attività semplici.
Regole vaghe senza comandi. L’agente ignorerà «fai attenzione alle migrazioni»: per lui è una frase vuota. Funziona solo un comando specifico con una condizione: «Esegui
alembic checkprima dialembic upgrade head. Se c’è un errore, non applicare la migrazione; chiedimelo».«Codice pulito». Una frase inutile. Sostituiscila con uno schema specifico: «Usa componenti funzionali con hook. Esempio:
function LoginForm() { const [email, setEmail] = useState(''); ... }».Prosa senza struttura. Se AGENTS.md contiene 300 righe di prosa senza titoli, l’agente impiegherà 80K token di contesto in passaggi irrilevanti e si perderà ciò che conta. Usa titoli H2/H3, sezioni brevi ed elenchi puntati.
Un file più lungo di 150 righe. Le metriche di qualità peggiorano oltre questa soglia. Dividilo in un file principale e collegamenti ai dettagli in
docs/.Oltre 30 divieti senza alternative. Se il file contiene un lungo elenco di «non fare X, non fare Y» senza spiegare «fai invece Z», l’agente procederà a tentoni.
Duplicare README.md. Se hai già scritto in README «come installare ed eseguire», non copiarlo in AGENTS.md. Rimanda invece a README con una riga e descrivi in AGENTS.md ciò di cui l’agente ha bisogno ma i collaboratori umani no.
Includere segreti nel codice. AGENTS.md potrebbe essere pubblico, perché si trova in git. Non inserire chiavi API, token o password reali. Includi solo riferimenti agli archivi dei segreti: «Vedi Vault:
secret/staging/db».Priorità in conflitto senza gerarchia. «Procedi velocemente» + «mantieni una copertura dei test del 90%» lascia l’agente indeciso su cosa scegliere. Ordinale esplicitamente: «Prima copertura dei test ≥80%, poi velocità. Se sono in conflitto, hanno la precedenza i test».
Documentazione obsoleta. Una descrizione dell’architettura che parla di REST + polling quando ormai si usano WebSocket. L’agente segue la descrizione obsoleta e compromette l’architettura. Regola: aggiorna AGENTS.md nella stessa PR del codice ogni volta che cambia l’architettura.
Eccesso di architettura per un compito semplice. Se qualcuno ha chiesto di modificare due righe in una configurazione, l’agente non dovrebbe dover leggere l’intera topologia di 14 microservizi. Sposta l’architettura «approfondita» in
docs/architecture.md; in AGENTS.md lascia solo «se il compito riguarda l’architettura, leggidocs/architecture.md».
Lo studio del GitHub Blog su oltre 2.500 repository AGENTS.md riporta la conclusione principale:
«La maggior parte dei file per agenti non funziona perché è troppo generica. “Sei un assistente di programmazione disponibile” non funziona.»
(GitHub Blog, tradotto dall’inglese)
Come mantenere AGENTS.md e CLAUDE.md nello stesso repository?
Punto chiave
Tre scenari: (1) solo Claude Code: tieni CLAUDE.md; AGENTS.md non serve. (2) Solo strumenti diversi da Claude (Codex, Cursor, Copilot, Junie): usa AGENTS.md come unica fonte di verità. (3) Team misto con Claude Code e altri strumenti: fai di AGENTS.md il file principale. Se non hai regole separate per Claude, puoi fare a meno di CLAUDE.md: dalla versione 2.1.277, Claude Code legge AGENTS.md autonomamente. Se invece hai regole separate, collega AGENTS.md a CLAUDE.md tramite collegamento simbolico o importazione @AGENTS.md. Su macOS e Linux rinomina soltanto quando AGENTS.md non esiste. Se entrambi i file esistono, conserva e unisci prima le regole, poi usa un breve CLAUDE.md con @AGENTS.md; non sovrascrivere mai AGENTS.md. Su Windows i collegamenti simbolici richiedono la Modalità sviluppatore, quindi è più semplice usare un’importazione.
La principale questione pratica è come convivere con entrambi i file senza duplicare i contenuti. Ci sono tre scenari:
Scenario 1: solo Claude Code. Tieni CLAUDE.md e usa tutte le funzionalità di Claude Code: ~/.claude/CLAUDE.md per le istruzioni a livello utente, CLAUDE.md per il progetto, CLAUDE.local.md per le personalizzazioni personali, @import per includere altri file e .claude/skills/ per le skill specializzate. AGENTS.md non serve.
Scenario 2: più client di programmazione. Conserva le regole condivise in AGENTS.md, poi collega e verifica ogni client separatamente. Gemini CLI permette di configurare il nome del file di contesto; Aider può caricare un file tramite la configurazione di lettura. Sono percorsi espliciti, non una scoperta automatica identica.
| Percorso di caricamento | Cosa verificare |
|---|---|
| Scoperta automatica di AGENTS.md | Regole documentate del client installato per radice, file annidati e priorità |
| Configurazione esplicita, per esempio Gemini CLI o Aider | Nome/percorso configurato e vista del contesto caricato nel client |
| Caricamento condizionale o importazione in Claude Code | Versione installata e precedenza dei file; consulta la guida AGENTS.md per Claude Code |
In un repository di prova innocuo, avvia una sessione nuova e aggiungi un’istruzione univoca innocua, come «includi il marcatore instructions-loaded nella risposta di prova». Controlla la vista documentata dei file caricati o i log del client, oltre alla risposta. Ripeti per ogni client e versione che usi davvero. Una risposta del modello che afferma di aver letto il file non è una prova indipendente del caricamento; un test riuscito non dimostra il supporto in tutti gli altri strumenti.
Scenario 3: team misto (Claude Code + altri strumenti). È la configurazione più comune nel 2026. La soluzione è rendere AGENTS.md il file principale. Se non hai regole riservate a Claude Code, non creare affatto CLAUDE.md: dalla versione 2.1.277, Claude Code legge AGENTS.md quando il progetto non contiene CLAUDE.md. Se invece hai regole di questo tipo, crea CLAUDE.md come collegamento simbolico o come breve file di rimando con un’importazione @AGENTS.md.
Prima di modificare i file, esaminali e salvane una copia. Se esistono entrambi, unisci le istruzioni condivise non contraddittorie in AGENTS.md e conserva quelle specifiche di Claude in CLAUDE.md con @AGENTS.md. Conserva i collegamenti simbolici esistenti anziché sostituirli.
Solo per un CLAUDE.md regolare quando AGENTS.md è assente, questo controllo macOS/Linux rifiuta di sovrascrivere un file o collegamento già presente:
if [ -e AGENTS.md ] || [ -L AGENTS.md ]; then
printf '%s\n' 'STOP: AGENTS.md esiste; unire prima i due file.' >&2
elif [ -f CLAUDE.md ] && [ ! -L CLAUDE.md ]; then
mv CLAUDE.md AGENTS.md && ln -s AGENTS.md CLAUDE.md
else
printf '%s\n' 'STOP: esaminare prima il percorso CLAUDE.md esistente.' >&2
fi
Dopo la rinomina riuscita, CLAUDE.md è un collegamento simbolico ad AGENTS.md. Tutti gli agenti che leggono AGENTS.md vedono gli stessi contenuti. Claude Code, che legge CLAUDE.md, vede le stesse istruzioni tramite il collegamento simbolico.
Su Windows, creare un collegamento simbolico richiede la Modalità sviluppatore (o i privilegi di amministratore), cosa che potrebbe non essere comoda per tutto il team. Un’alternativa è un CLAUDE.md breve che importa AGENTS.md:
# CLAUDE.md
@AGENTS.md
## Claude Code specific
- Use .claude/skills/ for specialized prompts
- When working with Skills, consult .claude/skills/INDEX.md
- Use Plan Mode before major changes (Shift+Tab)
In Claude Code, questa sintassi importa AGENTS.md con una sola riga e aggiunge sotto le specificità di Claude Code. Se in seguito vuoi rimuovere AGENTS.md, basta eliminare l’importazione. Questa riga non provoca una doppia lettura: secondo la documentazione di Claude Code, il file AGENTS.md non viene caricato due volte, neanche se è già accessibile autonomamente.
Disposizione canonica per un team che usa più strumenti nel 2026:
repo-root/
├── AGENTS.md # fonte di verità, ≤150 righe
├── CLAUDE.md # solo se ci sono regole specifiche per Claude: collegamento simbolico → AGENTS.md OPPURE @AGENTS.md + aggiunte
├── .cursor/rules/ # eccezioni mirate solo per Cursor
├── .github/copilot-instructions.md # “Vedi AGENTS.md”, se usato
└── docs/architecture.md # architettura approfondita richiamata da AGENTS.md
Maggiori informazioni su CLAUDE.md sono disponibili nella guida «Come configurare correttamente CLAUDE.md». Per approfondire il motivo per cui un agente ha bisogno di un file di istruzioni lungo, leggi «Che cos’è il context engineering».
Cosa è cambiato nel 2026: perché AAIF ha portato AGENTS.md sotto la Linux Foundation?
Punto chiave
Il 9 dicembre 2025, la Linux Foundation ha costituito la Agentic AI Foundation (AAIF) con tre progetti fondatori: AGENTS.md di OpenAI, MCP di Anthropic e goose di Block. I membri fondatori erano AWS, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft e OpenAI. Entro il 24 febbraio 2026, la fondazione comprendeva 146 organizzazioni. Questo significa che AGENTS.md ha smesso di essere «una cosa di OpenAI» ed è diventato uno standard di settore insieme a MCP. In pratica, se stai costruendo un prodotto che dovrebbe funzionare con agenti di diversi fornitori, avere AGENTS.md nella radice è una buona prassi fondamentale. Senza, dovrai mantenere tre o quattro file paralleli, destinati a divergere nel giro di un mese.
La principale vicenda politica del maggio 2026 nella programmazione con IA non è stata un’altra uscita di un modello, ma il consolidamento dei formati. In precedenza, ogni fornitore aveva il proprio file di regole: una soluzione comoda per i fornitori ma scomoda per i team che lavoravano con diversi strumenti.
In un comunicato stampa del 9 dicembre 2025, la Linux Foundation ha annunciato la Agentic AI Foundation come riferimento comune per tre formati:
- AGENTS.md di OpenAI — un formato di file di istruzioni per agenti
- Model Context Protocol (MCP) di Anthropic — un protocollo per collegare strumenti esterni agli agenti
- goose di Block — un framework open source per agenti
Dal comunicato stampa della Linux Foundation:
«Riunire questi progetti sotto l’ombrello della AAIF garantisce che possano svilupparsi con la trasparenza e la stabilità che solo una governance aperta può offrire.»
(comunicato stampa della Linux Foundation, 9 dicembre 2025, tradotto dall’inglese)
Entro il 24 febbraio 2026, 146 organizzazioni facevano parte della AAIF (97 nuovi membri in due mesi). Tra i nuovi membri Gold c’erano Red Hat, ServiceNow, Akamai, Lenovo, JPMorgan Chase, Huawei, Hitachi, UiPath, American Express e Autodesk. Anthropic è al livello Platinum e promuove MCP. OpenAI è al livello Platinum e promuove AGENTS.md. Block è al livello Platinum con goose.
Questo cambia il posizionamento di AGENTS.md: da «formato OpenAI» a standard di settore. Nella primavera del 2026, Claude Code era ancora in disparte, ma a settembre, con la versione 2.1.277, ha imparato a leggere autonomamente AGENTS.md. CLAUDE.md non è scomparso e, per impostazione predefinita, ha ancora la precedenza se è presente nel progetto.
Un punto di partenza pratico è conservare le regole condivise del progetto in AGENTS.md e configurare per ogni client l’importazione, il file intermedio o la lettura esplicita richiesti. Per Claude Code, verifica la versione installata e la precedenza dei file di istruzioni prima di scegliere un’importazione in CLAUDE.md o un collegamento simbolico. Verifica il caricamento in ogni client: qui non è stata accertata alcuna percentuale di copertura.
E adesso?
AGENTS.md è il primo elemento fondamentale per «mettersi d’accordo con un agente affinché lavori in modo prevedibile». Il secondo è una cartella di conoscenze del progetto, che contiene il contesto aziendale, il pubblico, i prodotti e i prezzi. Il terzo è il context engineering, che riunisce tutto: quali file vede l’agente a ogni passaggio, come viene conservato lo stato tra le sessioni e come passare da un modello all’altro.
Materiali pratici: documentazione Ailoot.
Fonti
- agents.md — sito ufficiale dello standard
- Linux Foundation: costituzione della Agentic AI Foundation (9 dicembre 2025)
- AAIF accoglie 97 nuovi membri (24 febbraio 2026)
- OpenAI co-fonda la Agentic AI Foundation
- GitHub Changelog: l’agente di programmazione Copilot supporta AGENTS.md (28 agosto 2025)
- GitHub Blog: lezioni da oltre 2500 repository AGENTS.md
- Documentazione di Claude Code: come Claude legge AGENTS.md
- Linee guida di JetBrains Junie
- Documentazione Cursor Rules
Altri materiali e strumenti: Ailoot.
Maggiori dettagli
Domande frequenti
Cosa faccio se AGENTS.md e CLAUDE.md esistono entrambi?
Salva copie e confronta i file prima di modificarli. Unisci le regole condivise in AGENTS.md, mantieni quelle specifiche di Claude in CLAUDE.md e aggiungi un’importazione @AGENTS.md. Non rinominare un file sopra l’altro.
Come rendo verificabili le istruzioni?
Scrivi comandi esatti di configurazione e test, definisci l’esito atteso e cosa l’agente non deve modificare. Sposta l’architettura dettagliata in documenti collegati per mantenere leggibili le istruzioni principali.