> ## Documentation Index
> Fetch the complete documentation index at: https://avala.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingesta de fallos

> Envíe rollouts y fallos a Avala, y vea cómo Avala los convierte en una taxonomía de fallos y un informe de brechas

El ciclo empieza con lo que sus robots hacen realmente. Usted envía rollouts, incluidos los fallos y las intervenciones. Avala los lee, encuentra los patrones y le indica qué datos faltan.

## Formatos

| Formato | Cómo llega |
| - | - |
| MCAP | Subida de grabación de flota, o `avala import folder --data-type mcap` |
| ROS bags (`.bag`, `.db3`) | `avala import rosbag`, o convierta a MCAP y suba como grabación de flota |
| Datasets de LeRobot | `avala import lerobot` desde el Hugging Face Hub o un directorio local |
| Video con logs | Video mediante `avala import folder --data-type video`. Avala alinea los logs con el video como parte del programa. |
| Logs de evaluación de Inspect Robots | `avala import inspect-robots`. Consulte la sección Importe logs de evaluación. |

MCAP conserva cada topic, así que ofrece la imagen más completa. El importador de ROS bags convierte los topics de cámara (`sensor_msgs/Image` y `sensor_msgs/CompressedImage`) y conserva los estados de las articulaciones y otros topics numéricos o de texto. Las nubes de puntos y otras cargas binarias se omiten. Envíe MCAP cuando necesite conservar todos los topics.

## Envíe rollouts como grabaciones de flota

Cada subida va a una grabación de flota existente. Avala aprovisiona grabaciones para sus dispositivos registrados cuando empieza el programa. Lístelas para encontrar el UID de la grabación.

```python Python theme={null}
from avala import Client

client = Client()  # reads AVALA_API_KEY

page = client.fleet.recordings.list(device_id="<device-uid>", limit=20)
for recording in page:
    print(recording.uid, recording.status, recording.started_at)

# Upload a local directory of rollout files into one recording.
session = client.fleet.uploads.upload_recording(
    "<recording-uid>",
    "./rollouts/2026-09-29",
)
print(session.uid, session.status)
```

```bash CLI theme={null}
# Preview what will be uploaded
avala fleet recordings upload \
  --source ./rollouts/2026-09-29 \
  --recording <recording-uid> \
  --dry-run

# Upload and wait for server-side processing
avala fleet recordings upload \
  --source ./rollouts/2026-09-29 \
  --recording <recording-uid> \
  --wait
```

`upload_recording` reanuda una subida interrumpida del mismo origen. Una llamada completada significa que el procesamiento está en cola. Consulte `client.fleet.recordings.get(uid).status` hasta que indique `ready`.

## Marque fallos e intervenciones como eventos

Los eventos de flota ponen una etiqueta en un momento de una grabación. Marque cada fallo y cada intervención para que Avala los encuentre rápido. Use `type` para la clase de evento y `metadata` para cualquier dato que registre su stack, como la versión del modelo y la tarea.

```python Python theme={null}
from avala import Client

client = Client()

event = client.fleet.events.create(
    recording="<recording-uid>",
    device="<device-uid>",
    type="anomaly",
    label="Plate slipped during placement",
    timestamp="2026-09-29T14:03:12Z",
    severity="warning",
    duration_ms=1800,
    tags=["failure", "regrasp"],
    metadata={"model_version": "your-policy@2026-09-20", "task": "load_dishwasher"},
)
print(event.uid)

# Many events at once
created = client.fleet.events.create_batch(
    events=[
        {
            "recording": "<recording-uid>",
            "device": "<device-uid>",
            "type": "state_change",
            "label": "Operator took over",
            "timestamp": "2026-09-29T14:03:15Z",
            "tags": ["intervention"],
        },
    ]
)
print(created)
```

```typescript TypeScript theme={null}
import Avala from "@avala-ai/sdk";

const avala = new Avala(); // reads AVALA_API_KEY

const event = await avala.fleet.events.create({
  recording: "<recording-uid>",
  device: "<device-uid>",
  type: "anomaly",
  label: "Plate slipped during placement",
  timestamp: "2026-09-29T14:03:12Z",
  severity: "warning",
  durationMs: 1800,
  tags: ["failure", "regrasp"],
  metadata: { model_version: "your-policy@2026-09-20", task: "load_dishwasher" },
});
console.log(event.uid);
```

```bash CLI theme={null}
avala fleet events create \
  --recording <recording-uid> \
  --device <device-uid> \
  --type anomaly \
  --label "Plate slipped during placement" \
  --timestamp 2026-09-29T14:03:12Z \
  --severity warning
```

El `type` del evento es uno de `error`, `warning`, `info`, `state_change`, `anomaly` o `custom`. `severity` es uno de `info`, `warning`, `error` o `critical`. También puede crear eventos automáticamente con [reglas de grabación](/docs/visualization/fleet/recording-rules.md).

## Importe ROS bags y datasets de LeRobot

Cuando los rollouts están fuera de la flota, impórtelos como dataset. Primero instale el extra para el formato.

```bash theme={null}
pip install "avala[rosbag]"
avala import rosbag ./rollout_0412.bag --name "Rollouts 0412" --slug rollouts-0412 --wait

pip install "avala[lerobot]"
avala import lerobot --repo-id your-hf-user/your-rollouts --name "Rollouts" --slug rollouts --wait
```

El importador de LeRobot se describe en detalle en [Exportaciones](/docs/es/fleet-learning/exports.md).

## Importe logs de evaluación

Si evalúa su política con [Inspect Robots](https://github.com/robocurve/inspect-robots), una herramienta de evaluación de código abierto, importe su log de evaluación en JSON. Cada prueba, una escena en una época, etiqueta una secuencia con una [etiqueta de resultado](/docs/es/fleet-learning/sequence-metadata.md). Las pruebas fallidas se convierten en secuencias que usted puede filtrar, revisar y convertir en trabajo de recolección.

```bash theme={null}
pip install "avala[inspect]"

# Preview the trial-to-outcome mapping. Reads the log only.
avala import inspect-robots logs/load-dishwasher_1a2b3c4d.json --dataset your-org/dishwasher-eval --dry-run

# Label the sequences that already exist in the dataset, one per trial
avala import inspect-robots logs/load-dishwasher_1a2b3c4d.json --dataset your-org/dishwasher-eval

# Or create the dataset from each trial's recorded actions, plus camera frames if the run stored them
avala import inspect-robots logs/load-dishwasher_1a2b3c4d.json --dataset your-org/dishwasher-eval --create
```

| Prueba de Inspect Robots | Resultado |
| - | - |
| Puntuación de éxito igual o superior a `--success-threshold`, puntuación de calificación igual o superior a `--expert-threshold` | `expert_success` |
| Puntuación de éxito igual o superior a `--success-threshold`, puntuación de calificación inferior a `--expert-threshold` | `partial_success` |
| Puntuación de éxito inferior a `--success-threshold` | `failure` |
| La prueba dio error o se canceló | `aborted` |
| El evaluador de éxito no produjo ningún valor | Sin etiqueta |

Cada etiqueta importada tiene `source` igual a `imported`, `evaluation_membership` igual a `held_out_eval` y `autonomy_level` igual a `autonomous`. `model_version` es la política de la ejecución. La tarea de la ejecución se convierte en una subtarea que abarca toda la prueba. Las etiquetas escritas por una persona o un modelo se conservan salvo que pase `--overwrite`. La lista completa de opciones está en la [referencia de la CLI](/docs/sdks/cli.md#inspect-robots-evaluation-logs).

## Inspeccione grabaciones y eventos con el servidor MCP

El servidor MCP lee datos de flota. Pregunte a su asistente por los fallos recientes, o llame a las herramientas directamente:

* `fleet_list_recordings` y `fleet_get_recording` para grabaciones
* `fleet_list_events` filtrado por `recording`, `device`, `type` o `severity`
* `get_fleet_health` para un resumen de toda la flota

Las subidas y la creación de eventos se hacen con el SDK o la CLI. Consulte [Use Avala con IA](/docs/es/getting-started/mcp.md) para conectarse.

## Qué hace Avala con los rollouts

Los pasos siguientes son un servicio que Avala realiza como parte del programa. No hay una API que llamar para ellos.

1. **Segmentación.** Avala divide cada rollout en secuencias y subtareas en los cambios de estado. Sus eventos anclan los momentos de fallo.
2. **Etiquetado.** Cada secuencia recibe los dos ejes de sus [metadatos de secuencia](/docs/es/fleet-learning/sequence-metadata.md): una verificación de validez técnica y una etiqueta de resultado.
3. **Agrupamiento.** Avala agrupa los fallos según qué salió mal y en qué condiciones. Los grupos se asignan a una taxonomía de fallos versionada para su programa. Los grupos nuevos amplían la taxonomía.
4. **Análisis de brechas.** Avala compara los grupos de fallos con la cobertura de sus datos de entrenamiento existentes y con las cohortes de evaluación.

## El informe de brechas

Avala entrega un informe de brechas para cada lote de rollouts.

| Sección | Contenido |
| - | - |
| Alcance | Grabaciones, rango de tiempo, versiones del modelo y versión de la taxonomía. |
| Taxonomía de fallos | Cada modo de fallo, su definición y secuencias de ejemplo. |
| Distribución | Recuentos y tasas de fallo por modo, por versión del modelo y por celda de cobertura. |
| Cobertura faltante | Las [celdas de cobertura](/docs/es/fleet-learning/coverage.md) detrás de cada modo de fallo que sus datos de entrenamiento no tienen o tienen con muy pocos datos. |
| Experimentos propuestos | Un borrador de [experimento de capacidad](/docs/es/fleet-learning/capability-experiments.md) por cada condición de fallo prioritaria, con una hipótesis y celdas objetivo. |

Usted revisa el informe de brechas y elige las prioridades. Los experimentos aprobados se convierten en el siguiente brief de recolección.
