Introduzione
laravel/agent-detector è una utility leggera per rilevare se il codice PHP viene eseguito all’interno di un agente AI o di un ambiente di sviluppo automatizzato. È stato pubblicato come pacchetto ufficiale Laravel ad aprile 2026. Ora che gli agenti AI sono entrati profondamente nel processo di sviluppo, è diventato importante sapere in quale ambiente sta girando il codice stesso. Nello sviluppo reale sorgono casi in cui è utile modificare il livello di dettaglio dei log o i rate limit a seconda che la richiesta provenga da un agente AI o da un essere umano, oppure restituire risposte specifiche per gli agenti.Installazione
Uso di base
ChiamandoAgentDetector::detect() viene restituito un oggetto AgentResult.
Proprietà di AgentResult
| Proprietà / Metodo | Tipo | Descrizione |
|---|---|---|
$result->isAgent | bool | true se in esecuzione all’interno di un agente AI |
$result->name | ?string | Nome dell’agente (es. "claude"). null se non è un agente |
$result->knownAgent() | ?KnownAgent | Restituisce l’enum KnownAgent. null per agenti sconosciuti |
Elenco degli agenti supportati
| Agente | Metodo di rilevamento (variabile d’ambiente / file) |
|---|---|
| Custom | Variabile d’ambiente AI_AGENT (qualsiasi valore) |
| GitHub Copilot | AI_AGENT=github-copilot, AI_AGENT=github-copilot-cli, COPILOT_MODEL, COPILOT_ALLOW_ALL, COPILOT_GITHUB_TOKEN, COPILOT_CLI |
| Cursor | CURSOR_AGENT |
| Claude | CLAUDECODE o CLAUDE_CODE |
| Cowork | CLAUDE_CODE_IS_COWORK (impostata insieme a CLAUDECODE o CLAUDE_CODE) |
| Gemini | GEMINI_CLI |
| Codex | CODEX_SANDBOX, CODEX_CI, CODEX_THREAD_ID |
| Augment CLI | AUGMENT_AGENT |
| AMP | AMP_CURRENT_THREAD_ID |
| Opencode | OPENCODE_CLIENT o OPENCODE |
| Replit | REPL_ID |
| Devin | Esistenza del file /opt/.devin |
| Antigravity | ANTIGRAVITY_AGENT |
| Pi | PI_CODING_AGENT |
| Kiro CLI | KIRO_AGENT_PATH |
| v0 | AI_AGENT=v0 |
AI_AGENT → variabili d’ambiente note → filesystem.
Configurazione di un agente personalizzato
Impostando un valore qualsiasi nella variabile d’ambienteAI_AGENT, può essere rilevato come agente personalizzato.
Casi d’uso pratici
Rilevare un agente AI in un middleware
Determina l’ambiente di esecuzione in un middleware Laravel e biforca l’elaborazione per gli agenti.Output di log dettagliati in ambiente agente AI
Applicare rate limiting alle richieste degli agenti AI
Modificando la chiave del middlewareThrottleRequests in base al rilevamento dell’agente, puoi definire rate limit diversi per agenti ed esseri umani.
Modificare il comportamento nei comandi console
Esempio di output di un avanzamento dettagliato quando un agente esegue un comando Artisan.Conclusioni
laravel/agent-detector è un pacchetto che raggruppa semplici controlli di variabili d’ambiente e ispezioni del filesystem. Si usa semplicemente chiamando AgentDetector::detect() senza configurazioni complesse.
Ora che gli agenti AI si stanno consolidando come parte del flusso di sviluppo, sapere “da chi (o cosa) viene eseguito il codice” diventerà sempre più importante. Questo pacchetto potrà essere sfruttato in molte situazioni, come log, rate limiting e personalizzazione delle risposte.
Repository laravel/agent-detector
Trovi qui il codice sorgente e l’elenco aggiornato degli agenti supportati.