Saltar a contenido

Cómo gestiona mintbot los archivos

Cuando envías una foto, un documento, una nota de voz, una hoja de cálculo, una captura de pantalla o un PDF a tu agente mintbot — por Telegram, el panel web o la API —, el archivo se guarda en el VPS de tu propio agente y en ningún otro sitio. Allí se queda todo el tiempo que quieras, y el LLM recibe una copia de trabajo preparada para él.

Es una decisión de diseño discreta con consecuencias importantes. Vale la pena explicarla, porque es uno de los puntos en los que mintbot más se aleja de los chats de IA para el gran público.

Diagrama: un archivo subido se guarda como original en el VPS de tu agente; un adaptador elegido según el tipo de archivo crea una copia de trabajo para el LLM
El original se queda intacto en tu VPS — el modelo solo ve una copia de trabajo hecha para él.

El recorrido, de principio a fin

  1. El archivo llega al VPS del agente. Un PDF que arrastras al panel web va directo a tu VPS. Una foto o un archivo enviado por Telegram lo descarga el bot de mintbot desde Telegram y lo pasa de inmediato a tu VPS — solo lo retransmite, nunca lo guarda de forma centralizada. La API local del agente comprueba la firma del archivo (sus magic bytes) para saber qué tipo de archivo es en realidad (los móviles y los navegadores lo etiquetan mal sorprendentemente a menudo), calcula su hash SHA-256 y lo escribe en /var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext>. En un catálogo local se añade una fila con el origen (telegram / panel / api), el ID de quien lo subió, el tipo MIME y el nombre de archivo original. Si envías el mismo archivo dos veces, se guarda una sola vez.

    Si la conversación trabaja en un proyecto, el agente también deja una copia en la carpeta uploads/ de ese proyecto, para poder trabajar con el archivo junto al resto del proyecto.

  2. El original es sagrado. A partir de aquí, nada dentro de mintbot modifica el archivo guardado. Los adaptadores que lo preparan para el LLM solo crean copias de trabajo — JPEG redimensionados, texto decodificado. El original, idéntico byte a byte, se queda en el disco hasta que lo borres. No hay almacenamiento central, ni plazo de conservación, ni fugas entre agentes: cada VPS de agente solo conoce los archivos de su propio dueño.

  3. El modelo recibe una versión hecha para él. Cuando el agente le muestra el archivo al LLM, un pequeño distribuidor elige el adaptador adecuado según el tipo MIME y la extensión:

    Adaptador Qué procesa Qué recibe el modelo
    Imagen JPG, PNG, WebP, GIF, HEIC (iPhone), AVIF, TIFF, BMP Redimensionada a 1568 px en el lado largo, recodificada como JPEG q85 e incluida directamente en la petición. La decodificación se hace en un proceso aparte y de corta duración, con un límite de memoria ajustado a tu VPS, para que una foto enorme no pueda ralentizar al agente
    PDF .pdf de hasta 32 MB Incluido como PDF nativo — Claude lee directamente el texto y la maquetación. Un PDF más grande se queda en el disco y el agente extrae el texto por su cuenta (por ejemplo, con pdftotext)
    Texto .txt, .md, .csv, .json, .yaml, .svg, código fuente (.py, .js, .ts, .go, .rs, …), registros, diffs Decodificado como UTF-8 (latin-1 como alternativa) e incluido hasta 500 KB; un archivo más largo se corta ahí y el original completo se queda en el disco
    Audio .mp3, .ogg, .opus, .m4a, .wav, .flac, .aac Las notas de voz de Telegram y del micrófono del panel llegan ya transcritas. Un archivo de audio todavía no se transcribe automáticamente — el agente recibe su ubicación e instrucciones, y lo transcribe cuando se lo pides
    Vídeo .mp4, .mov, .webm, .mkv, .avi Todavía no se extrae automáticamente. Cuando se lo pides, el agente instala ffmpeg (avisándote antes de cuánto espacio en disco ocupa) y extrae él mismo fotogramas o la pista de audio
    Documentos de Office .docx, .xlsx, .pptx, los antiguos .doc / .xls / .ppt, .odt, .ods, .odp Todavía no se extraen automáticamente. Cuando se lo pides, el agente instala una pequeña biblioteca de lectura y extrae el texto
    Desconocido Todo lo demás Una nota con el nombre, el tipo, el tamaño y la ubicación en disco del archivo, más sus primeros bytes en hexadecimal — suficiente para que el modelo reconozca el archivo y lo abra con sus herramientas cuando la tarea lo requiera

    Cada copia de trabajo se guarda en caché junto al original como <sha256>.cache/v<N>.json, así que la siguiente vez que el modelo necesita ese archivo, se carga al instante. Cuando cambia un adaptador, la caché se regenera sola.

  4. Nada de URL que caducan en el contexto del modelo. Cuando una imagen o un PDF va al LLM, se incluye en la misma petición — ninguna URL que pueda dar un 404 más tarde, ningún enlace firmado con fecha de caducidad. Cuando el modelo solo necesita una referencia, la URL es una dirección interna https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw — protegida por el token del panel de tu agente y válida mientras el archivo siga en el disco.

Por qué es mejor que los chats de IA para el gran público

Cuando subes una foto a ChatGPT o un PDF a Claude.ai, el archivo va al almacenamiento del proveedor, vinculado a esa conversación, y la política de conservación del proveedor decide cuándo desaparece. Pasado cierto tiempo, el archivo ya no está, aunque todavía veas la conversación en la que estaba. Cambiar de proveedor significa empezar de cero.

Un fallo habitual de los bots de Telegram lo deja claro. Telegram guarda un file_id permanente para cada foto, pero el enlace de descarga que obtiene un bot para ella solo está garantizado durante una hora, más o menos. Los bots que solo guardan ese enlace devuelven un 404 con la foto de ayer. mintbot copia el archivo al VPS de tu agente en cuanto llega — y si respondes a una foto más antigua, la vuelve a descargar mediante el file_id permanente. A partir de ahí, la foto es tuya.

De este diseño se derivan tres cosas:

  • Los archivos son tuyos, no del proveedor del LLM. Si el mes que viene cambias de Claude a GPT, tu historial de archivos se viene contigo, intacto, porque está en tu VPS — no en el almacenamiento de un proveedor.
  • Puedes volver a preguntar más tarde. «Hace tres meses analizaste un contrato para mí, ¿puedes compararlo con este nuevo borrador?» funciona, porque el original sigue en el disco. En un chat para el gran público, el archivo antiguo suele haber desaparecido.
  • El modelo siempre recibe la versión que mejor sabe aprovechar. Los modelos de visión reciben el JPEG redimensionado, los lectores de texto UTF-8 y los lectores de PDF un PDF nativo. Desde el móvil puedes subir HEIC y simplemente funciona — el decodificador de imágenes carga el plugin HEIF de Pillow, y la comprobación de firma detecta los móviles que etiquetan mal el archivo como application/octet-stream.

Dónde gestionar tus archivos

El panel web del agente tiene un gestor de archivos en Ajustes → Gestor de archivos. Recorre todo el VPS del agente; la carpeta de subidas, /var/lib/mintbot-agent/uploads/, es la parte que llenan tus conversaciones. Desde ahí puedes:

  • Explorar carpetas y descargar, renombrar, mover o borrar archivos
  • Crear carpetas
  • Arrastrar y soltar archivos nuevos — se suben por fragmentos, hasta 4 GB por archivo
  • Editar archivos de texto pequeños (hasta 1 MB) directamente en el navegador

Límites de tamaño: un archivo que adjuntas en el chat puede ocupar hasta 500 MB; Telegram solo deja a los bots descargar archivos de hasta 20 MB; el Gestor de archivos admite hasta 4 GB por archivo. Por encima de eso, el único límite es tu disco — mintbot siempre deja algo de espacio libre para que el servidor siga funcionando. Si el disco se llena, el agente te avisa y te da un enlace directo al Gestor de archivos para que liberes espacio — o simplemente pídele al agente que borre archivos antiguos.

Al borrar un archivo en el Gestor de archivos, desaparece del disco y el agente ya no puede mostrárselo al LLM. Eso es lo que hace que el original sea «tuyo»: solo tú puedes borrarlo.

En resumen

La mayoría de los chats de IA tratan lo que subes como contexto de conversación desechable. mintbot lo trata como tus datos — guardados en tu VPS, de tu propiedad y convertidos bajo demanda en la forma exacta que el modelo necesita en ese momento. Muchas de las capacidades más interesantes de mintbot se apoyan en esta base.