Saltar al contenido principal

Codex /goal: cómo activarlo, usarlo y comprobar el resultado

Con /goal puedes mantener un objetivo en el chat de Codex mientras el trabajo avanza entre turnos. Si no aparece, comprueba la versión y activa features.goals; después define una prueba que permita distinguir una tarea terminada de una ejecución detenida.

LaoZhang AI TeamPublicadoActualizado 9 min de lectura
En esta página
Esquema de Codex /goal con comprobaciones de disponibilidad y finalización

Para iniciar un objetivo en Codex, escribe /goal seguido del resultado que quieres conseguir en el campo de entrada de Codex. Puedes consultar el objetivo con /goal, modificarlo con /goal edit y controlarlo con /goal pause, /goal resume y /goal clear. La guía oficial de comandos documenta estas operaciones; ya no es necesario deducir su existencia a partir del código fuente de una versión antigua.

Si el comando no aparece, la guía oficial de activación indica que debes habilitar features.goals. La comprobación de versión y las dos formas de activarlo están explicadas abajo. Una vez disponible, lo decisivo es definir qué resultado aceptarás y cómo comprobarlo: que Codex se detenga no demuestra que haya terminado la tarea.

Qué hace un objetivo y cuándo merece la pena usarlo

/goal conserva un objetivo en el chat actual para que Codex pueda seguir trabajando hacia él entre turnos. Encaja cuando sabes qué resultado necesitas, pero todavía no conoces todos los pasos: corregir una importación con varios casos defectuosos, investigar un fallo intermitente o completar una migración con pruebas de compatibilidad. Según el Cookbook de OpenAI, el objetivo pertenece al hilo de conversación; no se convierte en memoria global ni en una instrucción de proyecto en AGENTS.md.

Un mensaje normal basta para cambiar una etiqueta o explicar un error. Si todavía tienes que decidir qué construir, empieza por planificar. La diferencia práctica entre goal y plan es que el plan ordena el trabajo, mientras que el objetivo establece una condición que debe cumplirse antes de darlo por terminado. El Cookbook también precisa que una ejecución dedicada solo a planificar no activa por sí misma la continuación automática.

La persistencia no garantiza una ejecución ilimitada. Codex puede continuar cuando el objetivo está activo, el chat está inactivo y queda presupuesto, sin otro turno, entrada pendiente o trabajo en curso. Es el comportamiento descrito en el Cookbook, no una promesa de trabajar con el ordenador apagado o durante un número fijo de horas.

Cómo activar /goal si no aparece

Comprueba primero el cliente en el que estás escribiendo. Los comandos /goal se introducen dentro de Codex; no son comandos de tu shell. En cambio, las órdenes de versión, instalación y activación que siguen sí se ejecutan en un terminal.

1. Comprueba la versión del CLI

bash
codex --version

El Cookbook oficial sitúa la incorporación de Goals en Codex 0.128.0. Es la versión de introducción, no una recomendación de instalar exactamente esa versión ni una identificación de la más reciente. Si tu CLI es anterior, actualízalo con el gestor que usaste para instalarlo.

Para una instalación con npm:

bash
npm install -g @openai/codex@latest
codex --version

Para una instalación con Homebrew:

bash
brew update
brew upgrade --cask codex
codex --version

Estas órdenes son las vías de actualización que recoge el Cookbook. No ejecutes ambas para una misma instalación. La versión del CLI tampoco demuestra qué versión utiliza una aplicación de escritorio distinta.

2. Habilita Goals

La documentación de Follow a goal ofrece esta orden de terminal:

bash
codex features enable goals

Como alternativa, habilita la función en config.toml:

toml
[features]
goals = true

Si ya tienes una sección [features], añade o modifica goals dentro de ella; evita crear otra sección con el mismo nombre. La activación documentada usa config.toml y features.goals. No necesitas añadir multi_agent = true para seguir estas instrucciones.

3. Comprueba el menú en el cliente que vas a usar

Vuelve al campo de entrada de Codex, escribe / y busca /goal. Después establece un objetivo pequeño y consúltalo con /goal: debes poder reconocer el texto que acabas de fijar en el chat activo. Ese es un primer indicio de que estás usando la función; aún no prueba que la tarea haya terminado.

La guía actual de comandos también recoge /goal para escritorio e IDE. Eso no permite afirmar que todas las instalaciones, cuentas y versiones expongan el mismo comportamiento. Si sigue faltando en la App o el IDE, anota ese cliente y su versión por separado; no concluyas que la actualización del CLI ha actualizado también la aplicación.

Pasos para comprobar la versión de Codex, habilitar Goals y encontrar /goal en el cliente utilizado

Comandos para establecer, ver, editar y detener el objetivo

Estas son las operaciones documentadas actualmente en la guía de comandos de Codex:

Entrada en CodexPara qué sirve
/goal <objetivo>Establecer el resultado que Codex debe perseguir
/goalConsultar el objetivo actual
/goal editRevisar el texto del objetivo
/goal pausePausar el objetivo activo
/goal resumeReanudar un objetivo pausado
/goal clearQuitar el objetivo del chat

El texto debe tener contenido y no superar 4.000 caracteres. Si necesitas especificaciones largas, guárdalas en un archivo del proyecto y haz que el objetivo señale ese archivo. Evita depender de /goal budget, /goal status o /goal complete: esos subcomandos no aparecen en las fuentes oficiales citadas aquí.

Tras editar, vuelve a consultar /goal para confirmar qué resultado estás pidiendo ahora. Si cambias el alcance a mitad del trabajo, revisa también si las pruebas anteriores siguen demostrando el nuevo objetivo.

Pausar o limpiar el objetivo controla su continuidad. No revierte archivos ya modificados ni deshace solicitudes enviadas. Para revisar o recuperar cambios tendrás que inspeccionar los archivos y utilizar las herramientas del proyecto que correspondan.

Ejemplo: corregir un importador de catálogo CSV

Supón que tu proyecto ya tiene scripts/limpiar_catalogo.py, pero falla cuando un catálogo contiene identificadores repetidos o vacíos. Quieres que Codex investigue el script y lo corrija sin tocar otras funciones. El ejemplo siguiente define una tarea concreta; no representa una ejecución real de Goals realizada para este artículo.

Prepara tests/fixtures/catalogo.csv con este contenido en UTF-8:

csv
sku,nombre
 A-01 ,Lámpara
A-01,Lámpara duplicada
B-02,"Mesa, roble"
,Artículo sin referencia

Para ese archivo, la salida aceptable es salida/catalogo.csv con las columnas sku,nombre, los espacios del SKU recortados y la primera aparición de cada SKU conservada. El duplicado y la fila sin SKU deben figurar en salida/incidencias.csv, con las columnas fila,motivo: duplicado para la línea 3 y sku_vacio para la línea 5. La numeración incluye la cabecera como línea 1.

Antes de activar el objetivo, facilita a Codex el CSV y el verificador de la sección siguiente, pegándolos en el chat o guardándolos en archivos del proyecto. Así podrá consultar las condiciones de aceptación. Después escribe en su campo de entrada:

/goal Corrige scripts/limpiar_catalogo.py para importar tests/fixtures/catalogo.csv en UTF-8. La ejecución python3 scripts/limpiar_catalogo.py tests/fixtures/catalogo.csv --salida salida/catalogo.csv --incidencias salida/incidencias.csv debe recortar espacios del SKU, conservar la primera fila de cada SKU y registrar duplicados o SKU vacíos con su número de línea. Mantén los nombres, acentos y campos entrecomillados. Limita los cambios al importador y sus pruebas. Comprueba los dos CSV con el verificador indicado abajo, añade pruebas de regresión para estos casos y entrega los comandos ejecutados, sus resultados y los archivos modificados. Si una dependencia impide verificarlo, explica qué falta y qué queda pendiente antes de declararlo terminado.

La orden de Python de ese objetivo es la interfaz solicitada para el script del ejemplo, no una orden propia de Codex ni una afirmación de que ya existe en tu repositorio. Adapta el nombre y los argumentos si tu importador utiliza otra interfaz.

Aquí el agente puede decidir dónde está el fallo y qué cambios necesita. Tú fijas el comportamiento observable, los archivos permitidos y las pruebas que permiten aceptar el resultado. Pedir “arregla la importación” sin esas condiciones dejaría sin resolver qué hacer con duplicados y filas incompletas.

Comprueba los archivos con una prueba independiente

Después de ejecutar el importador, lee los CSV con un verificador que no utilice sus propias funciones. Para el archivo de ejemplo, este comando comprueba cabeceras, valores, orden e incidencias:

bash
python3 - <<'PY'
import csv
from pathlib import Path

with Path("salida/catalogo.csv").open(encoding="utf-8", newline="") as f:
    reader = csv.DictReader(f)
    assert reader.fieldnames == ["sku", "nombre"], "Cabecera del catálogo incorrecta"
    catalogo = list(reader)

assert catalogo == [
    {"sku": "A-01", "nombre": "Lámpara"},
    {"sku": "B-02", "nombre": "Mesa, roble"},
], "El catálogo no coincide con el resultado esperado"

with Path("salida/incidencias.csv").open(encoding="utf-8", newline="") as f:
    reader = csv.DictReader(f)
    assert reader.fieldnames == ["fila", "motivo"], "Cabecera de incidencias incorrecta"
    incidencias = list(reader)

assert incidencias == [
    {"fila": "3", "motivo": "duplicado"},
    {"fila": "5", "motivo": "sku_vacio"},
], "Las incidencias no coinciden con las filas descartadas"
print("Comprobación correcta: 2 artículos y 2 incidencias")
PY

El resultado esperado es Comprobación correcta: 2 artículos y 2 incidencias. Si falta un archivo o una aserción falla, este caso todavía no está resuelto. La prueba cubre ese catálogo concreto: no demuestra por sí sola que el importador maneje todos los archivos posibles. Para aceptar la corrección del proyecto, comprueba además las pruebas de regresión y el diff.

El verificador se ha comprobado de forma aislada con los archivos esperados y con una salida alterada que debía fallar. Esa comprobación valida el ejemplo de aceptación; no equivale a haber ejecutado /goal, reparado un importador real ni medido la autonomía de Codex.

Cómo saber si terminó o solo dejó de trabajar

Pide un cierre que relacione cada criterio con una prueba concreta. En el caso del catálogo, necesitas los dos archivos, la salida del verificador, el resultado de las pruebas de regresión y la lista de cambios. Un mensaje “ya está” o un registro largo de intentos no sustituye esos elementos.

Esquema del ciclo de un objetivo de Codex y su comprobación final

Situación al detenerseQué puedes dar por confirmadoSiguiente acción
Existen los entregables y pasan las comprobaciones acordadasEl resultado cumple los criterios comprobadosRevisa los cambios y decide si aceptarlos
Se agotó el presupuestoSe alcanzó un límite de trabajoExamina lo completado y lo pendiente antes de continuar
Falta una dependencia o una decisión necesariaHay un bloqueo descrito, si se aporta la causa y la evidenciaResuelve esa dependencia o ajusta el alcance
Pausaste, interrumpiste o limpiaste el objetivoLa continuidad se ha detenidoInspecciona el estado de los archivos antes de reanudar

El Cookbook indica que al alcanzar el presupuesto Codex debe dejar el trabajo sustantivo y resumir avances, bloqueos y siguiente paso. Presupuesto agotado y objetivo completado son resultados diferentes. También describe que una interrupción pausa el objetivo y que una continuación sin llamadas a herramientas suprime otra continuación automática.

Puedes pedir “si tres intentos no aportan información nueva, detente y explica el bloqueo”. Es una instrucción de trabajo, no un contador técnico que imponga por sí mismo un máximo de tres ejecuciones. Lo mismo ocurre con “gasta menos de cierta cantidad”: escribirlo en el objetivo no crea un límite de facturación.

Para integraciones, la documentación de app-server describe thread/goal/set, thread/goal/get y thread/goal/clear, además de tokenBudget, tokensUsed y timeUsedSeconds. Es una interfaz de desarrollo para gestionar el estado del objetivo, no una receta necesaria para activar /goal ni una equivalencia exacta entre tokens, euros y cuota de una suscripción.

Si aparece el comando pero falla el objetivo

Que /goal no aparezca y que falle al establecer o leer un objetivo son síntomas distintos. Para el primero, sigue las comprobaciones de versión y activación. Para el segundo, recoge el cliente, su versión, el error exacto y la operación que falló; consulta el objetivo actual si esa operación sigue funcionando.

Comprueba si intentabas editar o reanudar un objetivo existente, o establecer uno nuevo en otro chat. Esa información permite distinguir problemas de estado de problemas de disponibilidad, aunque no demuestra por sí sola la causa. Si persiste, aporta el contexto y los fragmentos pertinentes de los registros, retirando claves y datos privados. No hay base en las fuentes citadas para tratar cualquier error de Goals como una señal de que debas borrar conversaciones, reiniciar credenciales o reinstalar todo.

Preguntas frecuentes

¿Dónde escribo /goal: en el terminal o en Codex?

En el campo de entrada de Codex. Si usas Codex CLI, entra primero en su interfaz interactiva y escribe ahí /goal <objetivo>. codex --version y codex features enable goals son órdenes de terminal; /goal es un comando de la conversación. La guía oficial documenta esa entrada.

¿Qué hago si /goal no aparece en la App?

Comprueba la versión de esa aplicación y su menú de comandos. La activación oficial señala features.goals en config.toml o codex features enable goals, pero actualizar el CLI no demuestra que hayas actualizado la App. Si sigue faltando, conserva el cliente y la versión como parte del diagnóstico.

¿Puedo cambiar un objetivo sin empezar otro chat?

Sí. Usa /goal edit y después /goal para consultar el objetivo revisado, según la guía actual de comandos. Revisa las condiciones de aceptación si el cambio modifica lo que cuenta como terminado.

¿/goal sustituye a /plan?

Cumplen funciones distintas. Planificar ayuda a decidir y ordenar los pasos; un objetivo mantiene el resultado a perseguir durante el trabajo. Si no puedes explicar cómo reconocer el resultado final, aclara primero el encargo. El Cookbook reserva Goals para objetivos verificables cuya ejecución puede requerir varios turnos.

¿Puedo dejarlo trabajando toda la noche?

Puede continuar entre turnos dentro de las condiciones descritas por el Cookbook, pero no hay aquí una garantía de duración, funcionamiento con el ordenador apagado ni finalización. Antes de dejarlo sin supervisión, define alcance, pruebas y qué debe informar si se bloquea o agota el presupuesto.

¿El presupuesto de tokens es un límite de gasto en euros?

No puedes asumir esa equivalencia. El presupuesto del objetivo delimita trabajo y la documentación de app-server expone su contabilidad en tokens y tiempo. No demuestra un precio exacto ni convierte una frase del objetivo en un tope de facturación.

Fuentes4

Páginas externas que cita esta guía, en el orden en que aparecen. Última actualización: 8 oct 2026.

  1. 1.guía oficial de comandoslearn.chatgpt.com/docs/developer-commands
  2. 2.guía oficial de activaciónlearn.chatgpt.com/use-cases/follow-goals
  3. 3.Cookbook de OpenAIdevelopers.openai.com/cookbook/examples/codex/using_goals_in_codex
  4. 4.documentación de app-serverlearn.chatgpt.com/docs/app-server