Introdução geral
O Arrakis é um ambiente de sandbox projetado para inteligências de IA para fornecer um ambiente seguro e personalizável. Desenvolvido por Abhishek Bhardwaj e hospedado no GitHub sob a licença AGPL v3, o Arrakis isola o código de IA e protege o host por meio da tecnologia MicroVM. Cada sandbox tem o Ubuntu integrado, inicia com seu próprio serviço de execução de código e servidor VNC, e oferece suporte a uma interface gráfica. A ferramenta fornece Python SDK e API REST para facilitar aos desenvolvedores o gerenciamento da sandbox. Ela também é compatível com snapshots e backtracking, permitindo que a IA reverta para um estado anterior no caso de um erro de IA. O Arrakis é ideal para desenvolvedores que precisam executar códigos com segurança ou testar processos de várias etapas.
Lista de funções
- isolamento seguroUse a tecnologia MicroVM para isolar o código de IA e proteger hosts e outras tarefas.
- Instantâneos e retrocessoSuporte para salvar o estado da sandbox e restaurá-lo, facilitando o teste de IA de tarefas em várias etapas.
- SDK do Python: Fornecido
py-arrakis
, sandbox de controle programável. - API REST: através de
arrakis-restserver
Fornecer interfaces para gerenciar a sandbox. - Interface gráfica do usuário (GUI) (computação)Cada sandbox tem um servidor VNC integrado e o Chrome com suporte a GUI.
- Configuração de redeConfiguração automática de rede com suporte para encaminhamento de porta e acesso SSH.
- Ambientes personalizados: através de
Dockerfile
Ajuste o software e a configuração da sandbox. - Compatível com MCP: Suporte MCP Clientes (por exemplo Claude Desktop) para facilitar a integração.
Usando a Ajuda
A instalação e o uso do Arrakis requerem algumas etapas. Aqui estão instruções detalhadas para ajudá-lo a começar rapidamente.
Processo de instalação
- Verificação dos requisitos do sistema
O Arrakis só é compatível com os sistemas Linux porque depende do/dev/kvm
Virtualização. Você pode verificar se há suporte à virtualização com o comando:
stat /dev/kvm
Se for retornado um erro, o host não é compatível e a virtualização precisa ser ativada.
- Faça o download e instale
Execute o seguinte comando no Linux para fazer o download do arquivo pré-criado:
curl -sSL https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh | bash
O download gera arrakis-prebuilt
que contém binários e imagens.
- Iniciando o servidor REST
Vá para a pasta e inicie o serviço:
cd arrakis-prebuilt
sudo ./arrakis-restserver
O serviço é executado por padrão no 127.0.0.1:7000
. Necessidades sudo
no que se refere ao gerenciamento de máquinas virtuais.
- Instalação do Python SDK (opcional)
Se quiser controlar a sandbox com Python, instale o SDK:
pip install py-arrakis
Funções principais
Criando um Sandbox
- Usando a CLI
Crie uma caixa de areia:
./arrakis-client start -n my-sandbox
Retorna informações de IP e status da sandbox.
- Usando Python
Criado com o SDK:
from arrakis_client import SandboxManager
manager = SandboxManager('http://127.0.0.1:7000')
sandbox = manager.start_sandbox('my-sandbox')
print(sandbox.info())
código de execução
- Método CLI
Executar comandos na área restrita:./arrakis-client run -n my-sandbox --cmd "echo Hello World"
- Modo Python
Execute-o com o SDK:sandbox.run_cmd('echo Hello World')
A saída é retornada ao terminal.
Uso da interface gráfica
Cada sandbox é iniciada com seu próprio servidor VNC e com o Chrome, obtendo informações de conexão:
- Use a CLI:
./arrakis-client info -n my-sandbox
Retorna algo como
port_forwards: [{'host_port': '3000', 'guest_port': '5901', 'description': 'gui'}]
. - Use Python:
print(sandbox.info()['port_forwards'])
- Conecte a VNC:
Conexão com um cliente VNC (por exemplo, noVNC)主机IP:3000
A interface gráfica pode ser vista.
Instantâneos e retrocesso
- Salvar instantâneo
Use a CLI:./arrakis-client snapshot -n my-sandbox -o snap1
Use Python:
snapshot_id = sandbox.snapshot('snap1')
- Restaurar instantâneo
Destrua a caixa de areia primeiro:./arrakis-client destroy -n my-sandbox
Reintegração:
./arrakis-client restore -n my-sandbox --snapshot snap1
Ou com Python:
sandbox.destroy() sandbox = manager.restore('my-sandbox', snapshot_id)
Caixas de areia personalizadas
- localizar
rootfs/Dockerfile
. - Editar para adicionar software, por exemplo:
RUN apt-get update && apt-get install -y vim
- Reinicie a área restrita:
./arrakis-client start -n my-sandbox --rootfs custom-rootfs
Acesso SSH
Cada sandbox é compatível com SSH:
- Obter IP:
./arrakis-client info -n my-sandbox
Retorna algo como
ip: "10.20.1.2/24"
. - Faça o login:
ssh elara@10.20.1.2
usuário padrão
elara
Senhaelara0000
.
Exemplo de fluxo de operação
Tentando fazer com que a IA grave arquivos e teste o retrocesso em uma área restrita:
- Inicie a área restrita:
./arrakis-client start -n test-sandbox
- Executar comando:
./arrakis-client run -n test-sandbox --cmd "echo '第一步' > /tmp/test.txt"
- Salve o instantâneo:
./arrakis-client snapshot -n test-sandbox -o step1
- Modificar o arquivo:
./arrakis-client run -n test-sandbox --cmd "echo '第二步' > /tmp/test.txt"
- Restaurar instantâneos:
./arrakis-client destroy -n test-sandbox ./arrakis-client restore -n test-sandbox --snapshot step1
- Verifique o arquivo:
./arrakis-client run -n test-sandbox --cmd "cat /tmp/test.txt"
A saída deve ser
第一步
.
Para obter mais detalhes, consulte a seção README.md
.
cenário do aplicativo
- Depuração de código de IA
Os desenvolvedores executam códigos não confiáveis com o Arrakis para isolar o risco. Retroceder após erros para verificar se há problemas. - experimento de ensino
O professor cria uma caixa de areia para que os alunos pratiquem a programação de IA, e os alunos podem manipulá-la à vontade sem afetar o mainframe. - teste de tarefas em várias etapas
As empresas usam o Arrakis para testar processos automatizados de IA, como operações na Web ou processamento de arquivos, com suporte para recuperação de instantâneos.
QA
- O Arrakis é compatível com o Windows?
não é suportado e, no momento, só é executado no Linux devido à dependência docloud-hypervisor
. - Como faço para interromper o sandbox?
despesa ou gasto./arrakis-client stop -n 名称
Parar, oudestroy
Excluir. - Quanto espaço um instantâneo ocupa?
Dependendo do conteúdo da sandbox, geralmente algumas centenas de MB, é recomendável limpar os instantâneos não utilizados.