Utilisation des hooks contextuels
Les hooks contextuels sont une fonctionnalité de l’interface de ligne de commande d’Amazon Q Developer que vous pouvez utiliser pour injecter automatiquement du contexte dans vos conversations avec Q Developer. Au lieu d’ajouter manuellement du contexte à la commande /context, les hooks contextuels exécutent les commandes et incluent leur sortie en tant que contexte.
Types de hooks contextuels
L’interface de ligne de commande d’Amazon Q Developer prend en charge deux types de hooks contextuels :
- Hooks de démarrage de conversation
-
S’exécutent une fois au début d’une conversation. Leur résultat est ajouté au contexte de la conversation et conservé tout au long de la session.
- Hooks par invite
-
S’exécutent lors de chaque message utilisateur. Leur sortie est ajoutée uniquement à l’invite en cours.
Gestion des hooks contextuels
Vous pouvez gérer les hooks contextuels à l’aide de la commande /context hooks de l’interface de ligne de commande de Q Developer.
Affichage de vos hooks
Pour afficher tous les hooks configurés au niveau global et au niveau du profil :
/context hooks
Cette commande affiche tous les hooks configurés pour votre profil en cours et au niveau global, ainsi que leur statut (activé ou désactivé).
Ajout d’un hook
Pour ajouter un nouveau hook contextuel :
/context hooks add [--global] <name> --trigger <trigger> --command <command>
- <nom>
-
Nom unique du hook
- <déclencheur>
-
per_promptouconversation_start - <commande>
-
Commande shell à exécuter
- --global
-
(Facultatif) Ajoutez le hook à la configuration globale au lieu du profil en cours
Exemple Ajout d’un hook de statut Git
/context hooks add git-status --trigger per_prompt --command "git status --short"
Suppression d’un hook
Pour supprimer un hook contextuel :
/context hooks rm <name> [--global]
Activation ou désactivation de hooks
Pour activer un hook spécifique :
/context hooks enable [--global] <name>
Pour désactiver un hook spécifique :
/context hooks disable [--global] <name>
Pour activer tous les hooks :
/context hooks enable-all [--global]
Pour désactiver tous les hooks :
/context hooks disable-all [--global]
Aide relative aux hooks
Pour afficher l’aide détaillée sur les commandes hook :
/context hooks help
Configurations
Vous pouvez vérifier la configuration de vos hooks aux emplacements suivants.
Si le hook est global :
~/.aws/amazonq/global_context.json
Si le hook est basé sur un profil :
~/.aws/amazonq/profiles/profile-name/context.json
Exemples de cas d’utilisation
Les exemples suivants montrent des cas d’utilisation courants de hooks contextuels.
Statut Git
Ajoutez un hook pour afficher le statut Git à chaque invite :
/context hooks add git-status --trigger per_prompt --command "git status --short"
Ce hook exécute la commande git status --short avant chaque invite et inclut la sortie dans votre conversation avec Q Developer. Ainsi, Q Developer connaît le statut en cours de votre référentiel Git lorsque vous posez des questions sur le contrôle des versions ou que vous avez besoin d’aide avec les commandes Git.
Informations du projet
Ajoutez un hook pour afficher les informations du projet au début d’une conversation :
/context hooks add project-info --trigger conversation_start --command "echo 'Project: '$(basename $(pwd))"
Ce hook s’exécute une fois au début de votre conversation et inclut le nom du projet en cours dans le contexte. Amazon Q Developer peut ainsi fournir des réponses plus pertinentes et spécifiques à votre projet.
Astuce
Vous pouvez développer ce hook pour inclure davantage d’informations du projet, telles que le langage de programmation, le cadre ou la structure du projet.
Comportement et limites
Lorsque vous utilisez des hooks contextuels, tenez compte des comportements et des limites ci-dessous :
-
Les hooks s’exécutent en parallèle pour minimiser l’impact sur le temps de réponse
-
La sortie du hook est formatée et clairement indiquée dans le contexte
-
La commande
/clearréévalue les hooks de démarrage de conversation -
Les hooks sont stockés dans votre configuration de l’interface de ligne de commande d’Amazon Q Developer
-
Actuellement, seuls les hooks des commandes intégrées sont pris en charge
-
La sortie est limitée à 10 Ko par hook
-
Par défaut, les hooks expirent au bout de 5 secondes
Considérations sur la sécurité
Lorsque vous utilisez des hooks contextuels, tenez compte des bonnes pratiques suivantes en matière de sécurité :
-
Les hooks contextuels exécutent des commandes shell avec vos autorisations utilisateur en cours. Faites attention aux commandes que vous incluez dans vos hooks, car elles disposent des mêmes accès que votre compte utilisateur.
-
Faites preuve de prudence lorsque vous ajoutez des hooks susceptibles de révéler des informations sensibles, telles que des informations d’identification ou des données personnelles. Vérifiez la sortie de vos hooks pour vous assurer qu’elle ne contient pas d’informations que vous ne souhaitez pas partager.
-
Pensez à désactiver les hooks lorsqu’ils ne sont pas nécessaires. Cela réduit le risque d’exposition accidentelle d’informations sensibles.
-
N’utilisez pas de hooks pour exécuter des commandes susceptibles de modifier votre système ou vos données. Les hooks doivent être utilisés pour lire des informations, et non pour apporter des modifications.
-
Faites preuve de prudence lorsque vous utilisez des hooks dans des environnements partagés. D’autres utilisateurs pourraient voir la sortie de vos hooks s’ils ont accès à vos sessions dans l’interface de ligne de commande d’Amazon Q Developer.
Avertissement
N’incluez jamais dans vos hooks de commandes qui exposent des mots de passe, des clés d’accès ou d’autres informations d’identification. Ces informations pourraient être stockées dans l’historique de vos conversations et potentiellement exposées à d’autres personnes.
Résolution des problèmes
Si vous rencontrez des problèmes avec vos hooks contextuels, essayez les solutions suivantes :
| Problème | Solution |
|---|---|
| Le hook ne fonctionne pas | Vérifiez que le hook est activé avec /context hooks |
| La commande échoue | Testez la commande directement dans votre terminal pour vous assurer qu’elle fonctionne |
| La sortie est trop volumineuse | Modifiez votre commande pour limiter la taille de la sortie |
| Le hook expire | Optimisez votre commande afin qu’elle s’exécute plus rapidement |