Introduction
laravel/agent-detector est un utilitaire léger permettant de détecter si du code PHP s’exécute au sein d’un agent IA ou d’un environnement de développement automatisé. Il a été publié en avril 2026 en tant que package officiel Laravel. Alors que les agents IA se sont profondément infiltrés dans le quotidien du développement, il devient important de savoir dans quel environnement le code lui-même s’exécute. Sur le terrain, on rencontre des cas où il faut ajuster la verbosité des logs ou la limitation de débit selon qu’une requête vient d’un agent IA ou d’un humain, ou encore renvoyer des réponses spécifiques aux agents.Installation
Utilisation de base
L’appel deAgentDetector::detect() retourne un objet AgentResult.
Propriétés de AgentResult
| Propriété / Méthode | Type | Description |
|---|---|---|
$result->isAgent | bool | true si l’exécution a lieu dans un agent IA |
$result->name | ?string | Nom de l’agent (ex. "claude"). null s’il ne s’agit pas d’un agent |
$result->knownAgent() | ?KnownAgent | Renvoie l’enum KnownAgent. null pour un agent inconnu |
Liste des agents pris en charge
| Agent | Méthode de détection (variables d’env / fichiers) |
|---|---|
| Custom | Variable d’environnement AI_AGENT (n’importe quelle valeur) |
| 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 ou CLAUDE_CODE |
| Cowork | CLAUDE_CODE_IS_COWORK (défini en même temps que CLAUDECODE ou 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 ou OPENCODE |
| Replit | REPL_ID |
| Devin | Présence du fichier /opt/.devin |
| Antigravity | ANTIGRAVITY_AGENT |
| Pi | PI_CODING_AGENT |
| Kiro CLI | KIRO_AGENT_PATH |
| v0 | AI_AGENT=v0 |
AI_AGENT → variables d’environnement connues → système de fichiers.
Configurer un agent personnalisé
En attribuant une valeur quelconque à la variable d’environnementAI_AGENT, il est possible de détecter un agent personnalisé.
Cas d’usage concrets
Détecter un agent IA dans un middleware
On détermine l’environnement d’exécution dans un middleware Laravel et on adapte le traitement en fonction de l’agent.Produire des logs détaillés dans un environnement d’agent IA
Appliquer une limitation de débit aux requêtes des agents IA
En faisant varier la clé du middlewareThrottleRequests selon la détection d’agent, on peut appliquer des limites différentes aux agents et aux humains.
Adapter le comportement d’une commande console
Exemple d’affichage d’un rapport de progression détaillé lorsqu’une commande Artisan est exécutée par un agent.Conclusion
laravel/agent-detector est un package qui regroupe une simple vérification de variables d’environnement et une inspection du système de fichiers. Aucune configuration complexe n’est nécessaire : il suffit d’appeler AgentDetector::detect().
Alors que les agents IA s’installent durablement dans le flux de développement, il devient de plus en plus important de savoir « qui (ou quoi) exécute le code ». Ce package se révélera utile dans de nombreux contextes : logs, limitation de débit, personnalisation des réponses, etc.
Dépôt laravel/agent-detector
Le code source et la liste à jour des agents pris en charge se trouvent ici.