AGENTS.md: cómo dar instrucciones permanentes a Codex
Aprende qué es AGENTS.md, cómo lo encuentra Codex y cómo utilizarlo correctamente para definir convenciones de código, arquitectura, comandos de test, reglas de seguridad, instrucciones por carpeta, monorepos, revisiones de código y workflows específicos para WordPress, PHP, JavaScript y otros proyectos.
¿Qué es AGENTS.md?
AGENTS.md es un archivo de instrucciones persistentes que Codex lee antes de empezar a trabajar en un proyecto. Sirve para enseñarle cómo está organizado el repositorio, qué convenciones debe respetar, cómo ejecutar tests y builds, qué archivos no debe modificar y qué reglas específicas se aplican a determinadas carpetas. Puedes tener instrucciones globales, reglas en la raíz del repositorio y archivos adicionales en subdirectorios.
Qué debería contener AGENTS.md
Arquitectura
Explica dónde vive cada parte importante del proyecto.
Convenciones
Naming, patrones, compatibilidad y estilo.
Verificación
Tests, lint, build y typecheck.
Seguridad
Reglas que deben respetarse en cada cambio.
Git
Reglas para commits, PR y alcance de cambios.
Reglas por carpeta
Instrucciones distintas para backend, frontend o servicios.
Codex combina instrucciones desde lo general hacia lo específico
~/.codex/
Tus preferencias personales para todos los proyectos.
Repositorio
Reglas generales del proyecto y del equipo.
Subcarpetas
Reglas específicas de cada área.
Más específico gana
Las instrucciones profundas prevalecen ante conflictos.
Por qué AGENTS.md mejora el trabajo con Codex
Sin instrucciones persistentes, el agente puede tener que descubrir las mismas convenciones en cada nueva sesión.
Repetición
Cada chat debe inferir cómo funciona el proyecto.
- más exploración
- más prompts
- más contexto
- más errores repetidos
Contexto persistente
Cada tarea comienza con las reglas esenciales.
- convenciones conocidas
- tests claros
- arquitectura documentada
- menos correcciones repetidas
AGENTS.md global para tus preferencias personales
Por defecto, Codex utiliza:
~/.codex/AGENTS.md
Este archivo es apropiado para preferencias que quieres aplicar en prácticamente cualquier proyecto.
# Global Codex instructions
- Explica brevemente los cambios al terminar.
- No hagas commits salvo que lo solicite.
- Prioriza soluciones simples.
- Evita modificar archivos no relacionados.
- Ejecuta las verificaciones disponibles antes de finalizar.
- Reporta limitaciones o tests que no pudiste ejecutar.
Las instrucciones globales deberían representar principalmente cómo prefieres trabajar con Codex como desarrollador.
AGENTS.override.md tiene prioridad sobre AGENTS.md
~/.codex/
├── AGENTS.md
└── AGENTS.override.md
Si existe
un
AGENTS.override.md
global no vacío,
Codex utiliza
ese archivo
antes que
el
AGENTS.md
global.
Coloca AGENTS.md en la raíz del repositorio
mi-proyecto/
├── AGENTS.md
├── src/
├── tests/
├── package.json
└── .git/
Ese archivo debería contener solamente las reglas aplicables a todo el repositorio.
De esta forma, todos los desarrolladores y agentes pueden utilizar las mismas instrucciones del proyecto.
Ejemplo de AGENTS.md para un proyecto real
# AGENTS.md
## Project overview
This repository contains
a web application with:
- PHP backend
- MySQL database
- JavaScript frontend
## Repository structure
- `src/` application code
- `public/` public entry points
- `tests/` automated tests
- `docs/` technical documentation
## Development rules
- Keep changes focused on the requested task.
- Reuse existing patterns before creating new abstractions.
- Do not add dependencies unless clearly necessary.
- Preserve public APIs unless the task requires a breaking change.
## PHP
- Maintain PHP 8.2+ compatibility.
- Use PDO for database access.
- Use prepared statements for SQL.
- Validate external input.
- Escape output where appropriate.
## JavaScript
- Follow existing project conventions.
- Avoid global variables.
- Do not add a framework for isolated UI changes.
## Verification
Before finishing:
1. run PHP syntax checks
2. run automated tests
3. run lint if configured
4. review `git diff`
5. report any checks that could not be executed
## Git
- Do not create commits unless explicitly requested.
- Do not modify unrelated files.
- Never include secrets in commits.
Cómo encuentra Codex los archivos AGENTS.md
Busca instrucciones globales
Dentro
de
CODEX_HOME,
normalmente
~/.codex.
Encuentra la raíz del proyecto
Normalmente mediante la raíz Git.
Recorre hacia el directorio actual
Comprueba cada nivel de la ruta.
Combina instrucciones
Desde las más generales hasta las más específicas.
Codex no continúa buscando por encima de la raíz del proyecto
~/development/
├── AGENTS.md
│
└── mi-proyecto/
├── .git/
├── AGENTS.md
└── src/
Si
mi-proyecto
es la raíz Git,
la búsqueda
específica
del repositorio
comienza allí.
Para reglas personales
globales,
utiliza
~/.codex/AGENTS.md.
Usa archivos anidados para reglas específicas
repo/
├── AGENTS.md
│
├── backend/
│ ├── AGENTS.md
│ └── src/
│
└── frontend/
├── AGENTS.md
└── src/
Root AGENTS.md
Reglas comunes a backend y frontend.
Nested AGENTS.md
Reglas exclusivas del área correspondiente.
Backend y frontend con instrucciones diferentes
Raíz
# AGENTS.md
- Keep public APIs backward compatible.
- Do not commit generated files.
- Run the relevant test suite before finishing.
Backend
# backend/AGENTS.md
- Use prepared SQL statements.
- Run `composer test`.
- Run `vendor/bin/phpstan analyse`.
- Preserve PHP 8.2 compatibility.
Frontend
# frontend/AGENTS.md
- Use existing UI components.
- Run `npm test`.
- Run `npm run lint`.
- Run `npm run build`.
- Preserve responsive behavior.
Cuándo usar AGENTS.override.md
Dentro
de un mismo nivel
de directorio,
AGENTS.override.md
tiene prioridad
sobre
AGENTS.md.
repo/
├── AGENTS.md
│
└── services/
└── payments/
├── AGENTS.md
├── AGENTS.override.md
└── src/
Esto resulta útil cuando un servicio necesita reglas diferentes a las convenciones estándar del repositorio.
Reglas especiales para un servicio de pagos
# services/payments/AGENTS.override.md
## Payments rules
- Run `make test-payments`.
- Never log card data.
- Never expose payment credentials.
- Preserve idempotency behavior.
- Treat database migrations as high-risk.
- Do not rotate credentials automatically.
- Add regression tests for payment failures.
Qué instrucciones ganan cuando existen conflictos
| Nivel | Ejemplo | Prioridad |
|---|---|---|
| Global | ~/.codex/AGENTS.md |
Base |
| Raíz proyecto | /repo/AGENTS.md |
Mayor |
| Subdirectorio | /repo/backend/AGENTS.md |
Más específica |
| Override | AGENTS.override.md |
Preferido en ese nivel |
| Prompt actual | Instrucción directa del usuario | Puede prevalecer sobre AGENTS.md |
AGENTS.md no convierte una regla en una barrera técnica
Si una regla necesita enforcement real, complétala con herramientas como linters, tests, hooks, typecheck, políticas CI, permisos o sandbox.
Orientación
“No uses consultas SQL sin preparar”.
Herramienta
Static analysis, tests o CI que detecten el incumplimiento.
AGENTS.md funciona especialmente bien en repositorios grandes
monorepo/
├── AGENTS.md
│
├── apps/
│ ├── web/
│ │ ├── AGENTS.md
│ │ └── src/
│ │
│ └── admin/
│ ├── AGENTS.md
│ └── src/
│
├── services/
│ ├── api/
│ │ ├── AGENTS.md
│ │ └── src/
│ │
│ └── billing/
│ ├── AGENTS.override.md
│ └── src/
│
└── packages/
└── ui/
├── AGENTS.md
└── src/
Coloca las reglas comunes en la raíz y añade solamente las diferencias en niveles más específicos.
AGENTS.md para proyectos WordPress
# AGENTS.md
## WordPress project
This is a WordPress project.
Custom development lives in:
- `wp-content/plugins/`
- `wp-content/themes/`
- `wp-content/mu-plugins/`
## Important restrictions
- Never modify WordPress core.
- Do not edit files inside `vendor/`.
- Do not modify `wp-config.php` unless explicitly requested.
- Do not modify uploaded media.
- Never expose credentials or salts.
## WordPress conventions
- Prefer WordPress APIs over custom replacements.
- Sanitize and validate input.
- Escape output.
- Use nonces for state-changing requests.
- Check capabilities for privileged operations.
- Use `$wpdb->prepare()` for dynamic SQL.
- Prefix global functions and hooks.
- Preserve backward compatibility where possible.
## Verification
Before finishing:
- run `php -l` on modified PHP files
- run PHPCS if configured
- run PHPUnit if configured
- review AJAX and REST permissions
- review database queries
- review `git diff`
Puedes colocar
otro
AGENTS.md
directamente
dentro
del plugin
cuando tenga
arquitectura
o reglas
específicas.
Reglas específicas para un plugin
# wp-content/plugins/mi-plugin/AGENTS.md
## Plugin architecture
- `mi-plugin.php` is the bootstrap file.
- `includes/` contains PHP classes.
- `assets/js/` contains JavaScript.
- `assets/css/` contains styles.
- `templates/` contains frontend templates.
## AJAX
For every authenticated AJAX handler:
- verify nonce
- verify capabilities when required
- sanitize request data
- return `wp_send_json_success()` or `wp_send_json_error()`
## Database
Custom tables use the prefix:
`{$wpdb->prefix}mi_plugin_`
All dynamic SQL must use `$wpdb->prepare()`.
## WooCommerce
- Prefer official WooCommerce hooks.
- Do not modify WooCommerce core files.
- Avoid template overrides unless a hook cannot solve the requirement.
## Tests
Run:
`php -l`
`vendor/bin/phpcs`
`vendor/bin/phpunit`
when available.
Plantilla AGENTS.md para proyectos PHP
# AGENTS.md
## PHP
- Support PHP 8.2+.
- Use strict typing where the project already does.
- Follow the project's namespace structure.
- Use existing dependency injection patterns.
- Avoid static state unless already established.
## Database
- Use PDO.
- Use prepared statements.
- Wrap related writes in transactions.
- Do not perform destructive migrations automatically.
## Security
- Validate external input.
- Escape output where appropriate.
- Never expose credentials.
- Do not weaken authentication checks.
## Tests
Run:
composer test
vendor/bin/phpstan analyse
vendor/bin/phpcs
Plantilla para proyectos JavaScript o TypeScript
# AGENTS.md
## JavaScript / TypeScript
- Follow the existing TypeScript configuration.
- Do not introduce `any` unless justified.
- Reuse existing utilities and components.
- Preserve public interfaces.
- Avoid adding dependencies for trivial utilities.
## Frontend
- Preserve accessibility.
- Preserve responsive behavior.
- Reuse design-system components.
- Do not introduce inline styles unless the project already uses them.
## Verification
Run:
npm test
npm run lint
npm run typecheck
npm run build
Indica exactamente cómo verificar el proyecto
En lugar de escribir solamente “ejecuta tests”, entrega los comandos concretos que funcionan en el repositorio.
## Verification
For PHP changes:
php -l path/to/file.php
vendor/bin/phpunit
For frontend changes:
npm test
npm run lint
npm run build
For full verification:
composer test
npm test
npm run build
AGENTS.md también puede definir qué debe revisar Codex
## Code Review Rules
Flag:
- correctness bugs
- security vulnerabilities
- data-loss risks
- backwards-incompatible changes
- race conditions
- missing authorization checks
- missing regression tests for fixed bugs
Do not report:
- formatting handled by automated tools
- subjective naming preferences
- style comments without behavioral impact
Formato, lint y comprobaciones puramente mecánicas suelen funcionar mejor como herramientas automatizadas que como instrucciones largas para el modelo.
Mantén AGENTS.md breve y relevante
Manual completo
Miles de líneas de documentación genérica.
Reglas accionables
Solamente lo necesario para trabajar correctamente.
Comandos reales.
Restricciones importantes.
Arquitectura difícil de inferir.
Errores que se repiten.
Documentación que Codex puede descubrir fácilmente.
Consejos genéricos de programación.
Codex limita cuánto contenido de instrucciones incorpora
La configuración
predeterminada
limita
el conjunto
de instrucciones
del proyecto
mediante
project_doc_max_bytes,
cuyo valor
predeterminado
es
32 KiB.
Normalmente es mejor eliminar ruido y distribuir instrucciones en archivos más específicos por directorio.
Aumentar el límite de instrucciones
En:
~/.codex/config.toml
puedes establecer:
project_doc_max_bytes = 65536
Codex puede reconocer otros archivos de instrucciones
Si tu equipo ya utiliza otro nombre, puedes configurarlo como fallback.
project_doc_fallback_filenames = [
"TEAM_GUIDE.md",
".agents.md"
]
Codex intenta
primero
AGENTS.override.md,
después
AGENTS.md
y finalmente
los nombres
alternativos
configurados.
Repositorio que ya utiliza TEAM_GUIDE.md
repo/
├── TEAM_GUIDE.md
│
└── support/
├── AGENTS.override.md
└── src/
Con el fallback
configurado,
Codex puede
combinar
las reglas
de
TEAM_GUIDE.md
con el override
específico
de
support/.
AGENTS.md vs Skills
| AGENTS.md | Codex Skills |
|---|---|
| Reglas persistentes | Workflow reutilizable |
| Se carga al iniciar | Se carga cuando se necesita |
| Debe ser breve | Puede contener instrucciones más extensas |
| Convenciones del proyecto | Procedimientos especializados |
| Ej.: “usa PHPUnit” | Ej.: “ejecuta auditoría de seguridad completa” |
Instrucciones y herramientas cumplen funciones distintas
Cómo trabajar
Convenciones, restricciones y expectativas.
Con qué trabajar
Datos, servicios y herramientas externas.
Actualiza AGENTS.md cuando Codex repita el mismo error
Codex comete un error
Corriges el comportamiento.
El error vuelve a aparecer
Ya existe un patrón.
Formaliza la regla
Añádela al AGENTS.md más cercano.
Automatiza si es posible
Añade lint, test o hook.
Reglas débiles vs reglas útiles
| Débil | Mejor |
|---|---|
| Escribe buen código | Usa los patrones existentes antes de crear nuevas abstracciones |
| Haz tests | Ejecuta vendor/bin/phpunit después de cambios PHP |
| Hazlo seguro | Valida input, verifica autorización y usa consultas preparadas |
| No rompas nada | Preserva las APIs públicas salvo autorización explícita |
| Revisa el proyecto | Consulta primero src/Auth/ para cambios de autenticación |
No pongas secretos dentro de AGENTS.md
Evita incluir contraseñas, tokens, API keys, claves privadas, credenciales de bases de datos o secretos de producción.
# Correcto
- Database credentials are stored in environment variables.
- Never print secrets.
- Do not commit `.env` files.
# Incorrecto
DB_PASSWORD=my-real-password
OPENAI_API_KEY=sk-...
Reinicia la sesión después de cambiar instrucciones importantes
Codex construye la cadena de instrucciones al iniciar una ejecución o sesión. Si acabas de modificar AGENTS.md y quieres asegurarte de que las nuevas reglas se apliquen, inicia una nueva sesión.
Pregunta a Codex qué instrucciones cargó
Lista las fuentes
de instrucciones
AGENTS.md
que cargaste
para esta sesión.
Indica:
- ruta
- ámbito
- prioridad
- reglas principales.
Si una regla parece no aplicarse, primero confirma qué archivo está realmente dentro del ámbito del directorio donde trabaja Codex.
Cambiar el directorio global de Codex
Para workflows
avanzados
puedes establecer
otro directorio
como
CODEX_HOME.
CODEX_HOME=$(pwd)/.codex codex
Puede resultar útil para perfiles aislados, automatizaciones o entornos con configuración específica.
El propio repositorio de Codex utiliza AGENTS.md
El repositorio oficial de OpenAI Codex utiliza un archivo AGENTS.md con reglas concretas sobre:
Convenciones Rust.
Cómo escribir y ejecutar tests.
Orientación sobre tamaño de cambios.
Revisión de breaking changes.
Restricciones de sandbox.
Herramientas requeridas.
No explicar todo el código, sino documentar aquello que un agente necesita conocer antes de modificarlo.
AGENTS.md listo para adaptar a tu proyecto
# AGENTS.md
## Project overview
Briefly explain what this project does.
## Architecture
Important directories:
- `src/`
- `tests/`
- `docs/`
## Development principles
- Keep changes focused.
- Prefer existing patterns.
- Avoid unnecessary abstractions.
- Do not fix unrelated issues.
- Do not add dependencies without a clear reason.
## Compatibility
- Runtime:
- Database:
- Browser support:
- API compatibility:
## Security
- Validate external input.
- Escape output where required.
- Never expose credentials.
- Preserve authentication and authorization checks.
- Use prepared database queries.
## Database
- Document the database layer.
- Use transactions for related writes.
- Do not run destructive migrations automatically.
## Testing
Before finishing:
1. run targeted tests
2. run lint
3. run typecheck if applicable
4. run build if applicable
5. review `git diff`
## Code review
Prioritize:
- correctness
- regressions
- security
- data loss
- race conditions
- backwards compatibility
- missing tests
## Git
- Do not commit unless requested.
- Do not modify unrelated files.
- Never commit secrets.
- Keep changes reviewable.
## Documentation
Update documentation when
public behavior changes.
## Final response
Summarize:
- what changed
- files modified
- tests executed
- unresolved risks
Qué revisar antes de dar por terminado tu AGENTS.md
Explica la estructura difícil de inferir.
Incluye comandos reales de verificación.
Define restricciones importantes.
Tiene instrucciones por directorio cuando corresponde.
No contiene secretos.
No duplica documentación innecesariamente.
Las reglas son accionables.
Los checks deterministas están automatizados cuando es posible.
Guías relacionadas
Documentación de AGENTS.md
AGENTS.md
Discovery, jerarquía, overrides y configuración.
Ver documentación →Personalización
AGENTS, Skills, MCP y subagentes.
Ver personalización →Configuración avanzada
Tamaño máximo y nombres alternativos.
Ver configuración →AGENTS.md de Codex
Ejemplo real utilizado por OpenAI.
Ver ejemplo →FAQ sobre AGENTS.md y Codex
AGENTS.md es un archivo de instrucciones persistentes que Codex puede leer antes de comenzar una tarea. Permite definir convenciones, arquitectura, comandos, tests y reglas específicas de un repositorio.
Puedes tener un AGENTS.md global dentro de ~/.codex y otro en la raíz del repositorio. También puedes añadir archivos en subdirectorios para reglas más específicas.
Cuando ambos existen en el mismo nivel, Codex prioriza AGENTS.override.md. Esto permite sustituir las instrucciones normales de ese directorio por reglas especiales.
Sí. Codex combina las instrucciones globales y los archivos aplicables desde la raíz del proyecto hasta el directorio de trabajo actual. Las instrucciones más específicas tienen prioridad ante conflictos.
Sí. Puedes mantener reglas generales en la raíz del monorepo y añadir AGENTS.md o AGENTS.override.md dentro de aplicaciones, paquetes o servicios que necesiten instrucciones diferentes.
Codex limita la cantidad de instrucciones del proyecto que incorpora. El valor predeterminado de project_doc_max_bytes es 32 KiB. Puede modificarse mediante config.toml, aunque normalmente conviene mantener las instrucciones breves.
Sí. Puedes configurar nombres alternativos mediante project_doc_fallback_filenames en config.toml. Codex seguirá priorizando AGENTS.override.md y AGENTS.md antes de consultar esos nombres adicionales.
No. AGENTS.md define reglas persistentes que acompañan al proyecto. Las Skills encapsulan workflows o conocimientos especializados que Codex carga cuando son necesarios.
Sí. Es especialmente útil para indicar que Codex no debe modificar WordPress core, que debe utilizar nonces, capabilities, sanitización, escaping, APIs oficiales y consultas preparadas, además de definir comandos de PHPCS, PHPUnit o WP-CLI.
No. AGENTS.md debería contener instrucciones, no secretos. Utiliza variables de entorno, gestores de secretos u otros mecanismos apropiados para credenciales.
Codex construye la cadena de instrucciones cuando comienza una ejecución o sesión. Después de realizar cambios importantes en AGENTS.md, iniciar una nueva sesión garantiza que las instrucciones actualizadas se carguen desde el comienzo.
No. AGENTS.md es una capa de instrucciones para el agente, no un mecanismo técnico de enforcement. Las reglas críticas deberían complementarse con tests, linters, hooks, permisos, sandbox y CI.
Codex Worktrees: ejecuta agentes en paralelo sin mezclar cambios
Ya sabes cómo enseñar a Codex las reglas de tu proyecto. Ahora veremos cómo utilizar Git worktrees para ejecutar varias tareas simultáneamente, aislar cambios, transferir trabajo entre Worktree y Local y administrar agentes paralelos de forma segura.
Aprender Codex Worktrees →