Subagents
Un subagent es un ayudante que un agente inicia durante su propio turn, usando la función de subagents o de tareas del propio proveedor: una búsqueda en el código, la revisión de un archivo, un trabajo aparte con otro modelo. Trabaja en una parte de la tarea y devuelve un resultado al agente. OAR muestra cada uno en la transcripción y guarda lo que hizo, para que puedas ver cómo llegó el agente a su respuesta.
No es lo mismo que una sesión de agente.
Un subagent vive dentro de un turn de una conversación y no tiene conversación
propia. Una sesión de agente es una conversación aparte en tu lista que un agente
inicia con relay_.
En la transcripción #
Mientras corre el turn, cada subagent tiene una burbuja dentro de la burbuja en vivo del turn. Un subagent que inicia otro lo muestra anidado dentro de su propia burbuja. La cabecera de la burbuja muestra:
| Parte | Qué es |
|---|---|
| Nombre | El nombre o la descripción del subagent, tal como lo informa el proveedor |
| Último paso | Una línea, que se muestra mientras la burbuja está plegada: el número de pasos y el más reciente, como en 3 steps · 🛠️ Tool (Read): index., o el final de su texto si aún no ha dado ningún paso. Las rutas de archivo se recortan al nombre del archivo |
| Estado | ● Running (En ejecución) mientras trabaja, y después la forma en que terminó: Completed (Completado), Failed (Fallido) o, para un subagent que detuviste, Cancelled (Cancelado) |
| Stop (Detener) | Detiene este subagent. Desaparece cuando el subagent ha terminado. Consulta Detener un subagent |
Nuevo en 0.9.6 Una burbuja empieza plegada en esta cabecera, así que un turn con muchos subagents se mantiene corto al desplazarse. Haz clic o toca en cualquier parte de la cabecera para abrirla y ver el razonamiento, los pasos y el texto del subagent, y vuelve a hacer clic para plegarla. Lo que elegiste a mano se mantiene mientras viva la burbuja.
Cuando el turn termina, las burbujas dejan paso a la respuesta terminada. Debajo, la respuesta lista los subagents del turn como filas, en el orden en que se iniciaron. Los subagents que inició otro subagent no se listan ahí; los encuentras dentro del registro de su padre. Una fila muestra:
- el nombre del subagent, que abre su registro,
- su estado: Running, Starting (Iniciando), ✓ Completed, ✗ Failed o ■ Stopped (Detenido), con in the background (en segundo plano) y record cut (registro recortado) cuando corresponda,
- su modelo, su tipo (como
Explore, o Subagent cuando no se indica ninguno), los tokens que usó y cuánto tiempo se ejecutó.
Solo Claude y DeepSeek informan del modelo, el tipo y los tokens. En los demás proveedores, la fila muestra Subagent y omite el modelo y los tokens. La fila dice ■ Stopped para un subagent al que la burbuja en vivo llamó Cancelled; ambos significan lo mismo.
El visor de subagents #
Nuevo en 0.9.10 El visor muestra el registro completo de un subagent: qué pensó, qué herramientas llamó con qué entrada y qué le devolvieron, el texto que escribió y los subagents que inició él mismo, en el orden en que ocurrió todo.
Abrirlo #
Haz clic en el nombre del subagent:
- en la fila bajo una respuesta terminada,
- en el panel de tareas encima del área de redacción, para un subagent de Claude o DeepSeek que trabaja en segundo plano (consulta Tareas en segundo plano),
- en una fila hija dentro del registro de otro subagent.
La burbuja de un subagent dentro del turn en vivo no abre el visor. Usa el panel de tareas, si un subagent de Claude o DeepSeek aparece ahí, o espera a que la respuesta terminada lo liste.
Nuevo en 0.9.11 En una vista compartida de solo lectura, la fila de un subagent también abre su registro, de solo lectura, sin Stop, y con las rutas del host del relay filtradas como el resto de lo compartido. En 0.9.10, los nombres ahí eran texto sin formato.
Lo que muestra #
La cabecera contiene el nombre, un botón Stop mientras el subagent se ejecuta, y una línea con su modelo, tipo, estado, background cuando corresponda, tokens y tiempo. Debajo, el registro avanza desde arriba:
| Entrada | Cómo se lee |
|---|---|
| 💭 Pensamiento | Su primera línea. Un pensamiento que aún se está escribiendo está abierto y dice Thinking… (Razonando…) hasta que llega texto |
| Llamada a herramienta | Un icono, el nombre de la herramienta y un resumen de una línea, como el comando o el archivo. Haz clic para ver la entrada completa, cuando hay más que el resumen |
| Resultado | Result (Resultado) o Error, su tamaño, y cut from (recortado de) el tamaño original cuando se recortó (consulta Límites). Haz clic para leer el texto |
| Texto de la respuesta | El texto propio del subagent, como Markdown con formato. Writing… (Escribiendo…) mientras llega |
| Agente hijo | Una fila como las que hay bajo una respuesta. Haz clic en su nombre para abrirlo |
| Nota | Una línea del propio relay, como la que dice que el registro se recortó |
Un registro que sigue en ejecución crece en vivo y sigue su final. Si te desplazas hacia arriba, el visor se queda donde estás y un botón New entries ↓ (Nuevas entradas) te devuelve abajo. Un registro terminado se abre por arriba. Un pliegue que abriste sigue abierto mientras la entrada cambia.
Solo una página que tiene el visor abierto recibe el registro a medida que crece. Si se pierde un lote en una conexión lenta, o la conexión se corta, el visor obtiene por sí mismo lo que falta.
Si aún no hay nada registrado, dice Nothing recorded yet. Entries appear as the agent works. (Aún no hay nada registrado. Las entradas aparecen mientras el agente trabaja.) Para un subagent terminado sin registro, dice Nothing was recorded for this agent. (No se registró nada para este agente.) Un registro que el relay no pudo cargar muestra This agent's record could not be loaded. (No se pudo cargar el registro de este agente.)
Moverse entre subagents y cerrar #
Una fila hija se abre en el mismo sitio. Un botón arriba a la izquierda, como ‹ Review agent, nombra al padre y te lleva de vuelta a él. Cerrar el visor, por cualquiera de los medios de abajo, vuelve a la conversación, no al padre.
Para cerrarlo, pulsa la ×, pulsa Escape, haz clic fuera de la ventana o usa el botón Atrás del navegador o del teléfono. En un teléfono ocupa toda la pantalla.
Límites #
| Qué | Límite |
|---|---|
| Un resultado de herramienta | Se conservan los primeros 4 KB. La entrada indica el tamaño del original |
| Entradas en un registro | 2000. El registro termina entonces con una nota y la cabecera dice record cut at its limit (registro recortado en su límite) |
| Registros antiguos | Los registros creados antes de que existiera el visor se reconstruyen a partir de lo que se guardó y dicen recorded before the full record existed (registrado antes de que existiera el registro completo). Son más cortos |
Una sesión de Claude que ya estaba en ejecución cuando actualizaste a 0.9.10 no graba ningún registro completo de subagents hasta que su worker se reinicia. ☠️ Kill session (Matar la sesión) en una sesión inactiva basta; el siguiente mensaje inicia un worker nuevo.
Cuánto tiempo se conserva la salida de las herramientas #
Nuevo en 0.9.10 Las entradas y los resultados de herramientas de un subagent pueden ser grandes, así que el relay los quita de los registros antiguos. Un registro nunca se elimina y el subagent sigue listado.
Settings → General → Keep sub-agent tool output (Ajustes → General → Conservar la salida de herramientas de los subagents) fija cuánto tiempo se quedan las entradas y los resultados. Las opciones son 7 days (7 días), 14 days (14 días), 30 days (30 días), 90 days (90 días) y Always (Siempre). El valor predeterminado es 90 days. Consulta también Ajustes.
Poco después de que arranque el relay, y luego una vez al día, recorre las llamadas y los resultados de herramientas que se escribieron por última vez hace más de ese número de días, en subagents que ya no están en ejecución:
- una llamada a herramienta conserva su resumen de una línea y dice Input removed after 90 days (Entrada eliminada tras 90 días) (con el número que elegiste); su entrada completa desaparece,
- un resultado de herramienta, o un error, conserva su tamaño y dice, por ejemplo, Result · 3.2 KB · output removed after 90 days (Resultado · 3.2 KB · salida eliminada tras 90 días); su texto desaparece,
- el razonamiento, el texto del subagent, las notas y los agentes hijos quedan como estaban.
Un subagent que sigue en ejecución lo conserva todo, por antiguo que sea. Always desactiva la limpieza. Guardar el ajuste inicia una limpieza unos cinco segundos después. Una entrada o un resultado eliminados no vuelven cuando subes el número.
En segundo plano #
Un subagent puede ejecutarse en segundo plano, de modo que siga después de que
el agente haya respondido. Entonces también aparece como una fila en el panel de
tareas encima del área de redacción, con su propio botón Stop. En Claude y
DeepSeek, el nombre que le da el panel abre el visor. Un agente en segundo plano
en el motor SDK de Copilot solo está en el panel y no tiene
registro. Cómo funciona el panel, qué termina una tarea en segundo plano y el
tiempo límite se explican en
Tareas en segundo plano. La fila de un subagent de Claude o DeepSeek muestra in
the background, y la cabecera del visor, background. Su registro sigue
creciendo entre turns. Nuevo en 0.9.12 La fila de un subagent en el panel de
tareas cuenta sus pasos (llamadas a herramientas), como 22 steps, igual que su
burbuja plegada, en Claude, DeepSeek y el motor SDK de Copilot.
Detener un subagent #
Hay dos sitios para Stop: en la burbuja del subagent mientras corre el turn, y en la cabecera del visor. Ambos lo muestran para cualquier subagent en ejecución, en todos los proveedores, sea posible o no detener ese en concreto. Un subagent en segundo plano también se puede detener desde el panel de tareas.
Lo que se puede detener por separado:
- Un subagent en segundo plano en Claude o DeepSeek, y un agente en segundo plano en el motor SDK de Copilot (desde el panel de tareas).
- Nada más está confirmado. Un subagent que se ejecuta dentro del turn en Claude o DeepSeek no se puede detener por separado, y tampoco ningún subagent en Claude Cloud, Cursor o Grok.
Cuando un subagent no se puede detener, el clic termina en un rechazo. El botón de la burbuja cambia a Stop unavailable (Detener no disponible), y aparece entre los pasos del subagent una línea que empieza por System note: Could not stop this subagent (Nota del sistema: no se pudo detener este subagent). En el visor, el botón dice Stopping… (Deteniendo…) durante hasta 15 segundos y luego vuelve a Stop; no cambia a Stop unavailable. Usa en su lugar Stop en todo el turn; consulta Mientras corre un turn.
Cuando una detención funciona, el subagent dice entonces Stopped en las filas y en el visor, y Cancelled en la burbuja en vivo.
Por proveedor #
| Proveedor | Lo que contiene el visor | Detener un subagent |
|---|---|---|
| Claude | Todo: razonamiento, cada llamada a herramienta con su entrada y su resultado, el texto, los agentes hijos, el modelo, el tipo y los tokens | Los de segundo plano |
| DeepSeek Nuevo en 0.9.17 | Como Claude. El modelo mostrado es el modelo de DeepSeek en el que se ejecutó el subagent, el modelo del chat, o DeepSeek Flash para uno pedido como haiku; consulta DeepSeek |
Los de segundo plano |
| GitHub Copilot y OpenAI, motor SDK | Los subagents que se ejecutan dentro del turn: razonamiento, pasos y texto, un nivel (sin agentes hijos), sin modelo ni tokens. Los agentes en segundo plano no tienen registro, solo una fila en el panel de tareas | Los agentes en segundo plano, desde el panel de tareas |
| GitHub Copilot y OpenAI, motor de extensión | Lo que informa la extensión; el registro puede tener huecos | No confirmado |
| Claude Cloud | Razonamiento y pasos, con agentes hijos. El texto propio del subagent no se publica | No |
| Cursor | Razonamiento, pasos y texto, un nivel (sin agentes hijos). Los resultados de herramientas no se informan | No |
| Grok | Solo que el subagent se inició y cómo terminó. El visor no tiene nada propio que mostrar | No |
| OpenAI Image | No aplica | No aplica |
La tabla completa de capacidades está en Los proveedores de un vistazo.