Agent Bucket: Almacén nativo de Agent a escala de billones
Agent Bucket: Almacén nativo de Agent a escala de billones
En la actualidad, con el auge de los AI Agents, los desarrolladores están construyendo aplicaciones inteligentes e imaginativas a una velocidad sin precedentes. Desde asistentes de programación que te ayudan a escribir código hasta herramientas de creación que generan una película a partir de una sola frase, pasando por asistentes inteligentes personales siempre disponibles, los Agents están remodelando nuestra forma de interactuar con el mundo digital. Detrás de esta ola, un consenso se vuelve cada vez más claro: con la ayuda de la arquitectura Serverless (como Lambda), los modelos de lenguaje grandes (LLM) y el almacenamiento en la nube (como S3, TOS), combinados con Vibe Coding, cualquiera puede construir rápidamente su propio AI Agent en 30 minutos.
Para pasar de "funcional" a "útil", los desarrolladores de Agents aún necesitan superar dificultades para transformar "juguetes" en "aplicaciones de nivel de producción". A medida que el negocio se expande a una gran cantidad de usuarios, los desarrolladores deben enfrentarse a un desafío extremadamente complejo: ¿cómo construir una solución de almacenamiento completa para una gran cantidad de usuarios finales en el almacenamiento de objetos? Para la mayoría de los desarrolladores, esto no solo es una barrera técnica, sino también una brecha que impide la distribución a gran escala de Agents. Agent Bucket tiene como objetivo simplificar por completo el proceso de construcción de sistemas multiinquilino a través de un diseño de almacenamiento nativo de AI, proporcionando una capacidad de Agent más amigable.
Cuando miles de millones de usuarios entran, el almacenamiento de objetos tradicional "no es suficiente"
Imagina que has desarrollado una aplicación AIGC que se ha vuelto viral. Cada usuario generará y almacenará una gran cantidad de imágenes, videos y archivos temporales. Como desarrollador, naturalmente elegirás servicios de almacenamiento de objetos maduros y escalables como S3 y TOS. Pero aquí está el problema: ¿cómo administrar los datos para una gran cantidad de usuarios?
En la publicación de blog de S3 de 2022, "Partitioning and Isolating Multi-Tenant SaaS Data with Amazon S3", se describen dos métodos: "usar un bucket S3 independiente para cada inquilino" y "un bucket S3 compartido aislado por prefijo":
- Crear un "bucket" independiente para cada usuario: esto es factible cuando hay pocos usuarios, pero cuando el número de usuarios crece a decenas de miles o millones, el número de buckets explotará rápidamente, y los costos de administración y las limitaciones de recursos serán insoportables. S3 proporciona una cuota total de 10000 buckets por región, pero para las capacidades de IA populares, 10000 no es suficiente.

- Distinguir a los usuarios con "prefijos" en el mismo bucket: esta se ha convertido en la solución principal. Por ejemplo, los archivos del usuario A comienzan con user-a/, y los del usuario B comienzan con user-b/, como administrar archivos con carpetas en una computadora. Sin embargo, no existen carpetas nativas en el almacenamiento de objetos. Esta solución distingue a los multiinquilinos a través de un "prefijo común" en el sistema de almacenamiento "K-V".

Este esquema basado en "bucket" o "prefijo" se ha utilizado ampliamente durante la última década. Pero existen los siguientes problemas:
-
Aislamiento multiinquilino: los datos de todos los usuarios se mezclan en el mismo bucket. El acceso anormal de alta frecuencia de un usuario puede afectar a todos los demás usuarios, generando un "efecto vecino". El aislamiento del rendimiento y el aislamiento de fallas son imposibles.
-
Control de permisos: las políticas de permisos complejas (IAM Policy) son difíciles de mantener y es fácil cometer errores de configuración, lo que lleva a que los datos del usuario sean accedidos accidentalmente, especialmente cuando es necesario interactuar con otros servicios en la nube, el riesgo es mayor.
-
Claridad de costos: es difícil saber con precisión cuánto espacio de almacenamiento consume cada usuario y cuántos costos de tráfico genera. Cuando deseas cobrar a los usuarios de pago en función del uso, la facturación y la medición se convierten en una cuenta confusa.Por qué estas necesidades aparentemente básicas son tan "pesadas" de implementar para los desarrolladores de Agents en el almacenamiento de objetos? Una investigación profunda revela que, en la arquitectura nativa de la nube actual, existe un enorme vacío entre el "almacenamiento de objetos" (S3/TOS) y el "sistema de archivos" tradicional. La esencia del almacenamiento de objetos (S3/TOS) es la "aplanamiento", cuyo propósito original es el almacenamiento simple de datos masivos, como un enorme almacén. Aunque la capacidad es casi ilimitada, la estructura lógica es extremadamente simple. Carece de gestión de directorios avanzada nativa, control de metadatos de grano fino y verdadera conciencia del inquilino. Cuando los desarrolladores intentan simular un sistema de archivos multiinquilino "tridimensional" en un S3 "plano" mediante la codificación dura de prefijos, en realidad estamos utilizando un "almacenamiento KV estático" para soportar un método de acceso a archivos de aplicación Agent con "semántica de directorio y aislamiento fuerte". Es decir, el Agent necesita consumir tokens adicionales para administrar archivos y controlar la resolución de permisos y aislamiento multiinquilino. Estos tokens adicionales consumidos indican que el servicio de almacenamiento simple definido por S3 no es lo suficientemente simple para el Agent.
El blog de S3 de 2025, 《Design patterns for multi-tenant access control on Amazon S3》, explica con más detalle los S3 Access Point. Esto significa que se pueden crear múltiples puntos de acceso de red virtual y configurar una política de punto de acceso personalizada para cada punto de acceso, lo que proporciona algunas soluciones a nivel de programación de red para escenarios multiinquilino.
Agent Wonderland
Un desarrollador de Agent ideal, al desarrollar un AI Agent, puede construir un Agent completamente serverless basado en "Agent SDK + almacenamiento + servicio MaaS":
-
El Agent puede ejecutarse completamente serverless
-
Se puede construir un Agent combinando las capacidades de los productos existentes a través de Vibe Coding
-
Solo necesita mantener el script de python de "ADK"
-
El almacenamiento utiliza almacenamiento de objetos
-
La capacidad de AI utiliza Doubao
-
Teóricamente, no hay ECS u otros productos de tipo instancia
Al mismo tiempo, el almacenamiento necesita proporcionar las siguientes capacidades:
-
El Agent puede tener un almacenamiento con semántica de objeto (guardar archivos), proporcionar capacidad de acceso multiinquilino, comenzando con millones y escalable a miles de millones
-
El Agent puede proporcionar un espacio independiente para cada usuario (entre múltiples negocios, los negocios o uid pueden tener el mismo nombre)
-
El Agent puede configurar directamente el ancho de banda de cada usuario, configurar el límite superior del tamaño total del objeto de usuario
-
El Agent puede facturar, monitorear y observar según el usuario
-
El Agent puede configurar políticas de acceso para los archivos de cada usuario
Agent Bucket: Inyectando genes "nativos multiinquilino" en AI Agent
Para resolver fundamentalmente este problema, proponemos un nuevo paradigma de almacenamiento de objetos: Agent Bucket. Su innovación central es la introducción de una nueva capa de recursos nativos entre el "bucket" y el "objeto" tradicionales: el conjunto de objetos (ObjectSet).
La idea central de este diseño es extremadamente simple: hacer coincidir un ObjectSet exclusivo para cada uno de sus usuarios finales. Puede pensar en ObjectSet como una "caja fuerte de datos" o un "espacio personal en la nube" creado para cada usuario. Lógicamente pertenece a su Bucket (desarrollador), pero física y administrativamente, tiene su propia "personalidad" y "ciclo de vida" independientes.Agent Bucket soporta 100 millones de ObjectSet por bucket, lo que significa que puedes atender con facilidad a cientos de millones de usuarios finales, como si cada usuario final "viviera" en su propio espacio de almacenamiento independiente, sin tener que preocuparte por la gestión del almacenamiento multi-tenant.
Diseño de ObjectSet: Capacidades amigables para el Agente
En Agent Bucket, ObjectSet no es solo agregar un nivel, sino que también convierte las necesidades más complejas en escenarios multi-tenant en capacidades nativas listas para usar. Una vez que la propiedad de los datos se define claramente en el nivel de ObjectSet, una serie de capacidades que antes eran difíciles de implementar se vuelven naturales.
-
Aislamiento nativo: En el nivel de ObjectSet, puedes establecer QPS, límites de ancho de banda y cuotas de capacidad independientes para cada usuario. La experiencia de los usuarios de pago puede estar garantizada, y el comportamiento anormal de los usuarios gratuitos no afectará a otros. Este es un verdadero aislamiento de dominio de fallas, que evita que los "vecinos" interfieran entre sí.
-
Permisos nativos: Cada ObjectSet puede tener un dominio independiente. Esto significa que puedes dar al usuario A una dirección de acceso exclusiva como user-a.yourapp.com, en lugar de exponer el dominio de todo el bucket de almacenamiento. Aún más ingenioso es el diseño de "dos candados": el primer candado es una credencial de acceso temporal (STS) emitida por el proveedor de servicios en la nube, que controla los permisos de acceso a nivel de aplicación; el segundo candado es el dominio independiente de ObjectSet, que bloquea las solicitudes de acceso en el propio espacio de datos del usuario desde el nivel de red. Esto mejora enormemente la seguridad de los datos.
-
Monitoreo nativo: En el panel de monitoreo, ya no solo puedes ver los datos generales de todo el bucket. Puedes desglosar los gráficos de monitoreo por ObjectSet, para comprender claramente qué usuario final está realizando una gran cantidad de accesos, y así tomar decisiones de operación y optimización precisas.
-
Descenso de capacidades nativas: Las políticas que antes solo se podían establecer a nivel de bucket ahora se pueden descender a cada usuario. Puedes establecer diferentes ciclos de vida de datos para diferentes niveles de usuarios, o usar diferentes claves de cifrado para cada ObjectSet, para lograr una gestión de datos más granular y segura.
-
Medición nativa: ¿Quieres saber cuánto espacio de almacenamiento está utilizando cada usuario? ¿Quieres distribuir con precisión los costos de almacenamiento a cada usuario? Ahora es muy fácil. Agent Bucket calculará automáticamente la capacidad y el uso de cada ObjectSet, para que tu facturación y distribución sean claras.
-
Facturación nativa: Los desarrolladores pueden implementar fácilmente la distribución de costos, devolviendo con precisión los costos generados por el almacenamiento a cada usuario final. Por ejemplo, cobrar de manera diferenciada según la proporción de costos reales generados por los diferentes usuarios A, B y C, proporcionando soporte de datos para la comercialización de Agent.
-
Límite de capacidad nativa: Para controlar los costos operativos de Agent, puedes establecer una Quota (límite de capacidad) para cada ObjectSet. Una vez que se alcanza el valor preestablecido, el sistema restringirá que el usuario continúe generando nuevos archivos, evitando el uso indebido de recursos en escenarios multi-tenant desde la raíz.
-
Inteligencia nativa: Agent Bucket permite que Agent salga de la limitación del simple "almacenamiento y acceso" de archivos tradicional, dando a Object inteligencia nativa, y apoyando de manera más eficiente el desarrollo integral de Agent. ObjectSet puede activar el índice inteligente con un solo clic, proporcionando a Agent capacidades de preguntas y respuestas multimodales nativas y amigables, reemplazando las operaciones mecánicas tradicionales de Object CRUD; incluso soporta el modo Agentself con un solo clic, conectando vectores, conocimiento, modelos y prompts, exponiendo directamente funciones de sub-Agent basadas en escenarios, permitiendo a los desarrolladores de Agent de nivel superior centrarse en la creación del flujo de trabajo del negocio principal, liberando completamente la eficiencia de la monetización inteligente.
Desafíos técnicos provocados por la explosión de la escala de la aplicación
Agent Bucket proporciona a los desarrolladores de aplicaciones una forma elegante y eficiente de administrar los datos de cientos de millones de usuarios finales mediante la introducción del concepto nativo de ObjectSet. Los activos digitales de cada usuario se almacenan de forma segura en su ObjectSet exclusivo, lo que implementa de forma natural el aislamiento, la facturación y la gestión de cuotas.
Con la rápida expansión de la escala de la aplicación, la complejidad de la gestión de conjuntos masivos, la dificultad del aislamiento y los cuellos de botella físicos se hacen evidentes al mismo tiempo:
-
Problema de gestión jerárquica de usuarios masivos: Cuando una aplicación gestiona de forma diferenciada una gran cantidad de recursos y características de usuarios de diferentes niveles, necesita diseñar e implementar sus propios metadatos de clasificación de usuarios, y asociar los interruptores de características de almacenamiento de objetos. Ayudar a los desarrolladores a gestionar elegantemente la clasificación de usuarios sobre el concepto nativo de Set es importante para acelerar la implementación de la aplicación. - Cuello de botella de capacidad de un solo clúster: aunque Agent Bucket puede expandirse lógicamente de forma ilimitada, sus metadatos se almacenan de forma predeterminada en un solo clúster físico. Cuando el número total de objetos en el bucket alcanza cientos de miles de millones o incluso billones, la capacidad física de un solo clúster se convierte en un límite superior insuperable.
-
Problema de compartición de puntos de acceso: la diversidad de negocios del Agente y la gran cantidad de usuarios plantean mayores riesgos de seguridad y radio de explosión al punto de acceso en sí. Cómo realizar una programación dinámica basada en las diferencias entre una gran cantidad de negocios y usuarios diferentes, e implementar capacidades diferenciadas de seguridad, aislamiento y aceleración se convierte en un desafío.
Set Tagging: Gestión de usuarios jerarquizada mediante etiquetas
ObjectSet proporciona una forma nativa de gestión mediante etiquetas, lo que permite a los desarrolladores de Agent utilizar fácilmente la capacidad de set tagging para completar la gestión jerarquizada de los usuarios. Los desarrolladores pueden asignar un tag a cada nivel de usuario definido y habilitar diferentes cuotas y características para cada tag. Todos los ObjectSet etiquetados con este tag aplicarán las cuotas y características correspondientes. Tomemos como ejemplo los tres niveles V1, V2 y V3:
-
V1: Nivel predeterminado, usuarios gratuitos, el tag predeterminado para todos los ObjectSet, se puede configurar para almacenar un máximo de 1GiB de datos, la distribución pública no puede exceder el ancho de banda de 100mbps, y la velocidad de descarga de un solo flujo se controla a 1mbps;
-
V2: Miembros de pago de nivel básico, configurados para almacenar un máximo de 10GiB de datos, la distribución pública no puede exceder el ancho de banda de 10gbps, y la velocidad de descarga de un solo flujo se controla a 10mbps;
-
V3: Miembros de pago de nivel avanzado, además de proporcionar una mayor capacidad de almacenamiento y cuota de distribución pública, también admite la configuración para habilitar capacidades adicionales de aceleración de red débil pública y aceleración de medios de alto rendimiento;
Los desarrolladores de Agent pueden utilizar de forma flexible el tagging V1/V2/V3 para gestionar los recursos y las características de valor añadido que pueden utilizar estos usuarios, en función de los diferentes ciclos de desarrollo de los diferentes usuarios.
Set Slice: Aislamiento nativo de datos de usuarios masivos
Cuando el número de Set dentro de un Agent Bucket alcanza cientos de millones, y el número de objetos alcanza cientos de miles de millones o billones, el hecho de que "todos los metadatos de un solo Bucket se concentren en un solo clúster KV" en sí mismo, traerá riesgos duales de capacidad y rendimiento.
Set Slice proporciona una idea de "no dividir lógicamente, dividir físicamente":
-
Desde una perspectiva lógica, todavía solo gestionas un Agent Bucket.
-
Físicamente, de acuerdo con el Set y el rango de nombres de objetos dentro del Set, los metadatos se dividen en múltiples Slice (segmentos), y cada Slice se puede almacenar en diferentes clústeres. Múltiples Set están naturalmente aislados, y un solo Set se puede escalar horizontalmente.
Set Slice es una extensión y garantía adicional de la capacidad de ObjectSet. Resuelve el problema de la expansión ilimitada de la capacidad física en la capa inferior, al tiempo que garantiza la estabilidad y la consistencia del modelo de gestión de ObjectSet en la capa superior.
-
Límite de gestión estable: incluso si los datos de un Agent Bucket abarcan múltiples clústeres físicos, ObjectSet sigue siendo la única unidad básica de permisos, cuotas, facturación y monitorización. Las políticas configuradas por los desarrolladores para ObjectSet (como el control de acceso, el límite superior de capacidad) se aplicarán automáticamente a todos los Slices relacionados, sin necesidad de preocuparse por la distribución de los datos subyacentes.
-
Un solo Set se puede escalar linealmente: cuando la cantidad de datos de un ObjectSet crece rápidamente, sus datos se distribuirán naturalmente en múltiples Slices. A medida que se expande el clúster general, la capacidad del ObjectSet también crece sin problemas y linealmente, y los desarrolladores no necesitan realizar ninguna operación destructiva como la división o la migración en el ObjectSet en sí.
-
Aislamiento de recursos entre Set: al distribuir diferentes rangos de objetos en diferentes clústeres físicos, SetSlice logra un aislamiento de recursos de mayor dimensión. Combinado con la gestión de cuotas de ObjectSet, puede prevenir eficazmente que el crecimiento de datos de un ObjectSet "súper grande" comprima todos los recursos de un solo clúster, afectando así la estabilidad de otros ObjectSet, haciendo que el riesgo de capacidad general sea controlable. - Lógica unificada y compatibilidad: Para las empresas y los desarrolladores, independientemente de cuántos Slice haya subyacentes, siempre se enfrentan a un Bucket de Agente lógicamente unificado. Todas las operaciones en buckets, ObjectSets y objetos permanecen sin cambios, logrando una transparencia total de la expansión física para las aplicaciones de nivel superior.
Set AccessPoint: Aísla el punto de acceso de cada usuario
El Bucket del Agente admite la apertura de puntos de acceso independientes (dominios independientes) para cada ObjectSet, y extiende capacidades diferenciadas de seguridad, aislamiento y aceleración en el punto de acceso. El sistema necesita admitir la programación de puntos de acceso independientes a nivel de mil millones y capacidades de configuración diferenciadas.
Dominio de acceso independiente {$apid}.tos-objectset-ap.volces.com: Protección de seguridad de dos niveles
-
Primer nivel Obscurity (ocultamiento): Subdominio independiente por usuario/ObjectSet, dispersión de alta entropía apid, probabilidad de colisión extremadamente baja, es imposible adivinar y enumerar exhaustivamente la entrada de un usuario específico desde el punto de vista del dominio de acceso;
-
Segundo nivel Containment (contención): Los desarrolladores de Agent usan sts para distribuir permisos de acceso a nivel de ObjectSet, incluso si sts se filtra, puede controlar su rango de acceso limitado a un período de validez limitado de un ObjectSet;
Sistema de programación heurística: Cálculo de la estrategia de programación de dominios a nivel de mil millones
-
Estrategia de acceso diferenciada por usuario/ObjectSet:tag
-
Múltiples usuarios/ObjectSets se dispersan automáticamente en diferentes entradas de red pública, y el número de usuarios afectados por una sola falla de entrada está controlado
-
Programación elástica en toda la región, la falla/sobrecarga de cualquier entrada única completa automáticamente el movimiento de empaquetado del tráfico
-
Usuarios de clase de distribución de aceleración de red pública, etiquetan la aceleración de transmisión de red pública y programan automáticamente la entrada de aceleración
-
Usuarios de clase de riesgo de red pública, etiquetan el riesgo y programan automáticamente la entrada de aislamiento de red pública, y reducen la cuota de ancho de banda de red pública
-
Usuarios de clase de dominio cruzado de red interna, etiquetan el dominio cruzado y programan automáticamente la ruta de aceleración de línea dedicada de red interna
-
Usuarios del acelerador local, etiquetan el acelerador y montan automáticamente el acelerador local

Desde el asistente de programación hasta el disco en la nube AI, las infinitas posibilidades del Bucket del Agente
El Bucket del Agente proporciona una solución completa para el Agente, y los escenarios de aplicación del diseño de ObjectSet van mucho más allá de esto. Se puede extender fácilmente a todas las aplicaciones que necesitan proporcionar servicios a una gran cantidad de usuarios finales:
-
Repositorio de código: En el pasado, cuando las empresas o los individuos alojaban código en la nube, a menudo necesitaban construir una capa de "sistema de inquilinos" sobre el almacenamiento de objetos para lograr el aislamiento de la cuenta y el control de permisos. Ahora, se puede asignar un ObjectSet exclusivo a cada desarrollador para recopilar de manera unificada el repositorio de código, los artefactos de construcción y las dependencias. Agent Skills también se adapta naturalmente a ObjectSet. La carga, descarga y distribución de Skills proporciona un aislamiento fuerte a través de ObjectSet, evitando la interferencia de vecinos durante el tiempo de ejecución del Agente.
-
Disco de red de álbumes de fotos empresariales: Los servicios tradicionales de álbumes de fotos o discos de red a menudo mezclan las fotos de todos los usuarios en el mismo bucket y distinguen a los usuarios por prefijos, lo que no solo es complejo de administrar, sino que también es propenso al "efecto vecino". Basado en ObjectSet, las fotos y videos de cada usuario se encuentran en sus respectivos Sets, y los picos de acceso no interfieren entre sí. También puede establecer límites de capacidad, políticas de respaldo y métodos de encriptación por usuario, realmente logrando que "todos tengan un álbum de fotos en la nube seguro y controlable".
-
Almacén de datos Hadoop: En el almacén de datos empresariales, diferentes líneas de negocio y diferentes bases de datos a menudo comparten recursos en el mismo almacenamiento subyacente. Al asignar cada base de datos a un ObjectSet, las empresas pueden implementar el aislamiento y el control de cuotas por base de datos sobre un almacenamiento unificado. En particular, ObjectSet proporciona una capa adicional de permisos en TOS, proporcionando aislamiento y control de permisos para las bases de datos y tablas almacenadas en TOS sin cambiar el Proton existente en TOS. - Plataforma de alojamiento de modelos: En escenarios de alojamiento de modelos grandes, cada modelo no solo es voluminoso, sino que también puede corresponder a diferentes versiones, pesos y configuraciones de inferencia. Crear un ObjectSet para cada modelo permite empaquetar y alojar los pesos del modelo, el Tokenizer, los archivos de configuración y los datos de evaluación relacionados en el mismo espacio. El equipo de operaciones puede establecer políticas de cifrado, políticas de copia de seguridad y control de ancho de banda diferenciados para diferentes modelos. Al mismo tiempo, a través de la capacidad de medición nativa, se pueden calcular los costos reales de uso de cada modelo, proporcionando una base para la facturación y la programación de recursos por dimensión de modelo. // This paragraph explains how ObjectSet can be used to manage large models with different versions and configurations, providing differentiated security and cost management.
-
Servicio de datos SaaS: Las plataformas de distribución de datos orientadas a un gran número de usuarios finales a menudo necesitan conectarse simultáneamente con muchos proveedores de datos, lo que requiere garantizar límites de datos claros para cada parte y evitar el riesgo de rendimiento de "un gran barril que arrastra a todos". Con la ayuda de Agent Bucket, cada proveedor de datos puede tener su propio ObjectSet, gestionando de forma unificada los datos originales y los resultados del procesamiento. A través de dominios y anchos de banda independientes, y cuotas de QPS, se pueden proporcionar garantías de servicio y limitación de velocidad diferenciadas para diferentes proveedores, logrando una infraestructura de distribución de datos de "una plataforma, múltiples proveedores, aislados entre sí y con colaboración controlable". // This paragraph explains how Agent Bucket and ObjectSet can be used to isolate and manage data from multiple providers in a data SaaS service, providing differentiated service guarantees and rate limiting.
Referencia:





