MemoryLake
Volver a todos los artículos
Tutorial12 de agosto de 2026·11 min de lectura

Cómo migrar de GitHub Copilot a Codex sin perder el contexto (2026)

Primero, las buenas noticias: si las instrucciones de tu equipo residen en `AGENTS.md`, la mayor parte de esta migración ya se ha realizado. La documentación de GitHub indica que Copilot lee los archivos `AGENTS.md` "almacenados en cualquier lugar dentro del repositorio", teniendo prioridad el archivo más cercano. Codex resuelve `AGENTS.md` de la misma manera. Mismo nombre de archivo, mismo comportamiento de prioridad por cercanía, sin conversión.

Aquí está la respuesta directa sobre el resto: todo lo específico de Copilot debe reconstruirse, y el importador de Codex no te ayudará; `/import` cubre Claude Code y Cursor, no Copilot. Eso significa que tres capas requieren trabajo manual: tu `.github/copilot-instructions.md` a nivel de repositorio, tus archivos `.instructions.md` con alcance de ruta y sus globs `applyTo`, y —el que la gente olvida— cualquier instrucción a nivel de organización que haya configurado tu administrador, para la cual Codex no tiene ningún equivalente.

Esto cubre lo que se transfiere de forma gratuita, cómo reconstruir las tres capas que no lo hacen y cómo hacer que el próximo cambio de agente cueste una tarde en lugar de un mes de sorpresas.

Qué se transfiere realmente

`AGENTS.md` se transfiere sin hacer nada. Ambas herramientas lo leen, ambas lo resuelven priorizando el más cercano. Si ya te has consolidado en AGENTS.md, abre Codex en el repositorio y tus instrucciones estarán activas. Este es el argumento más sólido para estandarizar en ese archivo, independientemente de qué agente estés usando este trimestre.

`.github/copilot-instructions.md` no se transfiere, pero se convierte limpiamente. GitHub lo describe como instrucciones que "se aplican a todas las solicitudes realizadas en el contexto de un repositorio". Codex tiene una coincidencia conceptual exacta —el AGENTS.md en la raíz del repositorio— por lo que esto es una copia con un cambio de nombre, además de una lectura para eliminar lo que esté desactualizado.

Las instrucciones con alcance de ruta se convierten, pero no de forma mecánica. Copilot admite uno o más archivos NAME.instructions.md bajo .github/instructions, cada uno con un campo de frontmatter applyTo que utiliza sintaxis glob para declarar qué archivos o directorios cubre. Codex no tiene un mecanismo de glob. Su única herramienta de alcance es dónde se encuentra el archivo: ~/.codex/AGENTS.md (o $CODEX_HOME), luego la raíz del repositorio, luego los directorios intermedios, luego tu directorio de trabajo, ensamblados de arriba hacia abajo, teniendo prioridad el archivo más cercano.

Así que una regla con alcance applyTo: "src/api/**" se convierte en un AGENTS.md dentro de src/api/. Eso funciona cuando tus globs siguen la distribución de tus directorios, y requiere una decisión cuando no es así; un glob como **/*.test.ts abarca todo el árbol y no tiene un único hogar.

Las instrucciones de la organización no se transfieren en absoluto. GitHub documenta una precedencia de tres niveles: "Las instrucciones personales tienen la máxima prioridad. Las instrucciones del repositorio van a continuación, y luego las instrucciones de la organización se priorizan en último lugar". Codex no tiene una capa de instrucciones gestionada por la organización para recibir ese tercer nivel.

Ten en cuenta lo que esto significa en la práctica: parte de la guía que da forma a los resultados de tu Copilot puede haber sido escrita por otra persona, y es posible que nunca la hayas leído. Antes de migrar, averigua si tu organización configuró instrucciones y obtén una copia. De lo contrario, pasarás semanas preguntándote por qué Codex escribe código que se ve sutilmente diferente al de tu equipo.

`excludeAgent` tampoco tiene contraparte. Las instrucciones específicas de ruta de Copilot aceptan un campo opcional excludeAgent con valores como code-review o cloud-agent, de modo que una regla puede excluirse deliberadamente de ciertas superficies. Nada en Codex expresa eso. Una regla que excluiste de la revisión de código, una vez convertida, se aplicará en todos los lugares donde se cargue el archivo; revisa esas específicamente.

Las instrucciones personales se convierten a tu archivo global. Las instrucciones personales de GitHub se aplican a todo tu trabajo y tienen la máxima prioridad; el equivalente en Codex es ~/.codex/AGENTS.md. Mantenlo corto, ya que se carga para cada proyecto en la máquina.

Lo que ningún archivo contiene, en ninguna de las dos herramientas. La documentación de instrucciones personalizadas de GitHub no afirma que Copilot retenga la memoria entre sesiones, y la propia función de memoria de Codex está desactivada por defecto. Por lo tanto, el razonamiento detrás de tus convenciones —el incidente, la restricción, la alternativa rechazada— no está en ninguno de los sistemas para ser trasladado. Esa es la parte que hace que una configuración completamente migrada todavía se sienta como si no conociera tu proyecto, la misma queja detrás de Copilot perdiendo el contexto de tu base de código.

La migración manual

Paso 1: Inventariar las cuatro capas de Copilot, incluida la que tú no escribiste

Reúne esto antes de tocar Codex:

  • .github/copilot-instructions.md — el archivo para todo el repositorio
  • todo lo que esté bajo .github/instructions/, y para cada archivo, su patrón applyTo y cualquier valor de excludeAgent
  • cualquier archivo AGENTS.md que ya esté en el repositorio y sus ubicaciones
  • tus instrucciones personales de la configuración de tu GitHub
  • instrucciones de la organización, las cuales tendrás que pedir a un propietario o administrador

Luego clasifica por origen, el mismo triaje que abarata cada migración: derivado del repositorio (eliminar — Codex lee el repositorio), escrito por ti y aún vigente (esta es la migración), obsoleto (eliminar ahora, mientras aún lo reconozcas).

Presta atención a los patrones applyTo a medida que avanzas. No son decorativos; son el único registro de cuándo se suponía que importaba cada regla. Una regla copiada sin su alcance se convierte en ruido en cada sesión o en una regla que terminas eliminando por parecer irrelevante.

Paso 2: Reconstruir el alcance como posición de directorio y decidir sobre los elementos sobrantes

Coloca cada regla sobreviviente donde Codex pueda encontrarla:

  • A nivel de repositorioAGENTS.md en la raíz del repositorio, confirmado (committed).
  • Con alcance de ruta y forma de directorioAGENTS.md dentro de ese directorio. applyTo: "src/api/**" se convierte en src/api/AGENTS.md, y el alcance ahora se impone por ubicación en lugar de por un patrón que la herramienta deba respetar.
  • Con alcance de ruta y transversal → esta es la decisión de criterio. Una regla que coincide con **/*.test.ts en una docena de paquetes tiene tres opciones: promoverla al archivo raíz si es corta e importante, colocar copias en los dos o tres directorios donde realmente viven las pruebas, o descartarla y confiar en tu linter. Promover todo es la forma en que los archivos raíz llegan a tener 600 líneas y dejan de seguirse.
  • Personal~/.codex/AGENTS.md, manteniéndolo corto.
  • A nivel de organización → dentro del repositorio, como una sección confirmada del AGENTS.md raíz, ya que Codex no tiene un nivel de organización. Indica en el archivo que proviene de una política de la organización, para que nadie lo elimine considerándolo una preferencia personal de alguien.
  • Cualquier cosa con `excludeAgent` → decide conscientemente si ahora debería aplicarse en todas partes y elimínala si la respuesta es no.

Dos notas mecánicas más. Codex no lee CLAUDE.md, por lo que si tu repositorio adoptó uno de esos de otra herramienta, su contenido también debe existir en AGENTS.md. Y las memorias de Codex son una decisión independiente: actívalas en Settings bajo Personalization o con [features] memories = true, y ten en cuenta lo que obtienes: estado generado almacenado en ~/.codex/memories/, global en lugar de por proyecto, solo en esa máquina, útil como una capa de conveniencia y no como un registro.

Luego lee todo el resultado ensamblado una vez, de una sola sentada. Este es el paso que la gente se salta, y es donde detectas la regla de 2024 que le dice al agente que use un paquete que ya eliminaste.

La mejor manera: una capa de memoria, cualquier agente

Fíjate de qué se trataba realmente el inventario del Paso 1. Cuatro capas, tres formatos, un nivel que tuviste que solicitar a un administrador, y nada de eso contenía una sola frase sobre el porqué. Las reglas son el resultado comprimido de decisiones que nunca se escribieron.

Esa es la parte que vale la pena reubicar. Mantén los archivos de instrucciones en el repositorio donde el agente los lee, y coloca el razonamiento en un almacén que no esté dentro del directorio de configuración de ningún proveedor.

MemoryLake es una capa de memoria para eso: las decisiones, los informes de incidentes y los documentos de origen detrás de tus reglas en un solo almacén, legibles directamente desde herramientas compatibles con MCP como Claude y Codex, y desde ChatGPT a través de la API. AGENTS.md dice qué hacer; el almacén dice por qué, y no necesitará migración la próxima vez.

Paso 1: Crear una clave API

Genera una clave y realiza tu primera solicitud en unos 30 segundos. Manténla en tu entorno o en un gestor de secretos en lugar de pegarla en una sesión.

Crear una clave API de MemoryLake
Crear una clave API de MemoryLake

Paso 2: Subir tus primeras memorias

Arrastra los documentos, imágenes y archivos de los que se derivaron tus reglas: los registros de decisiones de arquitectura, los informes de incidentes, los contratos de API, los requisitos de seguridad que tus instrucciones de la organización estaban imponiendo, el RFC en el que todos estuvieron de acuerdo. Sube las fuentes en lugar de la regla de una sola línea; la regla de una sola línea es lo que ya tienes y lo que se sigue cuestionando.

Sube tus primeras memorias a MemoryLake
Sube tus primeras memorias a MemoryLake

Paso 3: Conectar tu IA y agentes

Dale a Claude, Codex, OpenClaw y otros agentes de IA acceso a la memoria a través de MCP o la API. Codex lee el almacén directamente sobre MCP junto con tus archivos AGENTS.md. Para ChatGPT, recupera lo que necesitas a través de la API e inyéctalo en el prompt o en el flujo de trabajo que llama al modelo.

Conecta tu IA y agentes a través de MCP
Conecta tu IA y agentes a través de MCP

Qué cambia esto en la práctica

La primera diferencia es que las reglas transversales dejan de ser un dilema. Una regla que coincide con archivos de prueba en todas partes no necesita duplicarse en seis directorios ni meterse a la fuerza en el archivo raíz; se puede recuperar cuando el agente está trabajando en pruebas y estar ausente cuando no lo está.

La segunda es que la capa de políticas de la organización deja de desaparecer al migrar. Las reglas que configuró tu administrador eran infraestructura invisible; una vez que son un registro documentado y recuperable con su justificación, sobreviven tanto a un cambio de herramienta como a un cambio de administrador.

La tercera es que el AGENTS.md raíz puede mantenerse lo suficientemente corto como para ser obedecido. Cada archivo que se carga en cada sesión compite con la solicitud. Al llevar la recuperación el detalle, el archivo que siempre está cargado contiene restricciones que harían que una respuesta fuera incorrecta —y volver a explicar tu proyecto en cada sesión deja de ser la alternativa.

And it composes with Codex's own memory. Local memories keep accumulating your habits on that machine; the shared store holds what your teammates and your other tools need. Neither pretends to be the other, which is the split that keeps las configuraciones multiherramienta se desvíen.

Buenas prácticas para cambiar de agentes de programación

Estandarizar en AGENTS.md antes de que sea necesario

La razón por la que la capa AGENTS.md de esta migración es gratuita es que ambas herramientas la leen. Vale la pena optimizar para esa propiedad: cualquier cosa que puedas expresar en AGENTS.md en lugar de en un archivo específico del proveedor es contenido que nunca volverás a migrar.

Obtener las instrucciones de la organización por escrito

Este es el elemento que más se pasa por alto al dejar Copilot. Las reglas de otra persona estaban dando forma a tus resultados en el nivel de precedencia más bajo. Pídelas, léelas y decide qué conservar; no descubras su ausencia a través de código sutilmente incorrecto seis semanas después.

Expresar el alcance con la posición y aceptar que algunas reglas pierden precisión

La ubicación del directorio es el único mecanismo de alcance de Codex, y es una degradación real para los patrones glob que atraviesan el árbol. Nombra ese compromiso explícitamente por regla en lugar de fingir que la conversión es sin pérdidas: promueve, duplica o descarta.

Mantener pequeños los archivos que siempre se cargan

El AGENTS.md raíz y ~/.codex/AGENTS.md se cargan constantemente. Coloca restricciones estrictas allí y nada más. Los archivos de instrucciones largos no fallan ruidosamente; simplemente dejan de seguirse silenciosamente, lo cual es peor.

Verificar qué se cargó realmente antes de confiar en ello

El modo de fallo después de cualquier migración de instrucciones es silencioso: el agente no anuncia que nunca vio tus reglas. Una vez que hayas colocado los archivos, abre una sesión en el repositorio y pídele a Codex que indique las instrucciones bajo las que está operando, luego trabaja en un subdirectorio y vuelve a preguntar. Si un AGENTS.md con alcance de directorio no aparece cuando estás trabajando en ese directorio, la ubicación es incorrecta, y preferirás enterarte de eso en un minuto que a través de un mes de diffs sutilmente desviados.

No confundir instrucciones con cumplimiento obligatorio

Los archivos de instrucciones de ninguna de las dos herramientas garantizan el comportamiento: agregan contexto a un prompt. El formato, las importaciones prohibidas, los archivos protegidos y la política de commits pertenecen a linters, hooks y CI. Deja que el archivo de instrucciones explique la razón y que las herramientas sean la garantía.

Conclusión

La migración de GitHub Copilot a Codex se divide claramente en lo que es gratuito y lo que no. Gratuito: AGENTS.md, que ambas herramientas leen en cualquier lugar del repositorio con precedencia de prioridad por cercanía. No gratuito: el .github/copilot-instructions.md a nivel de repositorio, los archivos .instructions.md con alcance de ruta cuyos globs applyTo deben convertirse en ubicación de directorio, y el nivel de organización para el que Codex no tiene equivalente —y /import no hará nada de esto, ya que se dirige a Claude Code y Cursor.

Así que inventaría las cuatro capas, incluida la que posee tu administrador, clasifica por origen con la tecla de eliminación en la mano, reconstruye el alcance como posición y lee el resultado ensamblado una vez antes de confiar en él. Luego coloca las razones detrás de esas reglas en un almacén que tus asistentes lean, para que el próximo cambio sea un cambio de configuración en lugar de una excavación. Si Cursor es tu destino en su lugar, la ruta de Copilot a Cursor cubre un sistema de reglas con el compromiso opuesto: carga condicional real y su propio costo de conversión.

Preguntas frecuentes

¿Puede Codex importar mi configuración de Copilot automáticamente?

No. El comando /import de Codex admite Claude Code y Cursor como fuentes; Copilot no es una de ellas. El trabajo es manual, aunque más pequeño de lo que parece si tus instrucciones ya residen en AGENTS.md, el cual leen ambas herramientas.

¿Lee Codex .github/copilot-instructions.md?

No. Codex lee los archivos AGENTS.md resueltos desde tu configuración de inicio hasta tu directorio de trabajo, ganando el archivo más cercano. Copia el contenido de copilot-instructions.md en el AGENTS.md de la raíz del repositorio, luego depúralo.

¿Qué pasa con mis globs applyTo?

No tienen un equivalente directo. Codex define el alcance de las instrucciones por posición de directorio, por lo que un glob que coincide con un directorio se convierte en un AGENTS.md en ese directorio. Los globs que atraviesan el árbol necesitan una decisión: promover al archivo raíz, duplicar en los pocos lugares que importan o entregar el trabajo a un linter.

Estoy en una organización empresarial, ¿pierdo algo?

Potencialmente la capa más importante. GitHub documenta las instrucciones de la organización como el nivel de menor precedencia que aún se aplica a cada solicitud, y Codex no tiene nada equivalente. Pídele el texto a un propietario y confírmalo (commit) en el repositorio con una nota sobre de dónde provino.

¿Copilot o Codex recuerdan mi proyecto entre sesiones?

Los archivos de instrucciones son el mecanismo de persistencia en ambos, y se vuelven a leer en cada sesión en lugar de recordarse. La documentación de instrucciones personalizadas de GitHub no afirma que se retenga la memoria entre sesiones; Codex incluye memorias locales que están desactivadas por defecto, globales en lugar de por proyecto y limitadas a una sola máquina. Ninguno es un registro compartido, razón por la cual Codex todavía se inicia sin el contexto de tu proyecto hasta que algo se lo proporcione.

¿Cómo sé si Codex realmente detectó mi AGENTS.md?

Pregúntale. Inicia una sesión en el repositorio y pídele que indique las instrucciones que cargó, luego repite la comprobación desde un subdirectorio que tenga su propio AGENTS.md. La resolución se ejecuta desde tu configuración de inicio hasta el directorio de trabajo, ganando el archivo más cercano, por lo que una regla que no aparece cuando estás trabajando en su directorio está mal ubicada en lugar de ser ignorada.

¿Debería cambiarme a Claude Code en su lugar?

Es una conversión diferente con la misma forma: niveles de CLAUDE.md en lugar de la ubicación de AGENTS.md, y un importador que sí cubre más fuentes. Migrar de Copilot a Claude Code recorre ese camino. La capa que vale la pena configurar correctamente de cualquier manera es la que no está en ninguno de estos archivos.