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

Cómo mantener QWEN.local.md privado sin ocultar la memoria de equipo de Qwen Code en Git (Guía 2026)

Qwen Code guarda dos cosas muy diferentes en la misma carpeta. .qwen/QWEN.local.md es para tus instrucciones personales y específicas del proyecto, aquellas que nunca deben ser confirmadas (committed). .qwen/team-memory/ es para el conocimiento que comparte todo el equipo, y solo funciona si se hace commit de él. Ambos viven bajo .qwen/, y git tiene un solo archivo de exclusión para ambos.

La mayoría de las personas resuelven el primer problema de la manera obvia: ignorando todo el directorio .qwen/. La documentación de Qwen Code explica, en una sola advertencia, por qué esa solución obvia rompe silenciosamente la segunda. El nivel de memoria de equipo termina vacío en git, y tus compañeros de equipo nunca reciben lo que se suponía que debían compartir.

La solución es una línea escrita en un formato ligeramente diferente. Aquí te explicamos por qué importa la diferencia, qué más vive en .qwen/ y cómo confirmar que ambas partes están haciendo lo que deseas.

Por qué una regla de exclusión debe hacer dos trabajos opuestos

Comencemos con los archivos de instrucciones de Qwen Code. Su documentación de memoria enumera tres ubicaciones para QWEN.md: ~/.qwen/QWEN.md para "Tú, en todos tus proyectos"; QWEN.md en la raíz del proyecto para "Todo tu equipo (haz commit de él en el control de versiones)"; y .qwen/QWEN.local.md para "Solo tú, solo en este proyecto (mantenlo fuera de git)". Qwen "los carga todos cuando inicias una sesión".

El archivo local está pensado para cosas como "Tu propio ID de clúster, espacio de nombres del registro de contenedores o cuenta de nube" y "Un comando de depuración personal que codifica de forma fija tu entorno local". Este "se carga después del QWEN.md compartido del proyecto, por lo que tus instrucciones locales pueden complementar o anular las del equipo".

Luego, la responsabilidad que Qwen te asigna: "Debes añadirlo al gitignore tú mismo. Aunque .qwen/ a menudo se trata como un directorio local, qwen-code no genera un .gitignore por ti, y some projects commit .qwen/settings.json (algunos proyectos hacen commit de .qwen/settings.json)".

Ahora hablemos de la memoria de equipo. Por defecto, la memoria automática de Qwen es privada: "Los archivos de auto-memoria viven en ~/.qwen/projects/<project>/memory/", bajo tu directorio de inicio. La memoria de equipo es diferente: "La memoria de equipo es un nivel opcional que todo el equipo comparte a través de git". Cuando está habilitada, "Qwen obtiene un tercer directorio de memoria en .qwen/team-memory/ dentro del repositorio". Compartir funciona "de la manera normal: haces git pull para recibir las memorias de tus compañeros de equipo y haces commit/push para compartir las tuyas". Está "desactivada por defecto".

Para que eso funcione, la documentación es explícita: "El directorio debe estar rastreado por git." Y luego la advertencia que lo decide todo:

"Advertencia: usa el formato de exclusión por patrón de archivo (.qwen/*), no un formato de directorio con una barra diagonal final (.qwen/). Una exclusión en formato de directorio hace que git ignore la carpeta por completo, por lo que una re-inclusión con ! debajo de ella no tiene efecto y el nivel de equipo permanece silenciosamente vacío en git".

Así que los dos archivos tiran en direcciones opuestas. Mantener QWEN.local.md privado te tienta a ignorar la carpeta. Ignorar la carpeta en formato de directorio hace que sea imposible volver a incluir el nivel de equipo. La única regla que satisface ambos requisitos es el formato de patrón de archivo (file-glob) con re-inclusiones explícitas.

Qwen intenta detectar este error: "advierte una vez al inicio cuando el nivel está habilitado pero su directorio está ignorado por git o fuera de cualquier repositorio de git, por lo que esta mala configuración no pasa desapercibida". Una vez, al inicio, para la persona que lo habilitó. Un compañero de equipo que nunca habilitó la memoria de equipo no verá nada, y tampoco nadie que revise el repositorio.

Qué intenta la gente en su lugar

Ignorar .qwen/ como un directorio. Esto mantiene a QWEN.local.md fuera de git, y también hace que git ignore la carpeta por completo. Cualquier re-inclusión debajo es, en palabras de la documentación, "una operación sin efecto (no-op)".

No ignorar nada. La memoria de equipo funciona, y la primera vez que alguien ejecuta git add ., su ID de clúster personal o su comando de depuración local se suben al repositorio junto con ella.

Agregar líneas de re-inclusión y asumir que funcionan. Las líneas que vuelven a incluir .qwen/team-memory/ parecen correctas en cualquier formato. Sin embargo, solo surten efecto debajo de una exclusión por patrón de archivo (file-glob), no debajo de una exclusión de directorio.

Confiar en la advertencia de inicio. Se activa una sola vez, para la persona que tiene el nivel habilitado. Es un respaldo útil, pero un mal sustituto de un archivo de exclusión correcto.

Tratar la memoria de equipo como un cuaderno privado. La documentación es directa: "Está bajo control de versiones y es visible para todos los que tengan acceso al repositorio. Trata la memoria de equipo como si estuvieras haciendo un commit en el repositorio". Las notas personales pertenecen a los niveles privados.

Confiar en el escaneo de secretos. Las escrituras en la carpeta del equipo se escanean en busca de credenciales, y "cualquier secreto detectado es rechazado y nunca se escribe". Qwen añade: "El escaneo es una medida de seguridad, no una garantía; no pongas datos confidenciales allí".

La solución: Mapear lo que vive en .qwen, escribir las reglas de exclusión en formato de patrón de archivo y luego verificar ambas partes

El objetivo es un repositorio donde QWEN.local.md nunca pueda ser confirmado (committed), .qwen/team-memory/ siempre lo esté, y cualquier otra cosa bajo .qwen/ sea deliberadamente una cosa o la otra.

Paso 1: Mapear todo lo que vive bajo .qwen/ en tu proyecto

Abre el proyecto y enumera el contenido de .qwen/. Estás buscando cuatro tipos de archivos.

QWEN.local.md, si alguien lo usa. Debe permanecer fuera de git.

settings.json. Qwen señala que "some projects commit .qwen/settings.json" (algunos proyectos hacen commit de .qwen/settings.json). Si el tuyo lo hace, por ejemplo, para activar la memoria de equipo para todos, debe seguir estando rastreado.

team-memory/, si el nivel está habilitado o a punto de estarlo. Debe estar rastreado.

Cualquier otra cosa que una herramienta o un compañero de equipo haya colocado allí. Decide para cada elemento si es personal o compartido.

Luego revisa tus reglas de exclusión actuales, incluyendo cualquier git ignore global en tu máquina. Busca específicamente .qwen/ con una barra diagonal final. Ese es el formato sobre el cual advierte la advertencia.

Paso 2: Escribir las reglas de exclusión en formato de patrón de archivo con re-inclusiones explícitas

Reemplaza cualquier regla en formato de directorio con el formato de patrón de archivo (file-glob). En la práctica, tu .gitignore necesita tres tipos de líneas.

Primero, la exclusión por patrón de archivo: .qwen/*. Esto ignora todo lo que está dentro de la carpeta pero permite que git la examine, que es lo que hace posibles las re-inclusiones.

Segundo, las re-inclusiones para la memoria de equipo, exactamente como las proporciona la documentación: !.qwen/team-memory/ y !.qwen/team-memory/**. Si tu proyecto hace commit de la configuración, añade también una re-inclusión para .qwen/settings.json.

Tercero, nada adicional para QWEN.local.md. La regla de patrón de archivo ya lo cubre y, al no estar re-incluido, permanece ignorado. Para mayor seguridad en tu propia máquina, la documentación también sugiere añadir .qwen/QWEN.local.md a "tu git ignore global".

Haz commit del cambio en .gitignore por separado, con un mensaje que explique por qué importa el formato. La próxima persona que intente "limpiar" el archivo de exclusión agrupándolo en .qwen/ debería enterarse de por qué no debe hacerlo.

Paso 3: Verificar con git, no con el explorador de archivos

Los archivos en el disco no te dicen nada aquí; lo que importa es la vista de git. Con la memoria de equipo habilitada, deja que Qwen escriba una memoria de equipo inofensiva (una nota breve sobre una convención que todos ya siguen) o añade una manualmente con el mismo diseño de un archivo por memoria.

Luego verifica el estado de git. La documentación dice: "Las escrituras de la memoria de equipo aparecen en git status / el diff de la PR como cualquier otro archivo, por lo que pueden revisarse antes de confirmarse". Si aparece el nuevo archivo, la re-inclusión funciona. Si no aparece, la carpeta se sigue omitiendo y la regla de exclusión sigue estando en formato de directorio en algún lugar, posiblemente en un archivo de exclusión global.

Verifica la otra mitad de la misma manera: crea o modifica .qwen/QWEN.local.md y confirma que no aparezca. Luego reinicia Qwen una vez y observa si aparece la advertencia de inicio; si ya no aparece, el nivel está siendo rastreado.

Finalmente, pídele a un compañero de equipo que haga un pull y confirme que recibió la memoria de prueba. Compartir es el propósito de este nivel, y la única prueba real de que se está compartiendo es que otra persona pueda verla.

Configuración en MemoryLake

La memoria de equipo es un buen lugar para las convenciones que pertenecen a un solo repositorio. Sin embargo, parte de lo que tu equipo sabe abarca varios repositorios, diversas herramientas o personas que no utilizan Qwen Code en absoluto. MemoryLake es un lugar para guardar ese conjunto más amplio de modo que no dependa de que una sola carpeta en un repositorio esté rastreada correctamente.

Tú mismo escribes las entradas, con tus propias palabras. No se lee, escribe ni elimina nada de .qwen/, de tu carpeta team-memory, de tu directorio de auto-memoria ni del almacenamiento de ningún proveedor.

Paso 1: Crear una clave API

Inicia sesión y genera una clave desde el panel de control. La clave es lo que permite a un agente leer las entradas que has escrito, ya sea en Qwen Code o en cualquier otra herramienta que use tu equipo.

La consola de MemoryLake mostrando la pantalla de claves API, donde se crea y copia una nueva clave para su uso en un agente
La consola de MemoryLake mostrando la pantalla de claves API, donde se crea y copia una nueva clave para su uso en un agente

Paso 2: Sube tus primeras memorias

Añade las decisiones que se aplican a varios repositorios: convenciones de nomenclatura, reglas de revisión, los motivos detrás de las elecciones de arquitectura. Una decisión por entrada, con su justificación adjunta.

El espacio de trabajo de MemoryLake con los primeros documentos subidos, enumerando cada archivo a medida que se convierte en memoria de búsqueda
El espacio de trabajo de MemoryLake con los primeros documentos subidos, enumerando cada archivo a medida que se convierte en memoria de búsqueda

Paso 3: Conecta tu IA y agentes

Apunta tus agentes al espacio de trabajo. Las mismas decisiones estarán disponibles en cada repositorio y en cada herramienta, incluidas aquellas que no tienen una carpeta .qwen.

La pantalla de integraciones de MemoryLake que muestra los clientes de IA y los frameworks de agentes que se pueden conectar a la capa de memoria
La pantalla de integraciones de MemoryLake que muestra los clientes de IA y los frameworks de agentes que se pueden conectar a la capa de memoria

Qué cambia esto en la práctica

La primera diferencia es que el nivel personal y el nivel de equipo dejan de competir. Una exclusión por patrón de archivo (file-glob) con re-inclusiones permite que QWEN.local.md permanezca privado y que la memoria de equipo se comparta, en la misma carpeta, sin que nadie tenga que recordar una solución alternativa.

La segunda es que la memoria de equipo se vuelve revisable de la manera habitual. Dado que las escrituras aparecen en el estado de git y en las solicitudes de extracción (pull requests), cualquier convención incorrecta puede detectarse en la revisión. La misma idea (conocimiento generado junto a reglas escritas a mano) está detrás de aislar las reglas escritas a mano de Amazon Q de su banco de memoria generado.

La tercera es que los worktrees se comportan de manera predecible. Qwen señala que "Cada worktree de git vinculado obtiene su propia carpeta de memoria" para la auto-memoria privada, y en su lugar dirige las convenciones de todo el repositorio hacia la memoria de equipo. Con el nivel rastreado correctamente, cada worktree ve las mismas convenciones compartidas. Mover el trabajo entre máquinas tiene la misma forma que Claude Code olvidando el contexto entre máquinas.

La cuarta es que la sincronización opcional se vuelve segura de considerar. Qwen ofrece sincronización automática de git para la memoria de equipo, con una advertencia documentada: "La extracción por avance rápido (fast-forward pull) actúa sobre toda tu rama actual, no solo sobre .qwen/team-memory/". Vale la pena saber esto antes de habilitarlo, y solo importa una vez que el nivel realmente está siendo rastreado.

La quinta es que la memoria de equipo ocupa el lugar que le corresponde junto a las otras capas. Un QWEN.md confirmado establece las reglas; la memoria de equipo contiene lo que el equipo ha aprendido; tus niveles privados contienen lo que solo tú necesitas. Otros agentes dividen las mismas responsabilidades de manera diferente —compartir el contexto entre sesiones de Claude Code y por qué Claude Code olvida el contexto del proyecto describen el problema equivalente allí—, pero la pregunta siempre es a qué capa pertenece un dato y quién puede verlo.

Buenas prácticas para los archivos QWEN.md y la memoria de equipo

Nunca ignores .qwen/ en formato de directorio. Usa .qwen/* y luego vuelve a incluir lo que deba compartirse.

Vuelve a incluir la memoria de equipo explícitamente. Usa ambas líneas documentadas: la carpeta y su contenido.

Decide deliberadamente sobre settings.json. Algunos proyectos hacen commit de él; si el tuyo lo hace, vuelve a incluirlo.

Mantén los detalles personales en los niveles personales. QWEN.local.md y tu auto-memoria privada son para ti; la memoria de equipo es visible para todos los que tengan acceso al repositorio.

Mantén los secretos completamente fuera. El escaneo de credenciales es una medida de seguridad. El propio consejo de Qwen es "no pongas datos confidenciales allí".

Verifica con git y con un compañero de equipo. El estado de git te indica que el archivo está rastreado; el pull de un compañero te indica que está compartido. Para saber cómo los archivos de extensión se suman a lo que carga Qwen, consulta atribución de contexto de extensión de Qwen Code; para cambios de modelo, cambiar a Qwen 3.8 Max sin perder el contexto; y para la cuestión más amplia del conocimiento del equipo en el código, herramientas de memoria de base de código para equipos de ingeniería compara las opciones.

Conclusión

El diseño de memoria de Qwen Code es detallado y considerado. Las instrucciones personales permanecen locales, la memoria automática sigue siendo privada por defecto y la memoria de equipo se comparte a través de la herramienta que todo equipo ya utiliza: git. El único punto crítico es que el archivo personal y la carpeta compartida viven uno al lado del otro, y las reglas de exclusión de git tratan una carpeta con una barra diagonal final de manera muy diferente a una carpeta con un asterisco.

La documentación nombra el problema con precisión: una exclusión en formato de directorio "hace que git ignore la carpeta por completo" y "el nivel de equipo permanece silenciosamente vacío en git".

Mapea lo que vive en .qwen/, cambia al formato de patrón de archivo (file-glob) con re-inclusiones explícitas y verifica con el estado de git y el pull de un compañero de equipo. Luego, mantén el conocimiento que abarca varios repositorios en un lugar que no dependa de que un solo archivo de exclusión esté configurado correctamente.

Preguntas frecuentes

¿Crea Qwen Code un .gitignore para QWEN.local.md?

No. La documentación de Qwen dice "qwen-code no genera un .gitignore por ti" y te indica que agregues .qwen/QWEN.local.md a tu .gitignore o a tu git ignore global.

¿Por qué la memoria de equipo de Qwen Code está vacía para mis compañeros de equipo?

La causa más probable es una exclusión en formato de directorio. La documentación advierte que ignorar .qwen/ con una barra diagonal final "hace que git ignore la carpeta por completo, por lo que una re-inclusión con ! debajo de ella no tiene efecto y el nivel de equipo permanece silenciosamente vacío en git".

¿Qué regla de .gitignore debería usar para la carpeta .qwen?

Usa el formato de patrón de archivo (file-glob), .qwen/*, y luego vuelve a incluir la memoria de equipo con !.qwen/team-memory/ y !.qwen/team-memory/**. QWEN.local.md permanece ignorado bajo el patrón.

¿Dónde almacena Qwen Code su memoria automática?

La auto-memoria privada vive en ~/.qwen/projects/<project>/memory/. Todas las ramas de una misma copia de trabajo la comparten, y cada worktree de git vinculado obtiene su propia carpeta de memoria. La memoria de equipo, cuando está habilitada, vive en .qwen/team-memory/ dentro del repositorio.

¿Está activada por defecto la memoria de equipo de Qwen Code?

No. La documentación dice que está "desactivada por defecto" y se habilita por proyecto o globalmente con enableTeamMemory en settings.json.

¿Me advertirá Qwen Code si la memoria de equipo está ignorada por git?

Sí, una vez. Qwen "advierte una vez al inicio cuando el nivel está habilitado pero su directorio está ignorado por git o fuera de cualquier repositorio de git". Los compañeros de equipo que no tengan el nivel habilitado no verán esa advertencia.