Qué es el archivo AGENTS.md, por qué se ha convertido en la convención portable para configurar agentes de IA y cómo escribir uno bien estructurado.
AGENTS.md es un archivo Markdown que explica a los agentes de programación con IA cómo trabajar en un proyecto. Lo leen sin configurar nada muchas herramientas, desde Codex o Copilot hasta Cursor o Claude Code, y se ha convertido en la forma habitual de dar contexto a cualquier agente.
AGENTS.md es un archivo de texto en Markdown que se coloca en la raíz del repositorio, junto al README. No tiene campos obligatorios ni un esquema que respetar: usas los encabezados que quieras y el agente interpreta el texto. En él se escribe lo que el agente necesita saber para trabajar en el proyecto: qué stack usa, qué comandos lanzar, qué convenciones seguir y qué no debe tocar.
La mejor forma de entenderlo es compararlo con el README. El README está escrito para personas: qué es el proyecto, cómo se instala y cómo se usa. AGENTS.md está escrito para la IA, y recoge los detalles que a una persona le sobrarían pero que un agente necesita para no equivocarse, como el comando exacto para lanzar un test o la carpeta que nunca debe modificar.
En un repositorio con varios paquetes puedes poner un AGENTS.md dentro de cada uno. El agente lee el más cercano al archivo en el que está trabajando, así que las instrucciones de cada subproyecto mandan sobre las generales de la raíz. Es la forma de dar reglas distintas al frontend y al backend sin mezclarlas en un único archivo.
Antes de que esta convención cuajara, cada herramienta de IA traía su archivo de configuración propio:
CLAUDE.md en la raíz del proyecto..cursorrules a .cursor/rules/*.mdc..github/copilot-instructions.md.Si trabajabas con dos o tres herramientas a la vez, acababas con varios archivos duplicando esencialmente la misma información: tu stack tecnológico, las convenciones del equipo, los comandos habituales, las advertencias específicas del proyecto. Cualquier cambio implicaba actualizar los archivos en paralelo, con el riesgo de que se desincronizaran.
AGENTS.md propone una solución sencilla: un único archivo Markdown que cualquier agente puede leer al arrancar, con la información que necesita para ser productivo en el proyecto desde el primer minuto.
No hay una especificación oficial estricta, pero la práctica común incluye cinco secciones principales. Aquí tienes un ejemplo realista:
# Reglas del proyecto
## Stack
- Framework: Next.js 14 con App Router
- Lenguaje: TypeScript estricto
- Base de datos: PostgreSQL con Prisma
- Estilos: Tailwind CSS, sin CSS modules
- Tests: Vitest + Testing Library
## Comandos habituales
- `pnpm dev`: arranca el servidor de desarrollo
- `pnpm test`: ejecuta los tests
- `pnpm typecheck`: comprueba los tipos
- `pnpm lint`: pasa el linter
## Convenciones
- Componentes funcionales con hooks, nunca clases
- Tests junto al archivo que testean, con sufijo .test.ts
- Commits en español, formato Conventional Commits
- Imports absolutos desde @/ para src/
## Lo que NO debes hacer
- No instales librerías nuevas sin avisar
- No toques los archivos de migración existentes
- No ejecutes git push, deja que lo haga el usuario
## Notas del proyecto
- El módulo de pagos depende de Stripe y no se puede testear en local
- Hay un script de seed en scripts/seed.ts para datos de pruebaEsta estructura le da al agente, en una sola lectura, todo lo que necesita para trabajar como un miembro más del equipo. Cuando empiezas una sesión nueva, no tienes que volver a explicar el stack ni las convenciones.
La elección de Markdown como formato no es casualidad. Los modelos de lenguaje han sido entrenados con cantidades enormes de archivos README.md y documentación técnica, así que interpretan estructuras Markdown de forma muy natural. Hay tres ventajas concretas frente a formatos más estructurados:
Si te interesa profundizar en por qué la sintaxis Markdown funciona tan bien con LLMs, lo cubrimos en Markdown en prompts y en Markdown y la IA.
La diferencia entre un AGENTS.md que ayuda al agente y otro que lo confunde se reduce a unos pocos principios.
Reglas como "escribe código limpio" o "sé profesional" no aportan información. El agente no tiene criterios para evaluar qué significa "limpio" en tu proyecto. Sustituye por reglas medibles:
- Usa nombres descriptivos: variables en camelCase, componentes en PascalCase
- Funciones de más de 30 líneas se refactorizan
- Cada función pública lleva JSDoc con descripción y ejemploUn agente productivo necesita saber cómo arrancar el proyecto, cómo testear y cómo desplegar. Cada comando que el agente necesite escríbelo literal:
- Tests: `pnpm test`
- Tests con watch: `pnpm test --watch`
- Test de un archivo concreto: `pnpm test src/lib/auth.test.ts`Es mucho mejor que escribir "ejecuta los tests" y dejar que el agente adivine.
Las restricciones explícitas evitan errores recurrentes. Una sección dedicada a comportamientos prohibidos hace que el agente sea más conservador con las acciones de alto riesgo:
## Lo que NO debes hacer
- No modifiques archivos en /generated/
- No ejecutes git push ni git reset --hard
- No instales nuevas dependencias sin consultarLa forma más efectiva de mejorar un AGENTS.md es añadir una regla cada vez que el agente se equivoque dos veces de la misma forma. Si descubres que repite un patrón inadecuado, conviértelo en una entrada explícita del archivo.
Un AGENTS.md de 5.000 palabras es contraproducente. El modelo tiene atención limitada incluso con ventanas amplias, y las instrucciones del final pierden peso. Apunta a 300-1.500 palabras. Si necesitas más, particiona el contenido en archivos auxiliares enlazados desde el principal.
Buena parte de las herramientas de programación con IA leen AGENTS.md directamente, sin configuración. Entre ellas están OpenAI Codex, Google Jules, GitHub Copilot, Cursor, Aider, Zed, Warp, VS Code y Devin. La lista crece cada pocos meses, así que para la relación actualizada consulta la web oficial, agents.md.
Claude Code también lo lee directamente: si el proyecto tiene un AGENTS.md y ningún CLAUDE.md, lo usa como instrucciones del proyecto. Si tienes los dos, por defecto lee solo el CLAUDE.md, pero basta con escribir @AGENTS.md dentro de él para incluirlo. Así el contenido común vive en un único archivo que leen todas las herramientas, y el CLAUDE.md solo añade lo específico de Claude. Lo explicamos en CLAUDE.md, el archivo de instrucciones de Claude Code.
Estos son los fallos que más se repiten:
AGENTS.md envejece con el proyecto. Revísalo cuando cambies stack, herramientas o convenciones.AGENTS.md no es un estándar formal, pero se ha convertido en la forma natural de comunicar el contexto del proyecto a cualquier agente de IA sin atarse a una herramienta concreta. Si trabajas con varios asistentes a la vez o si quieres tener un único punto de verdad para el comportamiento de la IA en tu repo, es la convención más rentable que puedes adoptar hoy.
Esto ha sido todo.
👋 Hola! Soy Edu, me encanta crear cosas y he redactado este tutorial. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirlo en Twitter.
Sígueme en Twitter para estar al día con mi contenido. 😊