Um AgenticSpace é um espaço de trabalho isolado dentro de um AgenticFS na Alibaba Cloud (alibaba cloud) e alocado a um único usuário final do agente. Ele oferece suporte a cotas de capacidade, cotas de quantidade de arquivos, isolamento de acesso e isolamento de desempenho. Este tópico descreve como criar, modificar e excluir um AgenticSpace por meio do console ou do openapi (OpenAPI). Além disso, explica como montar um AgenticSpace em uma instância ECS ou em um Agent Sandbox.
Limitações
Você deve ter um sistema de arquivos AgenticFS. Atualmente, apenas contas na lista de permissões podem criar sistemas de arquivos AgenticFS. Para usar este recurso, envie um ticket.
Um único AgenticFS suporta até 1.000.000 de AgenticSpaces. Um único AgenticSpace suporta até 1 PiB de capacidade e 1 bilhão de arquivos.
Os caminhos não aceitam renomeação nem links simbólicos. Não há suporte para AgenticSpaces aninhados.
Há suporte apenas para NFS v3 no Linux. Não há suporte para SMB e Windows. Você pode montar um AgenticSpace em qualquer nó de computação Linux compatível com NFS v3, como uma instância ECS ou um Agent Sandbox do Container Compute Service (ACS).
Crie um AgenticSpace
Você pode criar um AgenticSpace usando o console ou o OpenAPI. Ao criar um AgenticSpace, insira um caminho e especifique as cotas. A tabela a seguir descreve os principais parâmetros.
|
Parâmetro |
Obrigatório |
Descrição |
|
AgenticSpace Path (parâmetro da API: |
Sim |
O caminho absoluto do diretório no sistema de arquivos. O caminho deve começar e terminar com uma barra ( |
|
Size Limit (parâmetro da API: |
Sim |
O limite de capacidade para o AgenticSpace. Unidade: Byte. Intervalo válido: 10 GiB a 1.024.000 GiB. Incremento: 1 GiB. |
|
File Count Limit (parâmetro da API: |
Sim |
O limite de quantidade de arquivos para o AgenticSpace. Intervalo válido: 10.000 a 1.000.000.000 (1 bilhão). Incremento: 1. |
Método 1: Usar o console
Faça login no NAS console aliyun e acesse a aba AgenticSpace do sistema de arquivos AgenticFS de destino.
Clique em Create AgenticSpace, especifique os parâmetros conforme descrito na tabela acima e envie o formulário.
Método 2: Usar OpenAPI
Chame a operação CreateAgenticSpace via HTTP usando um formato json (ou JSON). O código a seguir fornece um exemplo de solicitação:
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Visualize e modifique cotas
Na lista AgenticSpace, visualize os seguintes campos: Directory Path, zona, Capacity Quota (GiB), Current Capacity (GiB), File Count Quota, Current File Count e hora de criação. Para ajustar as cotas de capacidade e de quantidade de arquivos, clique em Edit na coluna Actions do AgenticSpace de destino. Você também pode chamar a operação SetAgenticSpaceQuota.
A nova cota deve ser maior que o uso atual. Caso contrário, a modificação falhará.
Pontos de acesso
Um ponto de acesso é um ponto de entrada do protocolo NFS para o AgenticFS que fornece um destino de montagem, verificações de permissão e isolamento de tráfego. O AgenticFS oferece suporte a pontos de acesso em dois níveis de granularidade:
Nível do AgenticFS: O ponto de acesso tem como alvo o diretório raiz do AgenticFS e é destinado a cenários confiáveis, como operações de plataforma e gerenciamento em lote de AgenticSpaces. A montagem do diretório raiz do AgenticFS não é suportada na versão atual. Este nível está disponível apenas para operações de gerenciamento via OpenAPI.
Nível do AgenticSpace: O ponto de acesso tem como alvo um único AgenticSpace. Após a montagem, a visualização do cliente fica restrita a esse AgenticSpace. Este nível é o ponto de entrada padrão para iniciar sessões de agente.
Autorização de acesso RAM
Antes de montar, configure uma política de acesso para o usuário RAM ou função RAM associada às credenciais de montagem. A tabela a seguir descreve as ações necessárias e a restrição do ponto de acesso.
|
Elemento da política |
Configuração |
Descrição |
|
|
|
Permite montar e ler dados. Conceda esta ação tanto para acesso de somente leitura quanto para leitura e gravação. |
|
|
|
Permite gravar dados. Conceda esta ação junto com |
|
|
|
Permite acesso como usuário root. Conceda esta ação apenas quando necessário. Esta ação não substitui a permissão de gravação. |
|
|
|
Restringe o acesso ao ponto de acesso especificado. Especifique o ARN do ponto de acesso, por exemplo, |
Selecione uma política com base nos seus requisitos de acesso e substitua <access-point-ARN> pelo ARN do ponto de acesso do AgenticSpace de destino.
Política de somente leitura
Permite montar e ler dados sem acesso de gravação.
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Política de leitura e gravação
Permite montar, ler e gravar dados.
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Para acessar o sistema de arquivos como usuário root, atualize o array Action da política selecionada para incluir nas:ClientRootAccess. Para gravar dados como usuário root, conceda nas:ClientMount, nas:ClientWrite e nas:ClientRootAccess.
Após criar a política, anexe-a ao usuário RAM ou função RAM associada às credenciais de montagem.
Use funções RAM e pontos de acesso separados para diferentes aplicações de agente e usuários finais, a fim de evitar acesso não autorizado a outros AgenticSpaces.
Montar um AgenticSpace
Obtenha o destino de montagem na lista do AgenticSpace.
-
Na sua instância ECS (Linux), instale o cliente NFS (usando yum ou apt-get):
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspace -
Execute o comando de montagem e verifique o resultado usando o comando
df -h:kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspace
Na versão atual, apenas AgenticSpaces podem ser montados. Não há suporte para montar o diretório raiz do AgenticFS.
Montar um AgenticSpace
Um AgenticSpace pode ser montado em dois cenários típicos: montagem direta em uma instância ECS usando o cliente ALINAS, ou montagem como um volume CSI em um cluster ACS usando um Agent Sandbox (SandboxClaim). Ambos os cenários exigem a autorização RAM descrita na seção Pontos de acesso. O nó de computação também deve estar na mesma VPC do ponto de acesso do AgenticFS.
Nota: Na versão atual, apenas AgenticSpaces podem ser montados. Não há suporte para montar o diretório raiz do AgenticFS.
Cenário 1: Montar em uma instância ECS
Obtenha o destino de montagem na lista do AgenticSpace. O destino de montagem é o nome de domínio NFS para o ponto de acesso do AgenticSpace. Quando montado, sua visualização fica restrita a esse AgenticSpace.
-
Na sua instância ECS (Linux), instale o cliente NFS (usando yum ou apt-get):
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspace -
Confirme que o usuário RAM para a montagem tem as permissões de acesso necessárias e, em seguida, configure as credenciais accesskey (AccessKeyID e AccessKeySecret) do usuário para autenticação do ponto de acesso. Para acesso de gravação, use a política de leitura e gravação.
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspace -
Execute o seguinte comando de montagem:
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspaceApós a montagem, execute
df -h### Cenário 2: Montagem em um Agent Sandbox via CSI Este cenário se aplica a instâncias de agente em contêineres que são iniciadas em um cluster ACS usando um Agent Sandbox (SandboxSet/SandboxClaim). O AgenticSpace é montado como um espaço de trabalho persistente no contêiner do sandbox. Pré-requisitos Etapa 1: Criar um Secret e um PersistentVolume (PV) Armazene o AK/SK do usuário RAM em um Secret e crie um PersistentVolume (PV) que aponte para o ponto de acesso do AgenticSpace: Aplique a configuração e, em seguida, executekubectl get pvpara confirmar se o status do PV éAvailable. Etapa 2: Montar usando um SandboxClaim No SandboxClaim, referencie o PV criado na etapa anterior usandodynamicVolumesMounte especifique o caminho de montagem no contêiner: Etapa 3: Verifique a montagem Encontre o Pod que corresponde ao SandboxClaim e acesse o contêiner para verificar o caminho de montagem: para verificar a montagem. Em seguida, verifique o acesso de leitura como o usuário que executa a aplicação. Para acesso de leitura e gravação, crie um arquivo temporário em um diretório onde o usuário tenha permissão de gravação para verificar o acesso de gravação.Um cluster ACS ativo está na mesma VPC que o ponto de acesso do AgenticFS.
Você instalou o componente
ack-agent-sandbox-controllerno cluster ACS e configurou o warm pool do sandbox usando um SandboxSet. Para obter mais informações, consulte a documentação do Container Service sobre como criar um Agent Sandbox.O usuário do RAM para montagem está autorizado de acordo com a política de exemplo na seção Pontos de acesso.
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspacekubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspacekubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim kubectl -n default exec -it <sandbox-pod-name> -- sh df -h | grep workspace
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Aplique a configuração e execute kubectl get pv para confirmar que o status do PV é Available.
Etapa 2: Montar usando um SandboxClaim
No SandboxClaim, referencie o PV criado na etapa anterior usando dynamicVolumesMount e especifique o caminho de montagem no contêiner:
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Etapa 3: Verifique a montagem
Encontre o Pod que corresponde ao SandboxClaim e entre no contêiner para verificar o caminho de montagem:
kubectl get sandbox -n default -l agents.kruise.io/claim-name=code-interpreter-claim
kubectl -n default exec -it <sandbox-pod-name> -- sh
df -h | grep workspace
Exclua um AgenticSpace
Antes de excluir um AgenticSpace, desmonte todos os seus pontos de acesso e faça backup dos seus dados. Esta operação é irreversível.
Para excluir um AgenticSpace, clique em Delete na coluna Actions desse espaço na lista de gerenciamento, ou chame a operação DeleteAgenticSpace. Após a exclusão de um AgenticSpace, você pode criar um novo no mesmo caminho.
FAQ
Por que recebo um erro de "acesso negado" ao montar?
Certifique-se de que a instância ECS e o AgenticFS estejam na mesma VPC.
Por que não consigo gravar arquivos após a montagem ser bem-sucedida?
Verifique se o usuário RAM ou a função RAM associada às credenciais de montagem possui as permissões nas:ClientMount e nas:ClientWrite. A permissão nas:ClientMount sozinha permite montar e ler dados, mas não gravar dados.
Confirme também se nas:AccessPointArn na política corresponde ao ponto de acesso montado e se o usuário da aplicação tem permissão de gravação no diretório de destino. Para acessar o sistema de arquivos como usuário root, conceda também nas:ClientRootAccess.
Por que recebo um erro de "sem espaço" ao gravar dados?
Este erro ocorre quando você atinge o limite da cota de capacidade ou de quantidade de arquivos. Para resolver isso, aumente a cota ou exclua arquivos no AgenticSpace para liberar espaço.
Posso migrar um AgenticSpace entre diferentes sistemas de arquivos AgenticFS?
Atualmente, isso não é suportado. Você deve criar um novo AgenticSpace e copiar os dados na camada da aplicação.
Posso usar SMB ou Windows para acessar um AgenticSpace?
O AgenticFS atualmente suporta apenas o protocolo NFS v3, tls e clientes Linux.