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.
El recorrido, de principio a fin¶
-
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. -
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.
-
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 .pdfde hasta 32 MBIncluido 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, diffsDecodificado 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,.aacLas 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,.aviTodaví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 audioDocumentos de Office .docx,.xlsx,.pptx, los antiguos.doc/.xls/.ppt,.odt,.ods,.odpTodaví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. -
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.