Uso de ganchos de contexto - Amazon Q Developer

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de ganchos de contexto

Los enlaces de contexto son una función de la CLI para desarrolladores de Amazon Q que puede utilizar para inyectar contexto automáticamente en sus conversaciones con Q Developer. En lugar de añadir contexto manualmente con el /context comando, los enlaces de contexto ejecutan comandos e incluyen su salida como contexto.

Tipos de ganchos de contexto

La CLI de Q Developer admite dos tipos de enlaces de contexto:

Ganchos para iniciar una conversación

Ejecuta una vez al comienzo de una conversación. Su resultado se añade al contexto de la conversación y persiste durante toda la sesión.

Ganchos por mensaje

Se ejecuta con cada mensaje de usuario. Su resultado se agrega solo a la solicitud actual.

Administrar los ganchos contextuales

Puede administrar los enlaces de contexto mediante el /context hooks comando de la CLI de Q Developer.

Vea sus ganchos

Para ver todos los ganchos configurados a nivel global y de perfil:

/context hooks

Este comando muestra todos los ganchos que están configurados para su perfil actual y a nivel global, junto con su estado (activados o deshabilitados).

Añade un gancho

Para añadir un nuevo gancho de contexto:

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

Un nombre único para el anzuelo

<trigger>

per_prompt o conversation_start

<command>

El comando shell a ejecutar

--global

(Opcional) Agregue el enlace a la configuración global en lugar del perfil actual

ejemplo Añadir un gancho de estado de git
/context hooks add git-status --trigger per_prompt --command "git status --short"

Eliminar un gancho

Para eliminar un enlace de contexto existente:

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

Habilita o deshabilita los ganchos

Para habilitar un gancho específico:

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

Para deshabilitar un gancho específico:

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

Para activar todos los ganchos:

/context hooks enable-all [--global]

Para deshabilitar todos los ganchos:

/context hooks disable-all [--global]

Obtén ayuda con los ganchos

Para mostrar la ayuda detallada sobre los comandos de hooks:

/context hooks help

Configuraciones

Puede verificar la configuración de los ganchos en las siguientes ubicaciones.

Si el gancho es global:

~/.aws/amazonq/global_context.json

Si el gancho está basado en un perfil:

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

Ejemplos de casos de uso

Los siguientes ejemplos muestran los casos de uso habituales de los ganchos de contexto.

Estado de Git

Agrega un enlace para mostrar el estado de git con cada mensaje:

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

Este enlace ejecuta el git status --short comando antes de cada mensaje e incluye el resultado en tu conversación con Q Developer. Esto ayuda a Q Developer a entender el estado actual de tu repositorio de git cuando haces preguntas sobre el control de versiones o si necesitas ayuda con los comandos de git.

Información del proyecto

Añade un enlace para mostrar la información del proyecto al inicio de una conversación:

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

Este enlace se ejecuta una vez al principio de la conversación e incluye el nombre del proyecto actual en el contexto. Esto ayuda a Q Developer a proporcionar respuestas más relevantes y específicas para su proyecto.

sugerencia

Puede ampliar este enlace para incluir más información sobre el proyecto, como el lenguaje de programación, el marco o la estructura del proyecto.

Comportamiento y limitaciones

Cuando utilices los enlaces contextuales, ten en cuenta los siguientes comportamientos y limitaciones:

  • Los ganchos se ejecutan en paralelo para minimizar el impacto en el tiempo de respuesta

  • El resultado de Hook está formateado y marcado claramente en el contexto

  • El /clear comando reevalúa los ganchos de inicio de conversación

  • Los ganchos se almacenan en la configuración CLI de Q Developer

  • Actualmente, solo se admiten los ganchos de comandos en línea

  • La salida de los ganchos está limitada a 10 KB por gancho

  • De forma predeterminada, los ganchos se agotan después de 5 segundos

Consideraciones de seguridad

Cuando utilices los enlaces contextuales, ten en cuenta las siguientes prácticas recomendadas de seguridad:

  • Los enlaces de contexto ejecutan comandos de shell con tus permisos de usuario actuales. Ten cuidado con los comandos que incluyes en tus enlaces, ya que tienen el mismo acceso que tu cuenta de usuario.

  • Ten cuidado al añadir enlaces que puedan exponer información confidencial, como credenciales o datos personales. Revisa el resultado de tus ganchos para asegurarte de que no incluyan información que no quieras compartir.

  • Considera la posibilidad de deshabilitar los ganchos cuando no los necesites. Esto reduce el riesgo de exponer accidentalmente información confidencial.

  • No utilice ganchos para ejecutar comandos que puedan modificar el sistema o los datos. Los ganchos deben usarse para leer información, no para realizar cambios.

  • Tenga cuidado al usar ganchos en entornos compartidos. Es posible que otros usuarios puedan ver el resultado de sus enlaces si tienen acceso a sus sesiones de CLI de Q Developer.

aviso

Nunca incluya comandos en sus enlaces que expongan contraseñas, claves de acceso u otras credenciales. Esta información podría almacenarse en tu historial de conversaciones y quedar expuesta a otras personas.

Solución de problemas

Si tienes problemas con los enlaces contextuales, prueba las siguientes soluciones:

Solución de problemas de enlaces contextuales
Problema Solución
El gancho no se ejecuta Compruebe que el gancho esté activado con /context hooks
El comando falla Pruebe el comando directamente en su terminal para asegurarse de que funciona
La salida es demasiado grande Modifique el comando para limitar el tamaño de la salida
Se agota el tiempo de espera Optimice su comando para una ejecución más rápida