MCP

Executor Python REPL com namespace isolado dentro do processo da GenPark: o que saber antes do primeiro uso

Ideal para permitir que um Agente de IA execute código Python em um namespace isolado dentro do processo, capturando saídas e estado de variáveis; porém, o isolamento limita-se à separação de globals e à restrição de built-ins, não sendo um sandbox a nível de processo — antes de rodar código com efeitos colaterais, a verificação de segurança é responsabilidade do usuário.

Official source · alphaparkinc/genpark-inprocess-python-repl-isolated-namespace-skill

Install

git clone https://github.com/alphaparkinc/genpark-inprocess-python-repl-isolated-namespace-skill

Para quem é

  • Para quem precisa que um Agente de IA execute um trecho de código Python durante a conversa e receba o resultado de volta. Este projeto (GenPark AI Agent Skill) oferece um executor Python REPL com namespace isolado dentro do processo, capaz de capturar stdout/stderr, restringir as funções built-in disponíveis (safe builtins restrictor) e suportar introspecção de variáveis em tempo de execução.
  • Adequado para ambientes que não querem dependências complexas: oficialmente, o projeto é explicitamente de zero dependências, implementado apenas com a biblioteca padrão do Python.
  • Adequado para cenários em que há preocupação com a contaminação da memória do Agente: a documentação oficial destaca que o isolamento dentro do processo é obtido por meio de uma separação de globals limpa, evitando que a memória do Agente seja poluída.
  • Casos em que não é adequado: cenários que exijam um sandbox real a nível de sistema operacional, isolamento de rede ou limitação de recursos — a página oficial não afirma fornecer essas capacidades, o que permanece desconhecido; necessidades de executar o código em um processo ou contêiner separado também não são mencionadas na documentação oficial.
  • Itens desconhecidos quanto aos pré-requisitos de uso: as evidências oficiais não indicam a versão mínima do Python suportada nem se é necessário um framework hospedeiro específico para fazer chamadas; verifique o README original do repositório.

Primeira tentativa em 3 minutos

Caminho principal recomendado: obtenha o código do repositório oficial no GitHub, carregue este Skill no seu ambiente de Agente e execute uma expressão Python simples e somente de leitura.

  1. Pré-requisito: um ambiente capaz de executar Python. Segundo a documentação oficial, o projeto não tem dependências e usa apenas a biblioteca padrão, portanto não é necessário instalar pacotes de terceiros.
  2. Obtenção: clone o repositório oficial localmente:
git clone https://github.com/alphaparkinc/genpark-inprocess-python-repl-isolated-namespace-skill
  1. As evidências oficiais não fornecem comandos de carregamento específicos, assinaturas de funções nem pontos de entrada de chamada (como o nome exato de uma função execute ou o formato de configuração). Nesta etapa, leia diretamente as instruções de uso no README do repositório para concluir a integração; não adivinhe a interface por conta própria.
  2. Para a primeira tentativa, recomenda-se executar um código sem efeitos colaterais, por exemplo, calcular uma expressão e imprimir o resultado. Basta verificar dois pontos para confirmar o sucesso: o executor retorna a saída stdout do seu código; a introspecção de variáveis permite visualizar as variáveis em tempo de execução no namespace.
  3. Sinal de sucesso: a telemetria de execução estruturada na saída (structured execution telemetry descrita oficialmente) inclui o conteúdo de stdout/stderr gerado pelo código, e a memória/variáveis próprias do Agente hospedeiro não foram alteradas por essa execução.

Atenção: a documentação oficial descreve o caminho do código como «o Agente gera o código → engine de namespace isolado → telemetria de execução estruturada». Mesmo com a restrição de built-ins e o isolamento de globals, isso continua sendo um isolamento dentro do processo, não um sandbox fora do processo; não interprete «namespace isolado» como isenção de risco ou como incapacidade de acessar o ambiente local — a documentação oficial não oferece tal garantia de segurança.

Casos de uso

Caso 1: fazer um cálculo puro na conversa com o Agente

  • Cenário: o usuário pede ao Agente para calcular um resultado estatístico de um conjunto de dados.
  • Procedimento: entregue ao executor REPL um trecho de código Python gerado e sem efeitos colaterais, por exemplo, construir uma pequena lista, calcular soma/média e imprimir com print.
  • Resultado esperado: como oficialmente ele captura o stdout, o Agente pode devolver a você o resultado impresso; como há uma separação limpa de globals, as variáveis temporárias desse código não permanecem na memória do Agente.

Caso 2: inspecionar as variáveis do namespace após a execução

  • Cenário: você quer confirmar quais variáveis um código produziu após rodar e quais são seus valores.
  • Procedimento: após executar seu código, use a capacidade de introspecção de variáveis em tempo de execução (runtime variable introspection) para ver o estado das variáveis no namespace isolado.
  • Resultado esperado: é possível ver as variáveis e seus conteúdos deixados por aquela execução no namespace isolado; quanto à forma específica de chamar a introspecção e ao formato de retorno, as evidências oficiais não dão detalhes — consulte o README do repositório.

Limites de uso

  • Natureza de leitura e escrita: trata-se de um executor de código, que naturalmente pode executar operações de escrita arbitrárias (como gravar arquivos). As evidências oficiais mencionam apenas a restrição de built-ins, sem especificar o escopo exato dessa restrição, e não confirmam que ela impeça todas as operações de escrita.
  • Grau de isolamento: oficialmente, promete-se apenas o isolamento de namespace dentro do processo (separação de globals) e o safe builtins restrictor; não há declaração oficial de sandbox a nível de processo, de contêiner ou de restrição de rede.
  • Efeitos colaterais e ponto de verificação: antes de executar, confirme que o código a rodar não tem efeitos colaterais que você não esteja disposto a assumir; oficialmente, não existe mecanismo para «desfazer o código já executado».
  • Dados locais: o executor roda no seu próprio processo Python; a possibilidade de ler arquivos locais depende do escopo das restrições de built-ins, o que oficialmente não está especificado — não o considere como tendo fronteiras de privacidade garantidas.
  • Ainda não confirmado: a interface de chamada específica, os requisitos de versão do Python, a forma de tratamento de erros e o conteúdo da whitelist de safe builtins não estão descritos nas evidências coletadas; verifique o texto original do repositório antes de usar.