Un subagente realiza una tarea acotada con conversación y sesión propias. Sirve para explorar trabajo independiente sin llenar la conversación principal de cada detalle. ## Una exploración ```text /agent explore Revisa cómo se valida este formulario. Devuelve rutas, comportamiento actual y una comprobación reproducible; no cambies archivos. ``` `explore` es el tipo predeterminado y sólo lectura. Tiene Read, Glob, Grep, ListDirectory y FileInfo, además de las superficies de investigación disponibles. No recibe Bash arbitrario ni puede abrir otra cadena recursiva de agentes. ## Varias preguntas independientes Puedes pedir al modelo que use AgentBatch para hasta tres exploraciones independientes. No lo uses para «A y después B» cuando B necesita los cambios de A: eso es una dependencia, no paralelismo útil. Agent `general` hereda permisos y se ejecuta de forma secuencial. El prompt del hijo no concede autorización adicional. Los cambios de política del padre siguen aplicando. ## Consultar resultados ```text /agents /agents UUID ``` Cada informe conserva identidad, estado, límites y evidencia observada. Un texto delegado es dato no confiable, no una nueva intención humana ni garantía de corrección. ## Límites Por defecto hay hasta 8 tareas por solicitud y 6 llamadas por hijo, con timeout. Las variables COMAL_MAX_SUBAGENTS, COMAL_SUBAGENT_MAX_TURNS y COMAL_SUBAGENT_TIMEOUT_MS permiten configurarlos dentro de sus rangos. El presupuesto de goal incluye trabajo de los hijos. ## Subagente o sesión El subagente integrado comparte el proveedor del padre y puede solicitar otro modelo/effort anunciado por ese proveedor. Para consultar otro proveedor, contexto o capacidad en una instancia viva, usa [otra sesión de Comal](sesiones). ## Background y continuación ```text /agent background Revisa los tests y reporta sólo rutas y hallazgos. /agents status /agents wait RUN_ID /agents stop RUN_ID /agents resume RUN_ID /agents background RUN_ID ``` `RUN_ID` identifica una ejecución hija; sustitúyelo por el ID de `/agents`. `wait` es observación acotada: no reinicia el hijo. `stop` queda registrado y ni una notificación ni `resume` lo revocan. `resume` conserva identidad, modelo/effort, presupuesto y techo de autoridad originales, intersectados con las restricciones actuales. Un hijo general sigue en foreground; moverlo a background no está admitido. La TUI y `--listen` incorporan resultados pendientes en una frontera del protocolo. El informe se guarda antes de su incorporación y se deduplica por referencia durable. Un resultado ya devuelto en foreground recibe ACK y no se añade otra vez como mensaje. El cierre del proceso pausa/cancela sus runners: background no es un daemon que sobreviva a Comal. El listado separa `runner / turn / work`. `exited / budget / checks_pending` describe un hijo que salió con trabajo pendiente. `completed` histórico y código de salida cero tampoco certifican el objetivo humano. Si muere el padre durante Agent/AgentBatch, una preparación durable permite recuperar la llamada sin relanzar hijos conocidos. La casa devuelve `HOUSE_RECOVERY_CONTINUE` con `AgentContinue` y su invocation_id original; `/agents continue INVOCATION_ID` ejecuta esa continuación. Un batch parcialmente reservado conserva los UUID ya existentes y completa sólo índices pendientes bajo su configuración original. Una llamada antigua sin evidencia suficiente permanece incierta. ## Recursos y selección de modelo Agent admite `model`, `effort` y `allowed_tools`. La CLI valida modelo y nivel anunciados por el proveedor actual, fija una conexión independiente para el hijo y conserva los controles del padre. Cambiar de proveedor sigue usando perfiles o sesiones distintas. `allowed_tools` limita todo el catálogo del hijo, incluso dependencias anidadas; no concede permiso ni recursión. Dos lectores lógicos pueden avanzar independientemente. `COMAL_PROVIDER_CONCURRENCY` limita requests de inferencia compartidos por padre/hijos (2 por defecto, 1–8). Para un servidor con un slot usa `COMAL_PROVIDER_CONCURRENCY=1`. Cola, inactividad del modelo y timeout total son límites diferentes; no se cancela un hijo por modelo inactivo mientras tiene una herramienta en vuelo. La recuperación valida el libro y la muerte del propietario. Es específica de estos coordinadores; no constituye recuperación genérica de procesos arbitrarios, MCP o plugins.