MemoryLake
Volver a todos los artículos
Tutorial3 de septiembre de 2026·10 min de lectura

Cómo acotar el alcance de las instrucciones de Amp a los archivos a los que se aplican (Guía 2026)

La mayoría de los agentes de programación te ofrecen dos configuraciones para un archivo de instrucciones: activado o activado. Se carga en cada sesión, cuesta los mismos tokens ya sea que estés editando un componente de React o una migración de base de datos, y la única forma de abaratarlo es eliminar algo que podrías necesitar.

Amp tiene una tercera opción, y casi nadie la usa. Un archivo que referencias desde AGENTS.md puede llevar un campo globs en su frontmatter, y entonces se carga solo después de que el agente haya leído realmente un archivo que coincida con ese patrón. Tus convenciones de TypeScript llegan cuando TypeScript entra en juego. Tus reglas de migración se mantienen al margen hasta que alguien toca las migraciones.

El mecanismo está documentado, son unas pocas líneas de YAML y cambia el propósito de un archivo de instrucciones. Esta guía cubre cómo decide Amp qué incluir, cómo configurar la guía condicional y dónde están los límites.

Primero, un límite propio. Este no es el problema general de que los agentes ignoren las instrucciones que escribiste; eso tiene causas en todas las herramientas y se cubre en por qué los agentes ignoran tus archivos de instrucciones. Esta es la situación opuesta: Amp lee tus archivos de manera confiable, y la pregunta es cómo evitar que los lea todos todo el tiempo.

Por qué Amp carga más de lo que pediste

Tres reglas de inclusión, y dos de ellas son incondicionales

El descubrimiento de Amp es preciso, lo que hace que sea fácil de entender una vez que lo has leído:

"Los archivos AGENTS.md en el directorio de trabajo actual (o raíces del espacio de trabajo del editor) y los directorios padres (hasta $HOME) siempre se incluyen."
"Los archivos AGENTS.md de subárbol se incluyen cuando el agente lee un archivo en el subárbol."
"Los archivos de guía para todo el sistema, así como $HOME/.config/amp/AGENTS.md y $HOME/.config/AGENTS.md, siempre se incluyen si existen."

Así que dos de las tres son siempre. Solo la regla del subárbol es condicional, y se activa cuando el agente lee un archivo en ese subárbol, en lugar de por cualquier cosa que configures.

Eso significa que la forma predeterminada de agregar guías (ponerlas en el AGENTS.md raíz) es también la forma más costosa. Es residente para cada tarea en el repositorio.

Los archivos personales y del sistema se apilan encima

La tabla de ubicaciones enumera varios lugares donde Amp busca: los archivos del repositorio, $HOME/.config/amp/AGENTS.md y $HOME/.config/AGENTS.md para "Preferencias personales, comandos específicos del dispositivo y guías que estás probando localmente antes de confirmar (commit)", y /etc/ampcode/AGENTS.md, /Library/Application Support/ampcode/AGENTS.md o %ProgramData%\ampcode\AGENTS.md para "Guías para todo el sistema o gestionadas por la organización para todas las sesiones de Amp".

Todos ellos se incluyen siempre que existen. En una máquina donde alguien ha configurado un archivo gestionado por la organización, tú tienes uno personal y el repositorio tiene uno raíz, tres archivos son residentes antes de que el agente mire cualquier código.

Un plan de respaldo (fallback) que puede sorprenderte

"Si no existe ningún AGENTS.md en un directorio, pero sí existe un archivo llamado AGENT.md (sin la S) o CLAUDE.md, ese archivo se incluirá."

Útil: significa que un repositorio configurado para otra herramienta funciona en Amp sin cambios. También significa que un CLAUDE.md obsoleto que olvidaste es una guía activa, y un directorio del que pensabas que habías eliminado las instrucciones aún podría tener algunas. Vale la pena saberlo antes de ir a buscar por qué sigue reapareciendo una vieja convención.

El propio Amp recomienda dividir

La documentación no trata un único archivo raíz grande como el diseño previsto:

"En un repositorio grande con múltiples subproyectos, recomendamos mantener el AGENTS.md de nivel superior general y crear archivos AGENTS.md más específicos en los subárboles para cada subproyecto."

Esa es la primera mitad de la respuesta. El mecanismo de globs es la segunda mitad, y maneja el caso que los subárboles no pueden: guías que se aplican a un tipo de archivo en lugar de a un directorio.

Lo que la gente intenta

Poner todo en el AGENTS.md raíz. Es lo predeterminado, y funciona hasta que el archivo crece más allá del punto en el que el agente sigue todo de manera confiable. Cada convención compite con todas las demás por la atención, en cada tarea.

Eliminar guías para ahorrar contexto. Efectivo pero con pérdida de información. La regla que eliminaste estaba allí porque alguien se equivocó una vez.

Crear archivos de subárbol para todo. Realmente bueno cuando la guía tiene forma de directorio, que es por lo que Amp lo recomienda. No hace nada para "nunca usar el tipo any", que se aplica a los archivos de TypeScript dondequiera que vivan.

Escribir la condición en prosa y cruzar los dedos. Agregar "cuando trabajes en endpoints de API, sigue estas reglas" a un archivo residente. El texto sigue costando lo mismo, y ahora dependes de que el modelo aplique un filtro que podrías haber expresado como un patrón.

Mencionar archivos con @ sin frontmatter. A mitad de camino. Amp admite menciones con @ para incorporar otros archivos, y la documentación es clara sobre el comportamiento predeterminado: "Si no se especifican globs, el archivo siempre se incluye cuando se menciona con @". Así que una mención por sí sola reorganiza tus archivos sin reducir lo que se carga.

Usar un solo hilo largo para todo. Problema adyacente, mismo síntoma. El propio consejo de Amp: "Usa un hilo por tarea. Los hilos pueden durar mucho tiempo, pero un hilo que mezcla trabajo no relacionado le da al agente un peor contexto para razonar". Cuando un hilo se alarga, el movimiento documentado es un traspaso (handoff): "pídele al agente 'Handoff and...' (Traspasar y...) y comenzará un hilo nuevo con el contexto que importa".

La solución: Referenciar archivos desde AGENTS.md y luego condicionarlos con Globs

Paso 1: Dividir el archivo raíz según lo que lo activa

Lee tu AGENTS.md raíz y clasifica cada bloque en tres pilas.

Universal. Comandos de compilación y prueba, diseño del repositorio, pasos de revisión y lanzamiento, las convenciones que se aplican en todas partes. Esto se queda en el archivo raíz. La tabla de ubicaciones de Amp describe exactamente este contenido para la raíz: "Arquitectura, comandos de compilación/prueba, descripción general de las API internas, pasos de revisión y lanzamiento".

Con forma de directorio. Guías que solo importan dentro de un subproyecto. Esto se convierte en un AGENTS.md en ese subárbol, donde Amp lo incluirá cuando el agente lea un archivo allí.

Con forma de tipo de archivo. Convenciones de lenguaje, patrones de prueba, reglas del framework. Para esto sirven los globs, y suele ser la pila más grande en un repositorio maduro.

Paso 2: Conectar los archivos condicionados por globs

Tres movimientos, exactamente como los presenta la documentación.

Primero, coloca una mención en tu AGENTS.md. Puede ir en cualquier parte del archivo: Ver @docs/*.md. Los patrones glob se admiten en la propia mención, por lo que una sola línea puede abarcar un directorio completo de archivos de convenciones.

Segundo, crea cada archivo referenciado con una lista de globs en el frontmatter de YAML. El ejemplo documentado crea docs/typescript-conventions.md, lo abre con un bloque de frontmatter que enumera los globs '**/*.ts' y '**/*.tsx', y continúa con las convenciones mismas; la regla de ejemplo es "Nunca usar el tipo any".

Tercero, repite por lenguaje o área de interés. La documentación ofrece tres estructuras para copiar: guía de frontend con globs: ["src/components/**", "**/*.tsx"], backend con globs: ["server/**", "api/**"] y guía de pruebas con globs: ["*.test.ts", "__tests__/*"].

El comportamiento que obtienes se explica claramente: "Los archivos mencionados con globs solo se incluirán si Amp ha leído un archivo que coincida con alguno de los globs". Ten en cuenta el activador: que Amp haya leído un archivo coincidente, no que tú lo hayas abierto.

Dos detalles que te ahorrarán una tarde confusa. La resolución de rutas para las menciones es relativa al archivo que las menciona, no a tu directorio de trabajo: "Las rutas relativas se interpretan en relación con el archivo del agente que contiene la mención". Las rutas absolutas y @~/algun/camino también funcionan. Y la resolución de globs tiene su propia regla: "Los globs se prefijan implícitamente con **/ a menos que comiencen con ../ o ./, en cuyo caso se refieren a rutas relativas al archivo mencionado". Así que *.test.ts coincide con archivos de prueba en cualquier lugar, mientras que ./fixtures/*.json significa al lado del archivo que lo declaró.

Uno más, que importa si documentas rutas en prosa: "Las menciones con @ en bloques de código se ignoran para evitar falsos positivos". Puedes escribir sobre una ruta dentro de comillas invertidas (backticks) sin importarla.

Paso 3: Verificar qué se cargó y luego extraer los hechos

Amp te ofrece una forma directa de comprobar tu trabajo: "Para ver los archivos de agente que Amp está utilizando, selecciona agents-md list en la paleta de comandos". Ejecútalo desde unos cuantos directorios diferentes y después de que el agente haya tocado diferentes tipos de archivos. Esa es la forma más rápida de confirmar que un glob está haciendo lo que crees.

Luego haz la pasada que realmente reduce el conjunto residente. Revisa lo que queda en tu archivo raíz y pregúntate, de cada línea, si es una instrucción o un hecho. "Ejecutar pnpm test antes de confirmar (commit)" es una instrucción: corta, de comportamiento, pertenece a AGENTS.md. "La API tiene versión en la ruta porque dos clientes móviles fijan una compilación antigua" es un hecho. No tiene ningún glob que encaje, porque no se trata de un tipo de archivo; se trata de tu proyecto, y el agente lo necesita cada vez que surge el tema, en lugar de cada vez que coincide un patrón.

Los hechos son los que hacen que los archivos de instrucciones crezcan más allá del punto de ser seguidos, y ningún mecanismo de restricción soluciona eso, porque la restricción siempre tiene la forma incorrecta. Lo que lo soluciona es mantenerlos en algún lugar que el agente lea bajo demanda. MemoryLake se configura en tres pasos.

Paso 1: Crear una clave API

Inicia sesión y genera una clave API desde tu panel de control. Se encuentra completamente fuera de la cadena de AGENTS.md, por lo que nada de lo que contiene es residente en cada sesión ni está condicionado por un patrón que no le encaja.

Crear una clave API de MemoryLake para que los hechos vivan fuera de los archivos de instrucciones de Amp que siempre se incluyen
Crear una clave API de MemoryLake para que los hechos vivan fuera de los archivos de instrucciones de Amp que siempre se incluyen

Paso 2: Subir tus primeras memorias

Introduce los hechos: decisiones arquitectónicas y las razones detrás de ellas, vocabulario del dominio, propiedad del servicio, por qué existe una solución alternativa (workaround), las respuestas que sigues dando en las revisiones de código. Cualquier cosa que sea cierta sobre el proyecto en lugar de sobre un tipo de archivo.

Subir hechos del proyecto a MemoryLake en lugar de hacer crecer el AGENTS.md raíz
Subir hechos del proyecto a MemoryLake en lugar de hacer crecer el AGENTS.md raíz

Deja el comportamiento en AGENTS.md, condicionado por globs donde realmente se aplique un patrón. Las dos capas hacen trabajos diferentes.

Paso 3: Conectar tu IA y agentes

Apunta Amp al almacén. Tu archivo raíz se vuelve lo suficientemente corto como para ser seguido de manera confiable, tus archivos condicionados por globs se mantienen acotados y de comportamiento, y el conocimiento del proyecto llega cuando la pregunta lo requiere; el mismo razonamiento detrás de reducir el uso de tokens con una capa de memoria.

Conectar Amp a MemoryLake a través de MCP para que las guías mantengan su alcance acotado
Conectar Amp a MemoryLake a través de MCP para que las guías mantengan su alcance acotado

Qué cambia esto en la práctica

El primer cambio es que agregar guías deja de ser un dilema. Hoy en día, una nueva convención va a un archivo residente y penaliza cada tarea, o se queda fuera. Los archivos condicionados eliminan esa elección para cualquier cosa que tenga forma de tipo de archivo.

El segundo es que el cumplimiento mejora sin necesidad de que escribas mejor prosa. Un conjunto de instrucciones residente más corto se sigue de manera más consistente que uno largo, por lo que vale la pena dividirlo incluso cuando el presupuesto de contexto no es ajustado.

El tercero es que cambiar de herramienta se vuelve más barato. Amp ya lee AGENT.md y CLAUDE.md como respaldos, por lo que la capa de instrucciones es casi portátil; la estructura descrita en migrar CLAUDE.md a AGENTS.md. La capa de hechos es la parte que es portátil solo si la mantienes fuera de la herramienta.

Buenas prácticas para acotar las instrucciones de Amp

  • Mantén el archivo raíz general. Arquitectura, comandos de compilación y prueba, pasos de revisión y lanzamiento. La propia recomendación de Amp para repositorios grandes.
  • Usa archivos de subárbol para guías con forma de directorio. Se cargan cuando el agente lee un archivo en el subárbol.
  • Usa globs para guías con forma de tipo de archivo. Convenciones de lenguaje, patrones de prueba, reglas del framework.
  • Recuerda que una mención con @ a secas sigue siendo incondicional. Sin globs, un archivo mencionado siempre se incluye.
  • Ten en cuenta las dos reglas de resolución. Las rutas de mención se resuelven en relación con el archivo que las menciona; los globs obtienen un **/ implícito a menos que comiencen con ./ o ../.
  • Comprueba si hay respaldos obsoletos. Un AGENT.md o CLAUDE.md sobrante es una guía activa en un directorio sin AGENTS.md.
  • Verifica con agents-md list. Ejecútalo desde diferentes directorios y después de tocar diferentes tipos de archivos.
  • Un hilo por tarea, y haz un traspaso (handoff) cuando crezca. Es la guía de Amp, y se trata de la calidad del contexto más que de la limpieza.

Conclusión

El sistema de instrucciones de Amp es inusualmente explícito sobre cuándo se carga cada archivo, y uno de sus modos (archivos condicionados por globs referenciados desde AGENTS.md) convierte las instrucciones de un costo fijo en uno condicional. Requiere unas pocas líneas de frontmatter y es el cambio de mayor impacto disponible en un repositorio cuyo archivo raíz ha crecido.

Lo que no puede solucionar es el contenido que no tiene un patrón. Los hechos del proyecto no tienen forma de tipo de archivo, y la restricción condicional es la herramienta incorrecta para ellos. Separa las instrucciones del conocimiento, condiciona las instrucciones y coloca el conocimiento en un lugar al que el agente pueda acceder sin pagar alquiler por él en cada sesión.

Preguntas frecuentes

¿Se carga cada vez un archivo referenciado con @?

Solo si no tiene globs. La documentación es explícita: "Si no se especifican globs, el archivo siempre se incluye cuando se menciona con @". Agregar una lista de globs es lo que hace que la inclusión sea condicional.

¿Qué activa exactamente un archivo condicionado por globs?

Que Amp haya leído un archivo coincidente. La redacción es "Los archivos mencionados con globs solo se incluirán si Amp has leído un archivo que coincida con alguno de los globs", por lo que sigue las lecturas reales del agente durante la tarea en lugar del estado de tu editor.

¿Desde dónde se resuelven mis patrones glob?

Los globs obtienen un prefijo **/ implícito "a menos que comiencen con ../ o ./, en cuyo caso se refieren a rutas relativas al archivo mencionado". Las rutas de mención en sí se resuelven en relación con el archivo del agente que contiene la mención, no con el directorio de trabajo, y se admiten rutas absolutas además de @~/algun/camino.

¿Qué archivos incluye siempre Amp?

AGENTS.md en tu directorio de trabajo y directorios padres hasta $HOME, además de las guías para todo el sistema y tanto $HOME/.config/amp/AGENTS.md como $HOME/.config/AGENTS.md cuando existen. Los archivos de subárbol son el caso condicional, incluidos cuando el agente lee un archivo en el subárbol.

¿Leerá Amp un CLAUDE.md que haya dejado olvidado?

Sí, en un directorio sin AGENTS.md: "Si no existe ningún AGENTS.md en un directorio, pero sí existe un archivo llamado AGENT.md (sin la S) o CLAUDE.md, ese archivo se incluirá". Conveniente para migraciones, y vale la pena auditarlo si una vieja convención sigue reapareciendo.

¿Cómo veo qué cargó realmente Amp?

Selecciona agents-md list en la paleta de comandos. Muestra los archivos de agente en uso, lo cual es la forma confiable de confirmar que un glob está restringiendo el acceso según lo previsto en lugar de inferirlo del comportamiento; el hábito general descrito en lo que los agentes de programación realmente leen.