Skip to main content

Pourquoi un agent personnalisé est nécessaire

Laravel Boost prend en charge en standard les principaux outils de coding IA tels que Claude Code, Cursor, Codex, GitHub Copilot (VS Code). Cependant, pour prendre en charge des outils internes, des agents d’IA émergents ou des workflows propres, vous devez implémenter un agent personnalisé à l’aide des mécanismes d’extension de Boost. Situations où un agent personnalisé est utile :
  • Vous utilisez un IDE ou un outil d’IA non pris en charge par Boost
  • Vous voulez intégrer Boost dans un workflow de développement interne ou un pipeline CI/CD propre
  • L’agent a un format de fichier de configuration ou une procédure d’installation spécifiques

Architecture d’extension de Boost

La classe de base Agent

Tous les agents héritent de Laravel\Boost\Install\Agents\Agent. Cette classe abstraite fournit :
  • La détection de l’agent (à l’échelle système ou du projet)
  • L’installation du serveur MCP (basée sur des fichiers ou des commandes shell)
  • Un hook de transformation des guidelines (transformGuidelines)
Deux méthodes abstraites sont obligatoires à implémenter.

Les trois contrats

Pour activer sélectivement les fonctionnalités de Boost, implémentez les contrats ci-dessous selon vos besoins.
Les trois contrats sont tous facultatifs. Une implémentation qui ne prend en charge que les guidelines, sans MCP, est possible.

Le contrat SupportsGuidelines

guidelinesPath() retourne le chemin du fichier dans lequel les guidelines générées seront écrites. Adaptez-le au format lu par l’agent : CLAUDE.md pour Claude Code, .cursor/rules/laravel-boost.mdc pour Cursor, etc. transformGuidelines() est un hook pour transformer le Markdown après génération. Vous pouvez ajouter un en-tête spécifique à l’agent ou convertir vers un format particulier. L’implémentation par défaut de la classe de base Agent retourne la chaîne telle quelle.

Le contrat SupportsMcp

Comme la classe de base Agent fournit une implémentation par défaut de installMcp() et installHttpMcp(), il suffit dans la plupart des cas de surcharger mcpInstallationStrategy() et mcpConfigPath(). Il existe deux stratégies d’installation.

Le contrat SupportsSkills

Retourne le chemin du répertoire de skills lu par l’agent. Adaptez-le aux spécifications de l’agent : .claude/skills pour Claude Code, .cursor/skills pour Cursor, etc.

Création d’un agent personnalisé

Implémentons concrètement notre propre classe d’agent. Nous prendrons pour exemple un agent virtuel « MyAgent » intégré dans un workflow CI/CD propre.
1

Créer la classe d'agent

Créez app/Boost/MyAgent.php.
systemDetectionConfig() et projectDetectionConfig() sont utilisées par Boost pour détecter automatiquement l’agent au niveau système et projet. Lors de l’exécution de boost:install, l’agent correspondant sera automatiquement affiché comme candidat.
2

Enregistrer l'agent

Enregistrez l’agent personnalisé dans la méthode boot de App\Providers\AppServiceProvider.
Après enregistrement, lancer php artisan boost:install fait apparaître MyAgent parmi les choix.
3

Vérifier le fonctionnement

Sur l’écran de sélection des agents à installer, MyAgent apparaîtra. En le sélectionnant, MYAGENT.md, .myagent.json et .myagent/skills/ seront générés.

Personnalisation des guidelines

Configuration de guidelinesPath

L’emplacement de lecture des guidelines varie selon l’agent.
Permettre l’écrasement depuis un fichier de configuration augmente la flexibilité.

Agents nécessitant un frontmatter

Pour les formats qui nécessitent un frontmatter, comme les .cursor/rules/*.mdc de Cursor, faites retourner true par frontmatter().

Post-traitement des guidelines

Utilisez transformGuidelines() pour transformer le Markdown après génération.

Ajout de guidelines d’IA personnalisées

Pour ajouter des règles spécifiques au projet dans les guidelines Boost, placez des fichiers Blade dans le répertoire .ai/guidelines/.
Exemple de fichier :
Lors de l’exécution de boost:install, ces guidelines sont automatiquement combinées avec les guidelines intégrées de Boost et produites en sortie.

Surcharger les guidelines intégrées

Si vous placez un fichier personnalisé au même chemin qu’une guideline intégrée de Boost, votre fichier a priorité.

Ajout de skills personnalisés

Création de SKILL.md

Définissez la skill dans .ai/skills/{nom-de-la-skill}/SKILL.md.
SKILL.md est composé d’un frontmatter YAML et d’instructions en Markdown.

Génération PDF de la facture

Le PDF est généré avec barryvdh/laravel-dompdf :
Les skills sont conçues pour être « chargées uniquement quand nécessaire ». En séparant les informations toujours utiles dans les guidelines et les patterns détaillés propres à une tâche dans les skills, vous optimisez la consommation de contexte de l’IA.

Surcharger les skills intégrées

Créer une skill personnalisée du même nom qu’une skill intégrée de Boost écrase cette dernière.

Ajouter le support Boost à un package tiers

Pour ajouter la prise en charge de Boost à votre propre package, placez les fichiers de configuration dans le répertoire resources/boost/ du package.

Ajouter des guidelines

Ajouter des skills

Lorsqu’un utilisateur du package exécute php artisan boost:install, ces guidelines et skills sont automatiquement détectées et affichées comme cibles d’installation.

Exemple pratique : agent personnalisé pour un pipeline CI/CD propre

Voici l’implémentation complète d’un agent virtuel « PipelineAgent » intégré dans un pipeline CI/CD interne. Cet agent ne prend en charge que les guidelines, pas le MCP ni les skills.
Enregistrer dans AppServiceProvider :
En environnement CI, vous pouvez générer uniquement les guidelines avec la commande suivante :

Liens de référence

ClaudeCode.php — exemple officiel

Vous pouvez consulter le code source complet de l’agent ClaudeCode fourni avec Boost.

Agent Skills

Consultez les spécifications du format SKILL.md et les bonnes pratiques.

Laravel Boost Custom Agent for GitHub Copilot CLI

Exemple de package publié compatible à la fois avec Copilot CLI et Testbench

Laravel Boost Custom Agent for PhpStorm with GitHub Copilot

Exemple de package publié pour le plugin GitHub Copilot de PhpStorm
Dernière modification le 13 juillet 2026