Administración del 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.

Administración del contexto

Elegir el enfoque de contexto correcto

Amazon Q ofrece tres formas de proporcionar contexto, cada una optimizada para distintos casos de uso:

Enfoque Impacto en la ventana de contexto Persistencia Lo mejor para
Recursos para agentes Siempre activo (consume fichas) Persistente en todas las sesiones Archivos, estándares y configuraciones esenciales del proyecto
Contexto de la sesión Siempre activo (consume fichas) Solo en la sesión actual Archivos temporales, experimentos rápidos
Bases de conocimiento Solo cuando se busca Persistente en todas las sesiones Amplias bases de código, amplia documentación

Diagrama de flujo de decisiones

Utilice este árbol de decisiones para elegir el enfoque contextual adecuado:

  1. ¿Su contenido pesa más de 10 MB o contiene miles de archivos?

    • → Utilice bases de conocimiento

    • No → Continúe con el paso 2

  2. ¿Necesitas este contexto en todas las conversaciones?

    • → Utilice los recursos de los agentes

    • No → Utilice el contexto de la sesión

Referencia rápida:

  • Archivos de proyecto esenciales (README, configuraciones, estándares) → Recursos para agentes

  • Bases de código o conjuntos de documentación de gran tamaño → Bases de conocimiento

  • Archivos temporales para la tarea actual → Contexto de la sesión

Comprender el impacto de la ventana contextual

Los archivos de contexto y los recursos de los agentes consumen los símbolos de la ventana de contexto en cada solicitud, independientemente de si se hace referencia a ellos o no. Se usa /context show para monitorear el uso de los tokens:

q chat > /context show Total: ~1100 tokens

Límites de token: los archivos de contexto están limitados al 75% de la ventana de contexto del modelo. Los archivos que superen este límite se eliminan automáticamente.

Las bases de conocimiento no ocupan espacio en la ventana contextual hasta que se realizan búsquedas, lo que las hace ideales para materiales de referencia de gran tamaño. Para obtener más información, consulte Contexto de la base de conocimientos (para conjuntos de datos grandes).

Administración del contexto

Los archivos de contexto incluyen información que desea que Amazon Q tenga en cuenta durante las conversaciones. Estos pueden incluir requisitos del proyecto, estándares de codificación, reglas de desarrollo o cualquier otra información que ayude a Amazon Q a ofrecer respuestas más pertinentes.

Configuración del contexto persistente con los recursos del agente

La forma recomendada de configurar el contexto es a través del campo resources del archivo de configuración del agente. Esto crea un contexto persistente que está disponible cada vez que se utilice el agente.

Añada rutas de archivos o patrones globales a la matriz de resources en la configuración del agente:

{ "name": "my-agent", "description": "My development agent", "resources": [ "file://README.md", "file://.amazonq/rules/**/*.md", "file://docs/**/*.md", "file://src/config.py" ] }

Los recursos deben tener el prefijo file:// para poder incluirlos como archivos de contexto. Estos archivos estarán disponibles automáticamente en todas las sesiones de chat que utilicen este agente.

Adición del contexto de sesión temporal

Puede añadir archivos temporalmente a la sesión de chat actual mediante el comando /context add. Estas adiciones solo están disponibles para la sesión actual y no persistirán al iniciar una nueva sesión de chat.

q chat > /context add README.md Added 1 path(s) to context. Note: Context modifications via slash command is temporary.

También puede añadir varios archivos a la vez mediante los patrones globales:

q chat > /context add docs/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Para que los cambios de contexto sean permanentes, añada los archivos al campo resources del agente. Para obtener más información, consulte Configuración del contexto persistente con los recursos del agente.

Contexto de la base de conocimientos (para conjuntos de datos grandes)

Para bases de código, conjuntos de documentación o materiales de referencia de gran tamaño que superen los límites de la ventana de contexto, utilice las bases de conocimiento. Las bases de conocimiento proporcionan funciones de búsqueda semántica sin consumir espacio en la ventana de contexto hasta que se realiza la búsqueda.

Habilite las bases de conocimiento:

q settings chat.enableKnowledge true

Añadir contenido a una base de conocimientos:

q chat > /knowledge add /path/to/large-codebase --include "**/*.py" --exclude "node_modules/**"

Amazon Q busca en las bases de conocimiento bajo demanda cuando necesita información relevante, lo que las hace ideales para materiales de referencia de gran tamaño.

Visualización del contexto

Para ver el contexto actual, utilice el comando /context show:

q chat > /context show 👤 Agent (my-agent): README.md (1 match) .amazonq/rules/**/*.md (3 matches) docs/**/*.md (5 matches) 💬 Session (temporary): <none> 5 matched files in use: 👤 README.md (~250 tkns) 👤 .amazonq/rules/security.md (~180 tkns) 👤 .amazonq/rules/coding-standards.md (~320 tkns) 👤 docs/architecture.md (~150 tkns) 👤 docs/best-practices.md (~200 tkns) Total: ~1100 tokens

El resultado muestra:

  • 👤 Agente: contexto persistente del campo resources del agente

  • 💬 Sesión: contexto temporal añadido durante la sesión actual

Eliminación del contexto

Para eliminar archivos del contexto de la sesión actual, utilice el comando /context rm:

q chat > /context rm src/temp-file.py Removed 1 path(s) from context. Note: Context modifications via slash command is temporary.

Para borrar todo el contexto de la sesión, utilice el comando /context clear:

q chat > /context clear Cleared context Note: Context modifications via slash command is temporary.

Nota: No se puede eliminar el contexto definido por el agente mediante los comandos /context. Para eliminar el contexto de forma permanente, edite el campo resources del agente.

Casos de uso comunes

A continuación, se indican algunos casos de uso frecuentes de la administración del contexto:

Uso de reglas del proyecto

Amazon Q admite reglas del proyecto que pueden definir directrices y restricciones de seguridad. Estas reglas se definen en los archivos de Markdown del directorio de .amazonq/rules del proyecto.

Por ejemplo, puede crear reglas que especifiquen:

  • Directorios a los que debería evitar acceder Amazon Q

  • Requisitos de seguridad para el código generado

  • Estándares de codificación y prácticas recomendadas

La forma recomendada de incluir las reglas del proyecto es mediante la configuración del agente:

{ "name": "my-project-agent", "resources": [ "file://.amazonq/rules/**/*.md", "file://README.md", "file://docs/architecture.md" ] }

También puede añadir temporalmente las reglas del proyecto a la sesión actual:

q chat > /context add .amazonq/rules/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Para obtener más información sobre la creación y el uso de reglas del proyecto, consulte Creating project rules for use with Amazon Q Developer chat en la documentación del IDE.

Migración del contexto de la sesión a los recursos del agente

Si se encuentra añadiendo repetidamente los mismos archivos de contexto mediante los comandos /context add, plantéese trasladarlos al campo resources del agente para que persistan:

  1. Anote los archivos que añade con frecuencia con /context add.

  2. Edite el archivo de configuración del agente utilizando /agent edit o modificando directamente el archivo

  3. Añada las rutas de los archivos a la matriz de resources con el prefijo file://.

  4. Guarde la configuración del agente.

Ejemplo de migración:

# Instead of running these commands every session: > /context add README.md > /context add docs/*.md > /context add .amazonq/rules/*.md # Add them to your agent config once: { "resources": [ "file://README.md", "file://docs/**/*.md", "file://.amazonq/rules/**/*.md" ] }

Cuándo utilizar las bases de conocimiento

Considere las bases de conocimiento cuando:

  • Sus archivos de contexto superan el límite de fichas (el 75% de la ventana de contexto)

  • Tiene bases de códigos o conjuntos de documentación de gran tamaño

  • Necesita una búsqueda semántica en materiales extensos

  • Quieres evitar el consumo constante de ventanas contextuales

Ejemplo: en lugar de añadir una base de código grande como archivos de contexto:

# This would consume too many tokens: > /context add src/**/*.py # Use knowledge base instead: > /knowledge add src/ --include "**/*.py" --exclude "__pycache__/**"

Establecer un agente predeterminado con contexto

Puede configurar un agente predeterminado que incluya los archivos de contexto que prefiera:

q settings chat.defaultAgent my-project-agent

Esto garantiza que su contexto esté disponible automáticamente en las nuevas sesiones de chat sin necesidad de especificar el agente cada vez.

Prácticas recomendadas

Organización de los archivos de contexto

  • Mantén los archivos de contexto enfocados y relevantes para evitar los límites de los tokens

  • Utilice nombres de archivo descriptivos que indiquen su propósito

  • Organice las reglas y la documentación en estructuras de directorios lógicas

  • Tenga en cuenta el tamaño del archivo: los archivos muy grandes pueden consumir cantidades importantes de fichas

Consideraciones sobre el rendimiento

  • Supervise el uso de los tokens /context show para mantenerse dentro de los límites

  • Utilice patrones globales específicos en lugar de patrones demasiado amplios

  • Elimine los archivos de contexto no utilizados de las configuraciones de los agentes

  • Considere la posibilidad de dividir los archivos de contexto de gran tamaño en archivos más pequeños y específicos

  • Utilice bases de conocimiento para conjuntos de datos de gran tamaño a fin de evitar el consumo de ventanas contextuales

Consideraciones de seguridad

  • Evite incluir información confidencial en los archivos contextuales

  • Úselo .gitignore para evitar la comisión accidental de un contexto delicado

  • Revise los archivos de contexto con regularidad para asegurarse de que no contienen información desactualizada

  • Tenga en cuenta la información que se comparte cuando utilice el contexto en las conversaciones