Utilizzo degli hook contestuali - Amazon Q Developer

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo degli hook contestuali

I context hook sono una funzionalità della CLI di Amazon Q Developer che puoi utilizzare per inserire automaticamente il contesto nelle tue conversazioni con Q Developer. Invece di aggiungere manualmente il contesto con il /context comando, gli hook di contesto eseguono comandi e includono il loro output come contesto.

Tipi di hook contestuali

Q Developer CLI supporta due tipi di hook contestuali:

Hook per l'avvio della conversazione

Esegui una volta all'inizio di una conversazione. Il loro output viene aggiunto al contesto della conversazione e persiste per tutta la sessione.

Ganci per prompt

Esegui con ogni messaggio utente. Il loro output viene aggiunto solo al prompt corrente.

Gestione degli hook contestuali

È possibile gestire gli hook di contesto utilizzando il /context hooks comando nella CLI di Q Developer.

Visualizza i tuoi hook

Per visualizzare tutti gli hook configurati a livello globale e di profilo:

/context hooks

Questo comando visualizza tutti gli hook configurati per il profilo corrente e a livello globale, insieme al relativo stato (abilitato o disabilitato).

Aggiungi un hook

Per aggiungere un nuovo hook contestuale:

/context hooks add [--global] <name> --trigger <trigger> --command <command>
<name>

Un nome univoco per l'hook

<trigger>

Uno per_prompt o l'altro conversation_start

<command>

Il comando shell da eseguire

--global

(Facoltativo) Aggiunge l'hook alla configurazione globale anziché al profilo corrente

Esempio Aggiungere un git status hook
/context hooks add git-status --trigger per_prompt --command "git status --short"

Rimuovi un gancio

Per rimuovere un hook contestuale esistente:

/context hooks rm <name> [--global]

Abilita o disabilita gli hook

Per abilitare un hook specifico:

/context hooks enable [--global] <name>

Per disabilitare un hook specifico:

/context hooks disable [--global] <name>

Per abilitare tutti gli hook:

/context hooks enable-all [--global]

Per disabilitare tutti gli hook:

/context hooks disable-all [--global]

Fatti aiutare con gli hook

Per visualizzare una guida dettagliata sui comandi hooks:

/context hooks help

Configurazioni

È possibile verificare la configurazione degli hook nelle seguenti posizioni.

Se l'hook è globale:

~/.aws/amazonq/global_context.json

Se l'hook è basato sul profilo:

~/.aws/amazonq/profiles/profile-name/context.json

Casi d'uso di esempio

Gli esempi seguenti mostrano casi d'uso comuni per gli hook contestuali.

Stato Git

Aggiungi un hook per mostrare lo stato di git ad ogni prompt:

/context hooks add git-status --trigger per_prompt --command "git status --short"

Questo hook esegue il git status --short comando prima di ogni prompt e include l'output nella conversazione con Q Developer. Questo aiuta Q Developer a capire lo stato attuale del tuo repository git quando fai domande sul controllo della versione o hai bisogno di aiuto con i comandi git.

Informazioni sul progetto

Aggiungi un hook per mostrare le informazioni sul progetto all'inizio di una conversazione:

/context hooks add project-info --trigger conversation_start --command "echo 'Project: '$(basename $(pwd))"

Questo hook viene eseguito una volta all'inizio della conversazione e include il nome del progetto corrente nel contesto. Questo aiuta Q Developer a fornire risposte più pertinenti e specifiche per il tuo progetto.

Suggerimento

Puoi espandere questo hook per includere ulteriori informazioni sul progetto, come il linguaggio di programmazione, il framework o la struttura del progetto.

Comportamento e limitazioni

Quando utilizzi gli hook contestuali, tieni presenti i seguenti comportamenti e limitazioni:

  • Gli hook funzionano in parallelo per ridurre al minimo l'impatto sui tempi di risposta

  • L'output dell'hook è formattato e chiaramente contrassegnato nel contesto

  • Il /clear comando rivaluta gli hook di avvio della conversazione

  • Gli hook sono memorizzati nella configurazione CLI di Q Developer

  • Attualmente sono supportati solo gli hook di comando in linea

  • L'output degli hook è limitato a 10 KB per hook

  • Per impostazione predefinita, gli hook scadono dopo 5 secondi

Considerazioni relative alla sicurezza

Quando utilizzi gli hook contestuali, considera le seguenti best practice di sicurezza:

  • Gli hook contestuali eseguono i comandi della shell con le autorizzazioni utente correnti. Fai attenzione ai comandi che includi negli hook, poiché hanno lo stesso accesso del tuo account utente.

  • Fai attenzione quando aggiungi hook che potrebbero esporre informazioni sensibili, come credenziali o dati personali. Controlla il risultato dei tuoi hook per assicurarti che non contengano informazioni che non desideri condividere.

  • Valuta la possibilità di disattivare gli hook quando non sono necessari. Ciò riduce il rischio di esporre accidentalmente informazioni sensibili.

  • Non utilizzate gli hook per eseguire comandi che potrebbero modificare il sistema o i dati. Gli hook devono essere utilizzati per leggere informazioni, non per apportare modifiche.

  • Fai attenzione quando usi gli hook in ambienti condivisi. Altri utenti potrebbero essere in grado di vedere l'output dei tuoi hook se hanno accesso alle tue sessioni CLI di Q Developer.

avvertimento

Non includere mai nei tuoi hook comandi che espongono password, chiavi di accesso o altre credenziali. Queste informazioni potrebbero essere archiviate nella cronologia delle conversazioni e potenzialmente esposte ad altri.

Risoluzione dei problemi

Se riscontri problemi con gli hook contestuali, prova le seguenti soluzioni:

Risoluzione dei problemi relativi agli hook contestuali
Problema Soluzione
Hook non funziona Verifica che l'hook sia abilitato con /context hooks
Il comando fallisce Prova il comando direttamente nel tuo terminale per assicurarti che funzioni
L'output è troppo grande Modifica il comando per limitare la dimensione dell'output
Timeout del collegamento Ottimizza i comandi per un'esecuzione più rapida