# Ejecuciones y aprobaciones
Cada vez que un agente se inicia, crea una ejecución: un recorrido por sus pasos, con su propio registro, archivos, resultado y costo. Úselas para revisar el trabajo, responder aprobaciones y corregir fallos sin empezar de cero.
## Antes de empezar [#antes-de-empezar]
| Para | Necesita poder |
| --- | --- |
| Ver las ejecuciones de un agente | Abrir su proyecto |
| Responder una aprobación | Cambiar el proyecto |
| Ejecutar de nuevo desde un paso | Editar el proyecto |
## Encontrar una ejecución [#encontrar-una-ejecución]
Abra el agente. El panel **Ejecuciones** muestra las más recientes; **Ver todas** abre la lista completa con cada **Ejecución**, su **Inicio**, su **Duración** y sus **Créditos**. Filtre por **Todas**, **En curso**, **Completadas** o **Fallidas**, y seleccione **Cargar más** para ver más atrás.
Cada ejecución indica cómo empezó: **Programada**, **Iniciada por una carga de tabla**, **Iniciada por archivos nuevos**, **Iniciada por un evento de webhook** o **Iniciada por un agente**.
```bash
klarety agent runs daily-summary --project PROJECT_ID
```
La CLI muestra las últimas ejecuciones. En Python, `runs` lee más atrás una página a la vez, de la más reciente a la más antigua:
```python
from itertools import islice
from klarety import Nexus
nx = Nexus.connect()
for run in islice(nx.agents.runs("PROJECT_ID", agent="daily-summary"), 50):
print(run)
for day in nx.agents.stats("PROJECT_ID", days=7):
print(day)
```
`stats` devuelve las ejecuciones por día, de la más reciente a la más antigua: cuántas, cómo terminaron y cuánto costaron. Para retomar la paginación desde otro proceso, use `runs_page` y pase su `next` como `after`.
## Leer una ejecución [#leer-una-ejecución]
Una ejecución muestra el flujo del agente con el estado de cada paso: **En espera**, **En curso**, **Esperando su respuesta**, **Completado**, **Reutilizado**, **Fallido**, **Rechazado**, **Detenido** u **Omitido**. Un paso que se ejecuta una vez por elemento muestra su avance, por ejemplo "12 de 40 elementos".
Seleccione un paso para ver su configuración y luego **Registro y archivos** para leer lo que imprimió y descargar lo que hizo. **Resultado** muestra lo que produjo la ejecución: filas (con "Mostrando X de Y filas" si el resultado es largo), texto o archivos.
```python
run = nx.agents.run("PROJECT_ID", RUN_ID)
result = nx.agents.result("PROJECT_ID", RUN_ID)
print(nx.agents.log("PROJECT_ID", RUN_ID, "summary"))
for name in nx.agents.outputs("PROJECT_ID", RUN_ID, "summary"):
data = nx.agents.output("PROJECT_ID", RUN_ID, "summary", name)
```
`result` contiene el paso de resultado, su valor (hasta 1 MiB) y los archivos que dejó la ejecución. Para un paso que se ejecuta una vez por elemento, pase `item=` a `log`, `outputs` u `output`.
## Aprobar el siguiente paso [#aprobar-el-siguiente-paso]
Un paso **Le pregunta primero** pausa la ejecución y hace una pregunta, por ejemplo si debe guardar las calificaciones en la tabla `ai_scores`. La ejecución muestra **Esperando su respuesta** y el agente pasa a **Lo necesitan** en .
### Abra la ejecución en espera [#abra-la-ejecución-en-espera]
Abra el agente desde **Lo necesitan** y seleccione la ejecución en espera.
### Revise lo que está por hacer [#revise-lo-que-está-por-hacer]
Lea la salida de los pasos anteriores, por ejemplo las calificaciones que quiere guardar.
### Responda [#responda]
Seleccione **Sí, continuar**, o **No, detener aquí** para terminarla como **Rechazada**; nada después del paso de aprobación ocurre.
```python
nx.agents.answer("PROJECT_ID", RUN_ID, "approve", yes=True)
```
`step_id` es el `id` del paso de aprobación en el archivo del agente. `yes=False` detiene la ejecución allí.
Una ejecución rechazada termina allí. Para hacer el trabajo de todos modos, inicie el agente de nuevo o use **Ejecutar de nuevo desde aquí** en otra ejecución.
## Detener una ejecución [#detener-una-ejecución]
Seleccione **Detener** en una ejecución en curso. Termina como **Detenida**; los pasos terminados conservan su salida.
```bash
klarety agent stop RUN_ID --project PROJECT_ID
```
## Ejecutar de nuevo desde un paso [#ejecutar-de-nuevo-desde-un-paso]
Los pasos anteriores al que elige se reutilizan, no se ejecutan de nuevo.
Cuando una ejecución falla a mitad de camino o un paso se interrumpió, abra la ejecución, seleccione el paso desde el que quiere empezar y seleccione **Ejecutar de nuevo desde aquí**. La nueva ejecución reutiliza la salida anterior (aparece como **Reutilizado**) y ejecuta ese paso y todos los siguientes.
```bash
klarety agent rerun RUN_ID --from-step summary --project PROJECT_ID
```
```json
{
"run_id": "..."
}
```
## Lo que cuestan las ejecuciones [#lo-que-cuestan-las-ejecuciones]
Cada ejecución usa créditos de su espacio de trabajo, que se ven en la columna **Créditos**. La página de Agentes muestra **Créditos hoy** y las ejecuciones de esta semana; el saldo y el gasto están en . Un agente pausado o eliminado no inicia ejecuciones, así que deja de usar créditos.
## Si algo sale mal [#si-algo-sale-mal]
- **Una ejecución falló**: ábrala, busque el paso marcado como **Fallido** y lea **Registro y archivos**. Si la causa ya pasó (por ejemplo, una dirección web que estaba caída), use **Ejecutar de nuevo desde aquí** en ese paso.
- **"Este paso se reintentó después de una interrupción"**: un servicio al que llamó el paso pudo recibir la llamada dos veces. Revíselo si un duplicado importa.
- **Una ejecución espera mucho tiempo**: probablemente está en un paso **Le pregunta primero**. Busque en **Lo necesitan**.
- **"Esta ejecución terminó antes de producir un resultado"**: falló, se detuvo o se rechazó antes del paso de resultado. Revise qué paso la terminó.
## Siguientes pasos [#siguientes-pasos]
- [Probar, activar y pausar](/docs/es/agents/go-live)
- [Qué hacen los agentes](/docs/es/agents)
- [Créditos](/docs/es/workspace/credits)