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

# Recursos

> Las imágenes y los videos que un agente puede mostrar, y las descripciones que los hacen utilizables

Los recursos son el vocabulario visual de un agente: las imágenes y los videos que puede colocar dentro de una respuesta. El agente solo puede usar lo que registraste: nada se descarga de la web, nada se genera, y ningún recurso de otro espacio de trabajo puede aparecer jamás.

## Qué lleva un recurso

| Campo | Para qué sirve |
| - | - |
| `key` | El id estable que el agente emite, en kebab-case (`hero-storefront`). Único dentro del registro de su agente. |
| `kind` | `image` o `video`, decidido a partir de los bytes del propio archivo. |
| `description` | **En inglés, escrita para el agente**: qué *muestra* el recurso. Así decide el agente si el recurso encaja con una pregunta. |
| `alt` | **Localizado, escrito para el visitante**: lo que anuncia un lector de pantalla, en español y en inglés. |
| `topics` | Temas que conectan el recurso con las preguntas que responde. |
| `orientation` | `horizontal` o `vertical`, calculada a partir de los píxeles. |
| `curation` | Si la descripción vino de la pasada de visión de wondeya (`vision`), de una persona (`manual`) o falta (`none`). |
| `url` | Un enlace firmado y de vida corta al archivo. Expira y se vuelve a emitir en cada lectura. |
| `durationSeconds` | Segundos completos. Presente solo en un video; ausente en una imagen. |
| `posterUrl` | Un enlace firmado al frame de póster JPEG del video, la imagen fija que muestran la grilla y el detalle. Presente solo en un video; el `url` de una imagen ya es una imagen. |

`description` y `alt` son dos campos distintos con dos audiencias distintas, y confundirlos es el error clásico: uno decide *si el recurso se elige*, el otro es *lo que escucha un visitante ciego*.

## Subir recursos

**Desde la consola**, una subida puede ser una imagen (PNG, JPEG, WebP, GIF o AVIF, hasta 8 MB) o un video (MP4 con H.264/AAC, o WebM con VP9/Opus, hasta 15 MB y 60 segundos). El formato se decide por los bytes del propio archivo, nunca por su nombre ni por su tipo declarado: un `.png` que en realidad es otra cosa, o un video con un códec ilegible, se rechaza en lugar de servirse desde el origen de wondeya. Un video de más de 60 segundos se rechaza con `wondeya.asset.video_too_long`.

<Note>
  **La API (`/v1/assets`) y `upload_asset` de MCP aceptan solo imágenes, hoy.** Subir video es una superficie exclusiva de la consola; un video ya registrado desde la consola aparece igual en ambas, y el agente lo coloca de la misma forma que coloca una imagen.
</Note>

Volver a subir exactamente el mismo archivo al mismo agente devuelve el recurso existente en lugar de crear un duplicado; el mismo archivo subido a otro agente es un recurso separado a propósito.

## Curación al subir

Cada subida atraviesa una pasada de visión que redacta el borrador de la descripción, los temas y los dos textos alternativos (español e inglés): lo que el recurso realmente muestra, no lo que el nombre del archivo afirma. En un video, la pasada lee su **frame de póster** (la imagen fija que wondeya extrae al subirlo), nunca la imagen en movimiento. Los temas que tú mismo fijas al subir se conservan por encima de la sugerencia del modelo. La pasada se ejecuta dentro de la subida, porque un recurso sin descripción es un recurso que el agente nunca elegirá. Dejarlo para después significa un registro que, en silencio, no hace nada.

Dos consecuencias que vale la pena conocer:

* **La curación nunca bloquea una subida.** Si el modelo de visión no está disponible, tu imagen llega igual; lo que pierdes es un borrador de descripción que puedes escribir tú mismo.
* **Editar cualquier cosa lo hace tuyo.** En cuanto corriges el texto, el recurso se marca `manual`, la consola deja de presentarlo como una sugerencia y ninguna re-curación futura sobrescribirá tus palabras.

Un recurso con la descripción vacía queda fuera del registro que ve el agente. Una imagen que el agente no puede distinguir de otra es peor que una que nunca ve, porque termina elegida para la respuesta equivocada.

## Cómo usa el agente un recurso

Mientras se selecciona el conocimiento, una etapa de selección paralela lee el registro curado completo del agente, incluido el pool del espacio de trabajo, contra una consulta derivada de la pregunta del visitante, y elige como máximo cuatro recursos. De cada recurso ve id, tipo, orientación y descripción. Nunca una URL, nunca el archivo, nunca la ubicación de almacenamiento. Los recursos ya mostrados en la conversación se excluyen en código, no solo en el prompt.

Luego el agente coloca los ids en componentes: `media`, `mediaCard`, `gallery` y, opcionalmente, `timeline`, `metrics` o `grid`. Después de que el componente pasa la validación, el servidor cambia cada id por una URL firmada al archivo en el almacenamiento propio de wondeya. Por eso una inyección de prompt escondida en un documento subido no puede poner una imagen arbitraria, un píxel de rastreo o un enlace frente a un visitante: el modelo nunca tuvo un campo donde escribir una dirección.

La orientación tampoco es decorativa. Una captura vertical en un espacio de ancho completo crece hasta volverse ilegible de tan alta, así que el modelo ve la orientación de cada recurso al componer, y el payload resuelto la lleva consigo para que el renderizador pueda colocar las imágenes verticales junto al texto en lugar de a ancho completo.

## Escribir descripciones que funcionan

* Di lo que es **visible**: "un mostrador de panadería con hogazas de masa madre y una pizarra de precios", no "nuestra promesa de marca".
* Nombra aquello por lo que un visitante preguntaría: el producto, la pantalla, el espacio.
* Mantenla en una o dos oraciones. Un texto más largo no ayuda al agente a elegir mejor.
* Agrega temas que coincidan con las preguntas que la imagen responde (`storefront, products`).

## Renombrar y borrar

La `key` es lo que el agente emite, así que cambiarla cambia a qué imagen apunta una respuesta futura. Las keys son únicas dentro del registro de un agente: dos agentes de un mismo espacio de trabajo pueden tener cada uno un `hero`, y un segundo `hero` dentro de un mismo agente se rechaza. Las páginas que comparten un agente comparten sus recursos y sus keys.

Borrar un recurso es de verdad: la entrada del registro y el archivo almacenado se van juntos. Borrar una página elimina solo la página: su agente conserva todas las imágenes, dondequiera que ese agente responda. Borrar el agente es lo que elimina su registro y los archivos almacenados, y eso se rechaza mientras una página todavía responda con él.

<Note>
  En la consola, subes recursos desde la pestaña **Recursos** de un agente y pertenecen a ese agente. A través de la API, enviar `agentId: null` (u omitirlo) coloca la imagen en un pool a nivel del espacio de trabajo que todo agente del espacio puede usar.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.