Ir al contenido

Corridas de agentes

Una corrida es una sesión de un agente sobre una tarea. Arranca sola cuando la tarea entra en una etapa que tiene un agente asignado, ya sea porque alguien la movió o porque la etapa anterior avanzó sola. El agente trabaja en un contenedor propio sobre la rama de la tarea, con un límite de turnos y de tiempo, y al terminar deja un reporte, un comentario y, si la etapa lo pide, un push a la rama. Si el agente tiene auditor en esa etapa, después corre el auditor y decide si la tarea sigue, vuelve o se frena.

Ver corridas lo puede cualquiera que vea la tarea. Para mover tareas, hablarle a una corrida, frenarla o relanzarla necesitás rol Developer o más.

Antes de la primera corrida tienen que estar tres cosas:

  • Un agente asignado a esa etapa en la tarea. Lo ves en la propiedad “Agente” del panel derecho; los agentes y sus etapas se arman en Agentes.
  • Una credencial de LLM para el motor del agente, en Credenciales y motores. Sin ella la corrida queda en “No arrancó”, con un link a Motores de IA.
  • Un proyecto vinculado a la tarea, si el agente trabaja sobre un repo. Ver Proyectos.
Tablero Infra interna con cuatro tarjetas en En curso: una corriendo, una frenada por el auditor, una sin turnos y una sin estado
En el tablero, cada tarjeta muestra el estado de su última corrida: Corriendo, Frenada por el auditor, Sin turnos.
  1. Mové la tarea a una etapa con agente: arrastrala en el tablero, o abrila y tocá “Mover a …” en la cabecera (o el nombre de la etapa, para elegir otra). Si el agente necesita un repo y la tarea no tiene proyecto, el movimiento se rechaza con “El agente “desarrollador” necesita un repo vinculado. Vinculá un proyecto, elegí otro agente…“.

  2. Abrí la tarea. La cabecera muestra el estado al lado de la etapa (“Corriendo”, o “En cola” si el workspace no tiene lugar para arrancarla; en ese caso la tarjeta “Próxima corrida” dice qué falta y ofrece “Cancelar espera”). En la pestaña “Tarea”, sección “Actividad”, aparece la tarjeta “Corrida 1: desarrollador en Desarrollo” con el tiempo que lleva y la última acción del agente.

  3. Tocá “Ver log” para la salida del contenedor o “Abrir chat” para la conversación del agente, con cada herramienta que llama.

Tarea abierta con la tarjeta de la corrida 1 de desarrollador en En curso, corriendo hace 12 minutos, la última acción Bash npm run test:e2e y los botones Ver log, Abrir chat y Detener
La corrida en curso: estado, cuánto lleva, la última acción y las tres acciones.
Pestaña Historial con el evento Corrida iniciada y su log en vivo en modo Stream-JSON: el commit en la rama de la tarea y la llamada a npm run test:e2e
“Ver log” abre la salida de la corrida en “Historial”. Acá el agente acaba de commitear el envío en la rama de la tarea y arrancó la suite e2e.

La tarjeta de la corrida más nueva se queda a la vista en “Todo”. Las anteriores se pliegan en una línea como “1 cambio de etapa, 1 corrida y 1 actualización”; con el filtro “Corridas” las ves todas como tarjetas, incluidas las del auditor.

  1. En la tarea, abrí la pestaña “Chat” (o “Abrir chat” en la tarjeta). La corrida viva lleva la marca “en vivo”.

  2. Escribí en el cuadro “Escribile al agente…”. Enter manda, Shift+Enter salta de línea.

  3. Si querés que lo lea ya, marcá “interrumpir”: el agente corta lo que está haciendo. Sin marcarla, lo lee al terminar el turno actual.

  4. Tocá “Mandar”. Debajo del cuadro aparece qué pasó con el mensaje.

Lo que pasa con el mensaje depende de dónde corre el agente:

Situación Qué pasa con el mensaje
Corrida viva y alcanzable (Docker) Entra en la conversación del agente al terminar el turno, o al instante con “interrumpir”
Corrida viva que no acepta mensajes (siempre en Kubernetes) Queda en espera con el aviso “La corrida en curso no acepta mensajes; entra apenas termine (1 en espera).”. Al terminar, el agente retoma la sesión con tu mensaje y la tarea se queda en la etapa. Entran hasta 5 por tarea y se pierden si se reinicia el daemon (el texto sigue en el chat)
No hay corrida, pero hay sesión guardada Retoma la sesión anterior como continuación
No hay sesión que retomar El mensaje queda en el chat con la opción “Pasarlo a comentarios”
Pestaña Chat de una corrida en vivo: el agente corría npm run test:e2e, el comentario de Sofía pide cortar la suite y correr sólo cart.spec.ts, el turno termina con un error y el agente corre el spec del carrito; abajo, interrumpir marcado
Con “interrumpir”, el mensaje entra en medio del turno: la e2e se corta, el turno termina con un error y el agente sigue con lo que le pediste.
Pestaña Chat en vivo con la conversación del agente y un mensaje en espera
Con la corrida en Kubernetes, el mensaje espera a que termine la corrida.

En Docker también podés avisarle desde un comentario: con la corrida viva, el cuadro de comentarios de “Actividad” muestra la casilla “Avisarle a desarrollador” y el comentario le llega al terminar el turno. Si la corrida no acepta mensajes, la casilla aparece apagada con “No se le puede avisar a desarrollador”, como en la captura de arriba.

En la tarjeta de la corrida que está corriendo, tocá “Detener” y confirmá con “Frenar corrida”. Como dice el diálogo, el agente se frena donde está, lo que hizo hasta ahora queda en la rama y la tarea sigue en su etapa. El auditor no corre. La tarjeta de la corrida queda como “Frenada por vos” (o el nombre de quien la frenó) y la tarea, como “Frenada”.

Diálogo de confirmación con el título ¿Frenar la corrida 1? y los botones Cancelar y Frenar corrida
Detener pide confirmación antes de cortar el contenedor.

Para volver a correr la etapa, sacá la tarea de la etapa y volvela a meter.

Cada agente tiene un máximo de turnos por etapa (20 si nadie lo cambió), que se configura en Agentes. El tiempo máximo de una corrida es del workspace: un admin lo cambia en Configuración → “Motores de IA” → “Límite de tiempo por corrida”; sin un valor propio rige el de la instalación. Si la corrida usa todos los turnos, la tarea queda en “Sin turnos”, la tarjeta de la corrida dice “30 de 30 turnos” y la cabecera ofrece el botón “Más turnos”.

“Más turnos” relanza la etapa con el doble de turnos que tuvo la última corrida (un agente con 30 turnos por etapa relanza con 60, y la siguiente vez con 120), cancela las preguntas que el agente tenía abiertas y deja un comentario con el pedido. El toast confirma “Relanzada con 60 turnos”. Si la corrida no puede arrancar, el toast dice “No se pudo relanzar: …” con la causa. “Más turnos” también está en el menú “Más acciones” (los tres puntos arriba a la derecha, atajo T) y en el menú de la tarjeta del tablero, sólo mientras la tarea está sin turnos.

Para otras causas, el botón principal de la cabecera cambia:

Estado Botón
“Sin turnos” “Más turnos”
“Falló” o “No arrancó” “Reintentar”
“Frenada por el auditor” “Revisar y reintentar”: abre “Reportes” para que leas la devolución y pide confirmación
“No se pudo retomar” “Relanzar etapa”
“Credencial vencida” “Abrir Credenciales”
“Sin agente” “Elegir agente”
Tarea después de Más turnos: la corrida 1 con 30 de 30 turnos, la corrida 2 corriendo y el toast Relanzada con 60 turnos
Después de “Más turnos”. La corrida anterior queda con su tarjeta y la nueva arranca con el doble de turnos.

El auditor es una segunda pasada que revisa el trabajo del agente apenas termina. Corre en su propio contenedor, con el mismo motor que el agente, el repo en sólo lectura y sin MCP, y deja un veredicto. Se activa por agente y por etapa en Agentes, sección “Auditor por etapa”, donde también se eligen sus turnos (5 si no ponés nada), el modelo y skills extra; las skills _base y quality-review se cargan siempre que existan. Sus tokens se suman a los de la tarea.

Veredicto Qué pasa con la tarea Dónde lo ves
continue Sigue: si la etapa avanza sola, pasa a la siguiente; si la etapa pide aprobaciones, queda en “Espera una aprobación” Evento “Veredicto del auditor” en “Historial”
kick_back Vuelve a la etapa que eligió el auditor y arranca otra corrida ahí Reporte “Devolución del auditor” en “Reportes” (“Veredicto: devolver a En curso”), el cambio de etapa en “Historial” y el aviso en “Actividad”
block Se queda en la etapa con “Frenada por el auditor” Cabecera, tablero, filtro “Te necesitan” y el comentario del auditor en “Actividad”
needs_more_turns Relanza la etapa sola hasta sumar 3 corridas en esa etapa; después queda en “Sin turnos” Evento “Veredicto del auditor” en “Historial”

El auditor no corre si frenaste la corrida, ni después de una continuación por chat.

Pestaña Historial de una tarea en Corriendo: corrida terminada sin turnos, auditoría iniciada y terminada, Veredicto del auditor Volver a correr con más turnos y, enseguida, una corrida nueva con su prompt
Un needs_more_turns: apenas el auditor da el veredicto, Thulu relanza la etapa y la tarea vuelve a “Corriendo”.
Pestaña Reportes con la devolución del auditor abierta: Veredicto devolver a En curso, un criterio cumplido y dos sin cumplir
La devolución del auditor en “Reportes”: qué criterios no se cumplen y qué tiene que hacer el agente.
Tarea Frenada por el auditor con la corrida 2 del auditor terminada y su comentario sobre la tarjeta guardada en texto plano
Un block: el auditor explica el motivo en un comentario y la tarea espera a una persona.

La pestaña “Historial” lista cada evento de la tarea con fecha, del más nuevo al más viejo: “Prompt” (con “ver prompt →” para leer las instrucciones exactas que recibió el agente), “Corrida terminada” con salida, artefactos y banderas, “Auditoría iniciada”, “Prompt del auditor”, “Auditoría terminada”, “Veredicto del auditor” y cada cambio de etapa. “ver logs →” abre la salida de esa corrida, en modo “Crudo” o “Stream-JSON”. Arriba, la barra “Contexto · último turno” muestra cuánto de la ventana del modelo usó el último turno.

Pestaña Historial de una tarea en Hecho, del evento más nuevo al más viejo: entrada a la etapa, veredicto del auditor, auditoría terminada, prompt del auditor, auditoría iniciada, corrida terminada, corrida iniciada y prompt
“Historial” de una tarea auditada, del evento más nuevo al más viejo.

La propiedad “Corridas” de la tarea dice cuántas hubo, cuántos tokens usaron y cuánto costaron (“2 corridas, 550.4k tokens, US$ 0,34”), y al tocarla abre “Historial”. Ahí, el uso de la tarea muestra “En qué se fue el costo” (arranque, razonamiento, herramientas, subagentes, compactación) y cada corrida abre su desglose por llamada; ese desglose sale sólo de corridas de Claude Code. Para comparar tareas, Configuración > “Uso” tiene la tabla “Tareas más caras”, con las sesiones, los turnos, los tokens, el costo y la duración de cada una.

Tabla Tareas más caras de Uso con sesiones, turnos, tokens, costo y duración por tarea
“Tareas más caras” en Uso.

Más detalle en Uso y costos.

En la cabecera Qué significa Qué hacer
(nada) La última corrida terminó bien y la tarea no avanzó sola, o nunca corrió Moverla o revisar el resultado
“Corriendo” El agente o el auditor está trabajando Mirar, hablarle o “Detener”
“En cola” No hay lugar en el workspace para arrancar. Arranca sola cuando termina otra corrida, chat o sandbox; si espera más de 2 horas (configurable) se abandona y queda en “No arrancó” Esperar, o “Cancelar espera” en la tarjeta “Próxima corrida”
“Espera una respuesta” El agente hizo una pregunta que lo frena “Responder” en la cabecera, o en Pendientes
“Espera una aprobación” La etapa pide aprobaciones antes de avanzar “Revisar” en la cabecera, o la pestaña “Aprobaciones”
“Sin turnos” La corrida usó todo su presupuesto de turnos, o el auditor pidió más turnos 3 veces “Más turnos”
“Falló” La corrida terminó con error Leer el log; “Reintentar”
“No arrancó” El lanzamiento falló antes de tener un contenedor: falta la credencial de LLM, no se pudo preparar la rama o se abandonó la espera en cola. La tarjeta dice el motivo Seguir el link de la tarjeta (“Abrir Motores de IA”, “Ver la cuota”) y “Reintentar”
“Frenada” Alguien tocó “Detener” Sacar la tarea de la etapa y volverla a meter
“Frenada por el auditor” El auditor dio block Leer la devolución y “Revisar y reintentar”, mover la tarea o corregir a mano
“Credencial vencida” Una credencial de herramienta (MCP) que necesita la corrida está vencida o revocada “Abrir Credenciales” (ver abajo)
“Sin agente” La etapa no tiene agente para esta tarea “Elegir agente”
“No se pudo retomar” Contestaste una pregunta o pediste cambios y el agente no pudo volver a arrancar “Relanzar etapa”
“Hecha” La tarea está en la etapa final del tablero Nada
Tarea en En curso con el estado En cola y la tarjeta Próxima corrida: desarrollador en En curso, que espera lugar porque la cuota de CPU del workspace está en 6 de 6, con el link Ver la cuota y el botón Cancelar espera
Una tarea “En cola”: la tarjeta dice qué falta. Arranca sola cuando se libera lugar.