Agent Bucket: Balde de Armazenamento Nativo para Agentes em Escala de Trilhões
2/16/2026
19 min read
# Agent Bucket: Balde de Armazenamento Nativo para Agentes em Escala de Trilhões
Com o surgimento de Agentes de IA como cogumelos após a chuva, os desenvolvedores estão construindo aplicativos inteligentes e imaginativos em uma velocidade sem precedentes. De assistentes de programação que ajudam você a escrever código a ferramentas de criação que geram um filme a partir de uma única frase, até assistentes inteligentes pessoais sempre à disposição, os Agentes estão remodelando a maneira como interagimos com o mundo digital. Por trás dessa onda, um consenso se torna cada vez mais claro: com a ajuda da arquitetura Serverless (como Lambda), modelos de linguagem grandes (LLM) e armazenamento em nuvem (como S3, TOS), combinados com Vibe Coding, qualquer pessoa pode construir rapidamente seu próprio Agente de IA em 30 minutos.
De "funcional" a "útil", os desenvolvedores de Agentes ainda precisam superar desafios na transição de "brinquedos" para "aplicativos de nível de produção". À medida que os negócios se expandem para um grande número de usuários, os desenvolvedores precisam enfrentar um desafio extremamente complexo: como construir uma solução de armazenamento completa para um grande número de usuários finais no armazenamento de objetos? Para a maioria dos desenvolvedores, esta não é apenas uma barreira técnica, mas também uma lacuna que impede a distribuição em larga escala de Agentes. O Agent Bucket visa simplificar completamente o processo de construção de sistemas multi-tenant por meio de um design de armazenamento nativo de IA, fornecendo recursos de Agente mais amigáveis.
## Quando bilhões de usuários chegam, o armazenamento de objetos tradicional "não é suficiente"
Imagine que você desenvolveu um aplicativo AIGC de sucesso. Cada usuário irá gerar e armazenar um grande número de imagens, vídeos e arquivos temporários. Como desenvolvedor, você naturalmente escolherá serviços de armazenamento de objetos maduros e escaláveis, como S3 e TOS. Mas aqui está o problema: como gerenciar dados para um grande número de usuários?
O blog do S3 de 2022, "Partitioning and Isolating Multi-Tenant SaaS Data with Amazon S3", descreve duas maneiras: "usar buckets S3 separados para cada tenant" e "buckets S3 compartilhados isolados por prefixo":
- Criar um "bucket" separado para cada usuário: Isso é viável quando há poucos usuários, mas quando o número de usuários cresce para dezenas de milhares ou milhões, o número de buckets explodirá rapidamente, e os custos de gerenciamento e as limitações de recursos se tornarão insuportáveis. O S3 fornece uma cota total de 10.000 buckets por região, mas para os recursos de IA populares, 10.000 ainda não são suficientes.

- Use "prefixos" para distinguir usuários no mesmo bucket: Esta se tornou a solução principal. Por exemplo, os arquivos do usuário A começam com user-a/, e os do usuário B começam com user-b/, como gerenciar arquivos com pastas em um computador. No entanto, o armazenamento de objetos não tem pastas nativas. Esta solução distingue multi-tenants por meio de "prefixos comuns" em um sistema de armazenamento "K-V".

Esta solução baseada em "bucket" ou "prefixo" tem sido amplamente adotada nos últimos dez anos. Mas existem os seguintes problemas:
- Isolamento multi-tenant: Os dados de todos os usuários são misturados no mesmo bucket. O acesso anormal de alta frequência de um usuário pode afetar todos os outros usuários, resultando em um "efeito vizinho". O isolamento de desempenho e o isolamento de falhas são impossíveis.
- Controle de permissões: Políticas de permissão complexas (IAM Policy) são difíceis de manter e é fácil cometer erros de configuração, resultando em acesso acidental aos dados do usuário, especialmente quando é necessário interagir com outros serviços de nuvem, o risco é maior.
- Clareza de custos: É difícil saber com precisão quanto espaço de armazenamento cada usuário consumiu e quantas taxas de tráfego foram geradas. Quando você deseja cobrar dos usuários pagantes com base no uso, o faturamento e a medição se tornam uma bagunça.Por que essas necessidades aparentemente básicas são implementadas de forma um tanto "pesada" pelos desenvolvedores de Agent no armazenamento de objetos? Uma análise aprofundada revela que, na arquitetura nativa da nuvem atual, existe um enorme vácuo entre o "armazenamento de objetos" (S3/TOS) e o "sistema de arquivos" tradicional. O armazenamento de objetos (S3/TOS) é essencialmente "horizontalizado", projetado originalmente para o armazenamento simples de grandes quantidades de dados, como um enorme armazém. Embora a capacidade seja quase ilimitada, a estrutura lógica é extremamente simples. Ele carece de gerenciamento de diretórios avançado nativo, controle de metadados refinado e percepção real de tenants. Quando os desenvolvedores tentam simular um sistema de arquivos multi-tenant "tridimensional" no S3 "horizontal", codificando prefixos, estamos, na verdade, usando um "armazenamento KV estático" para suportar um modo de acesso a arquivos de aplicativos Agent com "semântica de diretório e isolamento forte". Ou seja, o Agent precisa consumir tokens adicionais para gerenciar arquivos e controlar a resolução de permissões e isolamento multi-tenant. Esses tokens adicionais consumidos indicam que o serviço de armazenamento simples definido pelo S3 não é simples o suficiente para o Agent.
O blog do S3 de 2025, Design patterns for multi-tenant access control on Amazon S3, explica ainda mais o S3 Access Point. Isso significa que vários pontos de acesso de rede virtual podem ser criados e uma política de ponto de acesso personalizada pode ser configurada para cada ponto de acesso, fornecendo algumas soluções para cenários multi-tenant no nível de agendamento de rede.
## Agent Wonderland
Um desenvolvedor de Agent ideal pode construir um Agent totalmente serverless com base em "Agent SDK + armazenamento + serviço MaaS" ao desenvolver um AI Agent:
- O Agent pode ser executado de forma totalmente serverless
- A capacidade do produto existente pode ser combinada para construir um Agent por meio do Vibe Coding
- Apenas o script python do "ADK" precisa ser mantido
- O armazenamento usa armazenamento de objetos
- A capacidade de IA usa Doubao
- Teoricamente, não há ECS ou outros produtos do tipo instância
Ao mesmo tempo, o armazenamento precisa fornecer os seguintes recursos:
- O Agent pode ter um armazenamento com semântica de objeto (salvar arquivos), fornecer capacidade de acesso multi-tenant, começando com milhões e escalável para bilhões
- O Agent pode fornecer espaço independente para cada usuário (entre vários negócios, os negócios ou uids podem ter o mesmo nome)
- O Agent pode configurar diretamente a largura de banda de cada usuário e configurar o limite superior do tamanho total do objeto do usuário
- O Agent pode faturar, monitorar e observar de acordo com o usuário
- O Agent pode configurar políticas de acesso para os arquivos de cada usuário
## Agent Bucket: injetando genes "multi-tenant nativos" no AI Agent
Para resolver fundamentalmente esse problema, propomos um novo paradigma de armazenamento de objetos - Agent Bucket. Sua principal inovação é a introdução de uma nova camada de recurso nativo entre o "bucket" e o "objeto" tradicionais: a coleção de objetos.
A ideia central desse design é extremamente simples: combine um ObjectSet exclusivo para cada um de seus usuários finais. Você pode pensar no ObjectSet como um "cofre de dados" ou "espaço pessoal na nuvem" criado para cada usuário. Ele pertence logicamente ao seu Bucket (desenvolvedor), mas, física e gerencialmente, possui sua própria "personalidade" e "ciclo de vida" independentes.Agent Bucket Cada bucket suporta 100 milhões de ObjectSets, o que significa que você pode atender com tranquilidade centenas de milhões de usuários finais, como se cada usuário final "vivesse" em seu próprio espaço de armazenamento independente, sem precisar se preocupar com o gerenciamento de armazenamento multi-inquilino.
## Design do ObjectSet – Capacidades amigáveis ao Agent
No Agent Bucket, o ObjectSet não é apenas uma camada adicional, mas também transforma as necessidades mais complexas em cenários multi-inquilino em capacidades nativas prontas para uso. Quando a propriedade dos dados é claramente definida na camada ObjectSet, uma série de capacidades que antes eram difíceis de implementar se tornam naturais.
- Isolamento nativo: No nível do ObjectSet, você pode definir QPS, limites de largura de banda e cotas de capacidade independentes para cada usuário. A experiência dos usuários pagantes pode ser garantida, e o comportamento anormal dos usuários gratuitos não afetará os outros. Este é um verdadeiro isolamento de domínio de falha, para que os "vizinhos" não interfiram uns nos outros.
- Permissões nativas: Cada ObjectSet pode ter um domínio independente. Isso significa que você pode dar ao usuário A um endereço de acesso exclusivo user-a.yourapp.com, em vez de expor o domínio de todo o bucket de armazenamento. Mais inteligentemente, o design de "duas fechaduras": a primeira fechadura é uma credencial de acesso temporária (STS) emitida pelo provedor de serviços de nuvem, que controla as permissões de acesso na camada de aplicação; a segunda fechadura é o domínio independente do ObjectSet, que bloqueia as solicitações de acesso no próprio espaço de dados do usuário a partir da camada de rede. Isso aumenta muito a segurança dos dados.
- Monitoramento nativo: No painel de monitoramento, você não pode mais ver apenas os dados gerais de todo o bucket. Você pode decompor os gráficos de monitoramento por ObjectSet, obtendo uma visão clara de qual usuário final está realizando um grande número de acessos, para tomar decisões precisas de operação e otimização.
- Capacidades nativas descentralizadas: As políticas que antes só podiam ser definidas no nível do bucket agora podem ser descentralizadas para cada usuário. Você pode definir diferentes ciclos de vida de dados para usuários de diferentes níveis ou usar diferentes chaves de criptografia para cada ObjectSet, implementando um gerenciamento de dados mais refinado e seguro.
- Medição nativa: Quer saber quanto espaço de armazenamento cada usuário está usando? Quer ratear com precisão os custos de armazenamento para cada usuário? Agora ficou fácil. O Agent Bucket irá automaticamente estatizar a capacidade e o uso de cada ObjectSet, tornando seu faturamento e rateio claros e transparentes.
- Faturamento nativo: Os desenvolvedores podem facilmente implementar o rateio de custos, repassando com precisão os custos gerados pelo armazenamento para cada usuário final. Por exemplo, cobrar de forma diferenciada com base na proporção dos custos reais gerados pelos usuários A, B e C, fornecendo suporte de dados para a comercialização do Agent.
- Limite de capacidade nativo: Para controlar os custos operacionais do Agent, você pode definir uma Quota (limite de capacidade) para cada ObjectSet. Uma vez atingido o valor predefinido, o sistema irá restringir o usuário de gerar novos arquivos, evitando o uso indevido de recursos em cenários multi-inquilino desde a raiz.
- Inteligência nativa: O Agent Bucket permite que o Agent saia da limitação do simples "armazenamento e acesso" de arquivos tradicionais, dando ao Object inteligência nativa, suportando de forma mais eficiente o desenvolvimento one-stop do Agent. O ObjectSet pode ativar o índice inteligente com um clique, fornecendo ao Agent capacidades de perguntas e respostas multimodais amigáveis nativas, substituindo as operações mecânicas tradicionais de Object CRUD; ele ainda suporta a ativação do modo Agentself com um clique, conectando vetores, conhecimento, modelos e prompts, expondo diretamente funções de sub-Agent contextualizadas, permitindo que os desenvolvedores de Agent de nível superior se concentrem na criação de fluxos de trabalho de negócios principais, liberando totalmente a eficiência da monetização inteligente.
## Desafios técnicos trazidos pela explosão da escala de aplicações
Ao introduzir o conceito nativo de ObjectSet, o Agent Bucket fornece aos desenvolvedores de aplicações uma maneira elegante e eficiente de gerenciar os dados de centenas de milhões de usuários finais. Os ativos digitais de cada usuário são armazenados com segurança em seu ObjectSet exclusivo, implementando naturalmente isolamento, faturamento e gerenciamento de cotas.
Com a rápida expansão da escala da aplicação, a complexidade do gerenciamento, a dificuldade de isolamento e os gargalos físicos de um grande número de Sets se tornam evidentes:
- Problema de gerenciamento hierárquico de um grande número de usuários: Ao gerenciar de forma diferenciada um grande número de recursos e características de usuários de diferentes níveis, a aplicação precisa projetar e implementar seus próprios metadados de classificação de usuários e associar interruptores de características de armazenamento de objetos. Ajudar os desenvolvedores a gerenciar elegantemente a classificação de usuários com base no conceito nativo de Set é importante para acelerar a implementação da aplicação.- Gargalo de capacidade de cluster único: Embora o Agent Bucket possa ser logicamente expandido indefinidamente, seus metadados são armazenados por padrão em um único cluster físico. Quando o número total de objetos no bucket atinge centenas de bilhões ou até trilhões, a capacidade física de um único cluster se torna um limite intransponível.
- Problema de compartilhamento de ponto de acesso: A diversidade de negócios do Agent e o grande número de usuários trazem maiores riscos de segurança e raio de explosão ao próprio ponto de acesso. Como realizar o agendamento dinâmico com base nas diferenças entre um grande número de negócios e usuários, e realizar segurança, isolamento e aceleração diferenciados, torna-se um desafio.
## Set Tagging: Gerenciamento de Nível de Usuário com Tagging
ObjectSet fornece um método de gerenciamento de tagging nativo, permitindo que os desenvolvedores do Agent usem facilmente a capacidade de set tagging para concluir o gerenciamento de nível de usuário. Os desenvolvedores podem corresponder cada nível de usuário definido a uma tag e habilitar diferentes cotas e recursos para cada tag. Todos os ObjectSets marcados com esta tag aplicarão as cotas e recursos correspondentes. Tomando os três níveis V1, V2 e V3 como exemplos:
- V1: Nível padrão, usuários gratuitos, a tag padrão de todos os ObjectSets, pode ser configurado para armazenar no máximo 1GiB de dados, a distribuição pública não pode exceder a largura de banda de 100mbps e a velocidade de download de fluxo único é controlada para 1mbps;
- V2: Membros pagos de nível básico, configurados para armazenar no máximo 10GiB de dados, a distribuição pública não pode exceder a largura de banda de 10gbps e a velocidade de download de fluxo único é controlada para 10mbps;
- V3: Membros pagos de nível avançado, além de fornecer maior armazenamento e cotas de distribuição pública, também suporta a configuração para habilitar aceleração de rede fraca pública adicional e capacidade de aceleração de mídia de alto desempenho;
Os desenvolvedores do Agent podem usar de forma flexível o tagging V1/V2/V3 para gerenciar os recursos e recursos de valor agregado que esses usuários podem usar, de acordo com os diferentes ciclos de desenvolvimento de diferentes usuários.
## Set Slice: Isolamento Nativo de Dados de Usuários Massivos
Quando o número de Sets em um Agent Bucket atinge centenas de milhões e o número de objetos atinge centenas de bilhões ou trilhões, o fato de que "todos os metadados de um único Bucket estão concentrados em um cluster KV" traz riscos duplos de capacidade e desempenho.
Set Slice fornece uma ideia de "não dividir logicamente, mas dividir fisicamente":
- Do ponto de vista lógico, você ainda gerencia apenas um Agent Bucket.
- Fisicamente, de acordo com o Set e o intervalo de nomes de objetos dentro do Set, os metadados são divididos em vários Slices (fatias), e cada Slice pode ser armazenado em diferentes clusters. Vários Sets são naturalmente isolados e um único Set é expandido horizontalmente.
Set Slice é uma extensão e garantia adicional da capacidade ObjectSet. Ele resolve o problema de expansão infinita da capacidade física na camada inferior e, ao mesmo tempo, garante a estabilidade e consistência do modelo de gerenciamento ObjectSet da camada superior.
- Limite de gerenciamento estável: Mesmo que os dados de um Agent Bucket abranjam vários clusters físicos, ObjectSet ainda é a única unidade básica de permissões, cotas, cobrança e monitoramento. As políticas configuradas pelos desenvolvedores para ObjectSet (como controle de acesso, limite de capacidade) entrarão em vigor automaticamente em todos os Slices relacionados, sem se preocupar com a distribuição dos dados subjacentes.
- Um único Set pode ser expandido linearmente: Quando a quantidade de dados de um determinado ObjectSet cresce rapidamente, seus dados são naturalmente distribuídos em vários Slices. Com a expansão do cluster geral, a capacidade do ObjectSet também cresce de forma contínua e linear, e os desenvolvedores não precisam realizar nenhuma operação destrutiva, como divisão ou migração do próprio ObjectSet.
- Isolamento de recursos entre Sets: Ao distribuir objetos de diferentes intervalos em diferentes clusters físicos, SetSlice implementa um isolamento de recursos de dimensão superior. Combinado com o gerenciamento de cotas do ObjectSet, ele pode efetivamente evitar que o crescimento de dados de um determinado ObjectSet "super grande" comprima todos os recursos de um único cluster, afetando assim a estabilidade de outros ObjectSets e tornando o risco de capacidade geral controlável. - Lógica unificada e compatibilidade: Para empresas e desenvolvedores, independentemente de quantos Slices existam na camada inferior, eles sempre enfrentarão um Agente Bucket logicamente unificado. Todas as operações em buckets, ObjectSets e objetos permanecem inalteradas, alcançando total transparência da expansão física para as aplicações da camada superior.
## Set AccessPoint: Isolar o ponto de acesso de cada usuário
O Agente Bucket suporta a abertura de pontos de acesso independentes (domínios independentes) para cada ObjectSet e, nos pontos de acesso, expande recursos diferenciados de segurança, isolamento e aceleração. Para isso, o sistema precisa suportar agendamento de pontos de acesso independentes em escala de bilhões e recursos de configuração diferenciados.
Domínio de acesso independente {$apid}.tos-objectset-ap.volces.com: Proteção de segurança de dois níveis
- Primeiro nível Obscurity (Ocultamento): Subdomínio independente By User/ObjectSet, hash de alta entropia apid, probabilidade de colisão extremamente baixa, impossível adivinhar e enumerar a entrada de um usuário específico a partir do domínio de acesso;
- Segundo nível Containment (Contenção): Os desenvolvedores do Agente usam sts para distribuir permissões de acesso em nível de ObjectSet, mesmo que o sts vaze, ele pode controlar seu escopo de acesso limitado a um ObjectSet dentro de um período de validade limitado;
Sistema de agendamento heurístico: Cálculo de estratégia de agendamento de domínio em escala de bilhões
- Estratégia de acesso diferenciada By user/ObjectSet:tag
- Vários user/ObjectSet são automaticamente dispersos em diferentes entradas de rede pública, o número de usuários afetados por falhas de entrada única é controlado
- Agendamento elástico em toda a região, falha/sobrecarga de entrada única arbitrária completa automaticamente o movimento de contêineres de tráfego
- Usuário de distribuição de aceleração de rede pública, marcação de tag de aceleração de transmissão de rede pública, agendamento automático de entrada de aceleração
- Usuário de risco de rede pública, marcação de tag de risco, agendamento automático de entrada de isolamento de rede pública e redução da cota de largura de banda de rede pública
- Usuário de classe de domínio cruzado de rede interna, marcação de tag de domínio cruzado, agendamento automático de caminho de aceleração de linha dedicada de rede interna
- Usuário do acelerador local, marcação de tag do acelerador, montagem automática do acelerador local

## Do assistente de programação ao disco em nuvem AI, as infinitas possibilidades do Agente Bucket
O Agente Bucket fornece uma solução completa para o Agente, e os cenários de aplicação do design do ObjectSet vão muito além disso, ele pode ser facilmente expandido para todas as aplicações que precisam fornecer serviços para um grande número de usuários finais:
- Repositório de código: No passado, quando empresas ou indivíduos hospedavam código na nuvem, muitas vezes precisavam construir uma camada de "sistema de locatário" sobre o armazenamento de objetos para obter isolamento de conta e controle de permissão. Agora, um ObjectSet exclusivo pode ser alocado para cada desenvolvedor para coletar repositórios de código, artefatos de construção e dependências. O Agent Skills também se adapta naturalmente ao ObjectSet. O upload, download e distribuição do Skills são fornecidos pelo ObjectSet com forte isolamento para evitar perturbações de vizinhos durante o tempo de execução do Agente.
- Disco de rede de álbuns de fotos corporativos: Os serviços tradicionais de álbuns de fotos ou discos de rede geralmente misturam as fotos de todos os usuários no mesmo bucket e distinguem os usuários por meio de prefixos, o que não apenas torna o gerenciamento complexo, mas também é propenso ao "efeito vizinho". Com base no ObjectSet, as fotos e vídeos de cada usuário ficam em seus respectivos Sets, e os picos de acesso não interferem uns nos outros. Além disso, o limite de capacidade, a política de backup e o método de criptografia podem ser definidos por usuário, alcançando verdadeiramente "cada pessoa tem um álbum de fotos em nuvem seguro e controlável".
- Data warehouse Hadoop: No data warehouse corporativo, diferentes linhas de negócios e diferentes bancos de dados geralmente compartilham recursos no mesmo armazenamento subjacente. Ao mapear cada banco de dados para um ObjectSet, as empresas podem implementar isolamento e controle de cota por banco de dados em um armazenamento unificado. Em particular, o ObjectSet fornece uma camada extra de permissão no TOS, fornecendo isolamento e controle de permissão para bancos de dados e tabelas armazenados no TOS sem alterar o Proton existente no TOS. - Plataforma de Hospedagem de Modelos: Em cenários de hospedagem de grandes modelos, cada modelo não é apenas volumoso, mas também pode corresponder a diferentes versões, pesos e configurações de inferência. Criar um ObjectSet para cada modelo permite empacotar e hospedar pesos do modelo, Tokenizer, arquivos de configuração e dados de avaliação relacionados no mesmo espaço. No lado da operação e manutenção, podem ser definidas políticas de criptografia diferenciadas, políticas de backup e controle de largura de banda para diferentes modelos. Ao mesmo tempo, a capacidade de medição nativa pode ser usada para calcular os custos reais de uso de cada modelo, fornecendo uma base para faturamento e agendamento de recursos na dimensão do modelo.
- Serviço de Dados SaaS: Uma plataforma de distribuição de dados voltada para um grande número de usuários finais geralmente precisa se conectar a muitos provedores de dados simultaneamente, garantindo que os limites de dados de cada parte sejam claros e evitando o risco de desempenho de "um grande balde arrastando todos para baixo". Com o Agent Bucket, cada provedor de dados pode ter seu próprio ObjectSet, gerenciando dados brutos e resultados de processamento de forma unificada. Em seguida, por meio de domínios e larguras de banda independentes, cotas de QPS, diferentes provedores podem ter garantia de serviço diferenciada e limitação de taxa, realizando uma infraestrutura de distribuição de dados de "uma plataforma, vários provedores, isolados e colaborativos controláveis".
Referência:
- https://aws.amazon.com/cn/blogs/apn/partitioning-and-isolating-multi-tenant-saas-data-with-amazon-s3/
- https://aws.amazon.com/cn/blogs/storage/design-patterns-for-multi-tenant-access-control-on-amazon-s3/
O blog do S3 de 2025, Design patterns for multi-tenant access control on Amazon S3, explica ainda mais o S3 Access Point. Isso significa que vários pontos de acesso de rede virtual podem ser criados e uma política de ponto de acesso personalizada pode ser configurada para cada ponto de acesso, fornecendo algumas soluções para cenários multi-tenant no nível de agendamento de rede.
## Agent Wonderland
Um desenvolvedor de Agent ideal pode construir um Agent totalmente serverless com base em "Agent SDK + armazenamento + serviço MaaS" ao desenvolver um AI Agent:
- O Agent pode ser executado de forma totalmente serverless
- A capacidade do produto existente pode ser combinada para construir um Agent por meio do Vibe Coding
- Apenas o script python do "ADK" precisa ser mantido
- O armazenamento usa armazenamento de objetos
- A capacidade de IA usa Doubao
- Teoricamente, não há ECS ou outros produtos do tipo instância
Ao mesmo tempo, o armazenamento precisa fornecer os seguintes recursos:
- O Agent pode ter um armazenamento com semântica de objeto (salvar arquivos), fornecer capacidade de acesso multi-tenant, começando com milhões e escalável para bilhões
- O Agent pode fornecer espaço independente para cada usuário (entre vários negócios, os negócios ou uids podem ter o mesmo nome)
- O Agent pode configurar diretamente a largura de banda de cada usuário e configurar o limite superior do tamanho total do objeto do usuário
- O Agent pode faturar, monitorar e observar de acordo com o usuário
- O Agent pode configurar políticas de acesso para os arquivos de cada usuário
## Agent Bucket: injetando genes "multi-tenant nativos" no AI Agent
Para resolver fundamentalmente esse problema, propomos um novo paradigma de armazenamento de objetos - Agent Bucket. Sua principal inovação é a introdução de uma nova camada de recurso nativo entre o "bucket" e o "objeto" tradicionais: a coleção de objetos.
A ideia central desse design é extremamente simples: combine um ObjectSet exclusivo para cada um de seus usuários finais. Você pode pensar no ObjectSet como um "cofre de dados" ou "espaço pessoal na nuvem" criado para cada usuário. Ele pertence logicamente ao seu Bucket (desenvolvedor), mas, física e gerencialmente, possui sua própria "personalidade" e "ciclo de vida" independentes.Agent Bucket Cada bucket suporta 100 milhões de ObjectSets, o que significa que você pode atender com tranquilidade centenas de milhões de usuários finais, como se cada usuário final "vivesse" em seu próprio espaço de armazenamento independente, sem precisar se preocupar com o gerenciamento de armazenamento multi-inquilino.
## Design do ObjectSet – Capacidades amigáveis ao Agent
No Agent Bucket, o ObjectSet não é apenas uma camada adicional, mas também transforma as necessidades mais complexas em cenários multi-inquilino em capacidades nativas prontas para uso. Quando a propriedade dos dados é claramente definida na camada ObjectSet, uma série de capacidades que antes eram difíceis de implementar se tornam naturais.
- Isolamento nativo: No nível do ObjectSet, você pode definir QPS, limites de largura de banda e cotas de capacidade independentes para cada usuário. A experiência dos usuários pagantes pode ser garantida, e o comportamento anormal dos usuários gratuitos não afetará os outros. Este é um verdadeiro isolamento de domínio de falha, para que os "vizinhos" não interfiram uns nos outros.
- Permissões nativas: Cada ObjectSet pode ter um domínio independente. Isso significa que você pode dar ao usuário A um endereço de acesso exclusivo user-a.yourapp.com, em vez de expor o domínio de todo o bucket de armazenamento. Mais inteligentemente, o design de "duas fechaduras": a primeira fechadura é uma credencial de acesso temporária (STS) emitida pelo provedor de serviços de nuvem, que controla as permissões de acesso na camada de aplicação; a segunda fechadura é o domínio independente do ObjectSet, que bloqueia as solicitações de acesso no próprio espaço de dados do usuário a partir da camada de rede. Isso aumenta muito a segurança dos dados.
- Monitoramento nativo: No painel de monitoramento, você não pode mais ver apenas os dados gerais de todo o bucket. Você pode decompor os gráficos de monitoramento por ObjectSet, obtendo uma visão clara de qual usuário final está realizando um grande número de acessos, para tomar decisões precisas de operação e otimização.
- Capacidades nativas descentralizadas: As políticas que antes só podiam ser definidas no nível do bucket agora podem ser descentralizadas para cada usuário. Você pode definir diferentes ciclos de vida de dados para usuários de diferentes níveis ou usar diferentes chaves de criptografia para cada ObjectSet, implementando um gerenciamento de dados mais refinado e seguro.
- Medição nativa: Quer saber quanto espaço de armazenamento cada usuário está usando? Quer ratear com precisão os custos de armazenamento para cada usuário? Agora ficou fácil. O Agent Bucket irá automaticamente estatizar a capacidade e o uso de cada ObjectSet, tornando seu faturamento e rateio claros e transparentes.
- Faturamento nativo: Os desenvolvedores podem facilmente implementar o rateio de custos, repassando com precisão os custos gerados pelo armazenamento para cada usuário final. Por exemplo, cobrar de forma diferenciada com base na proporção dos custos reais gerados pelos usuários A, B e C, fornecendo suporte de dados para a comercialização do Agent.
- Limite de capacidade nativo: Para controlar os custos operacionais do Agent, você pode definir uma Quota (limite de capacidade) para cada ObjectSet. Uma vez atingido o valor predefinido, o sistema irá restringir o usuário de gerar novos arquivos, evitando o uso indevido de recursos em cenários multi-inquilino desde a raiz.
- Inteligência nativa: O Agent Bucket permite que o Agent saia da limitação do simples "armazenamento e acesso" de arquivos tradicionais, dando ao Object inteligência nativa, suportando de forma mais eficiente o desenvolvimento one-stop do Agent. O ObjectSet pode ativar o índice inteligente com um clique, fornecendo ao Agent capacidades de perguntas e respostas multimodais amigáveis nativas, substituindo as operações mecânicas tradicionais de Object CRUD; ele ainda suporta a ativação do modo Agentself com um clique, conectando vetores, conhecimento, modelos e prompts, expondo diretamente funções de sub-Agent contextualizadas, permitindo que os desenvolvedores de Agent de nível superior se concentrem na criação de fluxos de trabalho de negócios principais, liberando totalmente a eficiência da monetização inteligente.
## Desafios técnicos trazidos pela explosão da escala de aplicações
Ao introduzir o conceito nativo de ObjectSet, o Agent Bucket fornece aos desenvolvedores de aplicações uma maneira elegante e eficiente de gerenciar os dados de centenas de milhões de usuários finais. Os ativos digitais de cada usuário são armazenados com segurança em seu ObjectSet exclusivo, implementando naturalmente isolamento, faturamento e gerenciamento de cotas.
Com a rápida expansão da escala da aplicação, a complexidade do gerenciamento, a dificuldade de isolamento e os gargalos físicos de um grande número de Sets se tornam evidentes:
- Problema de gerenciamento hierárquico de um grande número de usuários: Ao gerenciar de forma diferenciada um grande número de recursos e características de usuários de diferentes níveis, a aplicação precisa projetar e implementar seus próprios metadados de classificação de usuários e associar interruptores de características de armazenamento de objetos. Ajudar os desenvolvedores a gerenciar elegantemente a classificação de usuários com base no conceito nativo de Set é importante para acelerar a implementação da aplicação.- Gargalo de capacidade de cluster único: Embora o Agent Bucket possa ser logicamente expandido indefinidamente, seus metadados são armazenados por padrão em um único cluster físico. Quando o número total de objetos no bucket atinge centenas de bilhões ou até trilhões, a capacidade física de um único cluster se torna um limite intransponível.
- Problema de compartilhamento de ponto de acesso: A diversidade de negócios do Agent e o grande número de usuários trazem maiores riscos de segurança e raio de explosão ao próprio ponto de acesso. Como realizar o agendamento dinâmico com base nas diferenças entre um grande número de negócios e usuários, e realizar segurança, isolamento e aceleração diferenciados, torna-se um desafio.
## Set Tagging: Gerenciamento de Nível de Usuário com Tagging
ObjectSet fornece um método de gerenciamento de tagging nativo, permitindo que os desenvolvedores do Agent usem facilmente a capacidade de set tagging para concluir o gerenciamento de nível de usuário. Os desenvolvedores podem corresponder cada nível de usuário definido a uma tag e habilitar diferentes cotas e recursos para cada tag. Todos os ObjectSets marcados com esta tag aplicarão as cotas e recursos correspondentes. Tomando os três níveis V1, V2 e V3 como exemplos:
- V1: Nível padrão, usuários gratuitos, a tag padrão de todos os ObjectSets, pode ser configurado para armazenar no máximo 1GiB de dados, a distribuição pública não pode exceder a largura de banda de 100mbps e a velocidade de download de fluxo único é controlada para 1mbps;
- V2: Membros pagos de nível básico, configurados para armazenar no máximo 10GiB de dados, a distribuição pública não pode exceder a largura de banda de 10gbps e a velocidade de download de fluxo único é controlada para 10mbps;
- V3: Membros pagos de nível avançado, além de fornecer maior armazenamento e cotas de distribuição pública, também suporta a configuração para habilitar aceleração de rede fraca pública adicional e capacidade de aceleração de mídia de alto desempenho;
Os desenvolvedores do Agent podem usar de forma flexível o tagging V1/V2/V3 para gerenciar os recursos e recursos de valor agregado que esses usuários podem usar, de acordo com os diferentes ciclos de desenvolvimento de diferentes usuários.
## Set Slice: Isolamento Nativo de Dados de Usuários Massivos
Quando o número de Sets em um Agent Bucket atinge centenas de milhões e o número de objetos atinge centenas de bilhões ou trilhões, o fato de que "todos os metadados de um único Bucket estão concentrados em um cluster KV" traz riscos duplos de capacidade e desempenho.
Set Slice fornece uma ideia de "não dividir logicamente, mas dividir fisicamente":
- Do ponto de vista lógico, você ainda gerencia apenas um Agent Bucket.
- Fisicamente, de acordo com o Set e o intervalo de nomes de objetos dentro do Set, os metadados são divididos em vários Slices (fatias), e cada Slice pode ser armazenado em diferentes clusters. Vários Sets são naturalmente isolados e um único Set é expandido horizontalmente.
Set Slice é uma extensão e garantia adicional da capacidade ObjectSet. Ele resolve o problema de expansão infinita da capacidade física na camada inferior e, ao mesmo tempo, garante a estabilidade e consistência do modelo de gerenciamento ObjectSet da camada superior.
- Limite de gerenciamento estável: Mesmo que os dados de um Agent Bucket abranjam vários clusters físicos, ObjectSet ainda é a única unidade básica de permissões, cotas, cobrança e monitoramento. As políticas configuradas pelos desenvolvedores para ObjectSet (como controle de acesso, limite de capacidade) entrarão em vigor automaticamente em todos os Slices relacionados, sem se preocupar com a distribuição dos dados subjacentes.
- Um único Set pode ser expandido linearmente: Quando a quantidade de dados de um determinado ObjectSet cresce rapidamente, seus dados são naturalmente distribuídos em vários Slices. Com a expansão do cluster geral, a capacidade do ObjectSet também cresce de forma contínua e linear, e os desenvolvedores não precisam realizar nenhuma operação destrutiva, como divisão ou migração do próprio ObjectSet.
- Isolamento de recursos entre Sets: Ao distribuir objetos de diferentes intervalos em diferentes clusters físicos, SetSlice implementa um isolamento de recursos de dimensão superior. Combinado com o gerenciamento de cotas do ObjectSet, ele pode efetivamente evitar que o crescimento de dados de um determinado ObjectSet "super grande" comprima todos os recursos de um único cluster, afetando assim a estabilidade de outros ObjectSets e tornando o risco de capacidade geral controlável. - Lógica unificada e compatibilidade: Para empresas e desenvolvedores, independentemente de quantos Slices existam na camada inferior, eles sempre enfrentarão um Agente Bucket logicamente unificado. Todas as operações em buckets, ObjectSets e objetos permanecem inalteradas, alcançando total transparência da expansão física para as aplicações da camada superior.
## Set AccessPoint: Isolar o ponto de acesso de cada usuário
O Agente Bucket suporta a abertura de pontos de acesso independentes (domínios independentes) para cada ObjectSet e, nos pontos de acesso, expande recursos diferenciados de segurança, isolamento e aceleração. Para isso, o sistema precisa suportar agendamento de pontos de acesso independentes em escala de bilhões e recursos de configuração diferenciados.
Domínio de acesso independente {$apid}.tos-objectset-ap.volces.com: Proteção de segurança de dois níveis
- Primeiro nível Obscurity (Ocultamento): Subdomínio independente By User/ObjectSet, hash de alta entropia apid, probabilidade de colisão extremamente baixa, impossível adivinhar e enumerar a entrada de um usuário específico a partir do domínio de acesso;
- Segundo nível Containment (Contenção): Os desenvolvedores do Agente usam sts para distribuir permissões de acesso em nível de ObjectSet, mesmo que o sts vaze, ele pode controlar seu escopo de acesso limitado a um ObjectSet dentro de um período de validade limitado;
Sistema de agendamento heurístico: Cálculo de estratégia de agendamento de domínio em escala de bilhões
- Estratégia de acesso diferenciada By user/ObjectSet:tag
- Vários user/ObjectSet são automaticamente dispersos em diferentes entradas de rede pública, o número de usuários afetados por falhas de entrada única é controlado
- Agendamento elástico em toda a região, falha/sobrecarga de entrada única arbitrária completa automaticamente o movimento de contêineres de tráfego
- Usuário de distribuição de aceleração de rede pública, marcação de tag de aceleração de transmissão de rede pública, agendamento automático de entrada de aceleração
- Usuário de risco de rede pública, marcação de tag de risco, agendamento automático de entrada de isolamento de rede pública e redução da cota de largura de banda de rede pública
- Usuário de classe de domínio cruzado de rede interna, marcação de tag de domínio cruzado, agendamento automático de caminho de aceleração de linha dedicada de rede interna
- Usuário do acelerador local, marcação de tag do acelerador, montagem automática do acelerador local

## Do assistente de programação ao disco em nuvem AI, as infinitas possibilidades do Agente Bucket
O Agente Bucket fornece uma solução completa para o Agente, e os cenários de aplicação do design do ObjectSet vão muito além disso, ele pode ser facilmente expandido para todas as aplicações que precisam fornecer serviços para um grande número de usuários finais:
- Repositório de código: No passado, quando empresas ou indivíduos hospedavam código na nuvem, muitas vezes precisavam construir uma camada de "sistema de locatário" sobre o armazenamento de objetos para obter isolamento de conta e controle de permissão. Agora, um ObjectSet exclusivo pode ser alocado para cada desenvolvedor para coletar repositórios de código, artefatos de construção e dependências. O Agent Skills também se adapta naturalmente ao ObjectSet. O upload, download e distribuição do Skills são fornecidos pelo ObjectSet com forte isolamento para evitar perturbações de vizinhos durante o tempo de execução do Agente.
- Disco de rede de álbuns de fotos corporativos: Os serviços tradicionais de álbuns de fotos ou discos de rede geralmente misturam as fotos de todos os usuários no mesmo bucket e distinguem os usuários por meio de prefixos, o que não apenas torna o gerenciamento complexo, mas também é propenso ao "efeito vizinho". Com base no ObjectSet, as fotos e vídeos de cada usuário ficam em seus respectivos Sets, e os picos de acesso não interferem uns nos outros. Além disso, o limite de capacidade, a política de backup e o método de criptografia podem ser definidos por usuário, alcançando verdadeiramente "cada pessoa tem um álbum de fotos em nuvem seguro e controlável".
- Data warehouse Hadoop: No data warehouse corporativo, diferentes linhas de negócios e diferentes bancos de dados geralmente compartilham recursos no mesmo armazenamento subjacente. Ao mapear cada banco de dados para um ObjectSet, as empresas podem implementar isolamento e controle de cota por banco de dados em um armazenamento unificado. Em particular, o ObjectSet fornece uma camada extra de permissão no TOS, fornecendo isolamento e controle de permissão para bancos de dados e tabelas armazenados no TOS sem alterar o Proton existente no TOS. - Plataforma de Hospedagem de Modelos: Em cenários de hospedagem de grandes modelos, cada modelo não é apenas volumoso, mas também pode corresponder a diferentes versões, pesos e configurações de inferência. Criar um ObjectSet para cada modelo permite empacotar e hospedar pesos do modelo, Tokenizer, arquivos de configuração e dados de avaliação relacionados no mesmo espaço. No lado da operação e manutenção, podem ser definidas políticas de criptografia diferenciadas, políticas de backup e controle de largura de banda para diferentes modelos. Ao mesmo tempo, a capacidade de medição nativa pode ser usada para calcular os custos reais de uso de cada modelo, fornecendo uma base para faturamento e agendamento de recursos na dimensão do modelo.
- Serviço de Dados SaaS: Uma plataforma de distribuição de dados voltada para um grande número de usuários finais geralmente precisa se conectar a muitos provedores de dados simultaneamente, garantindo que os limites de dados de cada parte sejam claros e evitando o risco de desempenho de "um grande balde arrastando todos para baixo". Com o Agent Bucket, cada provedor de dados pode ter seu próprio ObjectSet, gerenciando dados brutos e resultados de processamento de forma unificada. Em seguida, por meio de domínios e larguras de banda independentes, cotas de QPS, diferentes provedores podem ter garantia de serviço diferenciada e limitação de taxa, realizando uma infraestrutura de distribuição de dados de "uma plataforma, vários provedores, isolados e colaborativos controláveis".
Referência:
- https://aws.amazon.com/cn/blogs/apn/partitioning-and-isolating-multi-tenant-saas-data-with-amazon-s3/
- https://aws.amazon.com/cn/blogs/storage/design-patterns-for-multi-tenant-access-control-on-amazon-s3/Published in Technology





