Produção
Executando o PentAGI para uma equipe — hardening, isolamento, Podman e várias instâncias.
Checklist
- Defina todas as credenciais, incluindo
COOKIE_, antes da primeira inicialização — veja Segurança. O instalador gera o salt e as senhas dos serviços, mas não as senhas de administrador do Langfuse e do Grafana: definaSIGNING_ SALT LANGFUSE_eINIT_ USER_ PASSWORD passwordno template, antes que o Langfuse seja iniciado pela primeira vez, e altere oadmin/adminpadrão do Grafana após sua primeira inicialização. Em uma instalação em execução, altere as senhas do PostgreSQL e do Neo4j dentro dos bancos de dados antes de alterá-las em.env. - Use um certificado real e um
PUBLIC_estável.URL - Atrás de um proxy reverso, defina
TRUSTED_como o endereço ou CIDR do proxy. Caso contrário, todos os usuários compartilham o endereço do proxy, e 30 tentativas de login com falha em 5 minutos bloqueiam todos por 15 minutos.PROXIES - Mova a execução de tooltool — ferramentaAquilo por meio do qual um agente age: um recurso integrado como o terminal, o navegador isolado ou a busca na web, ou um programa no sandbox como nmap, metasploit ou sqlmap. para um worker node dedicado.
- Habilite a observabilidade para acompanhar custos e falhas.
- Mantenha o knowledge graphknowledge graph — grafo de conhecimentoO grafo de hosts, serviços, vulnerabilidades e o acesso entre eles que o PentAGI constrói durante um teste quando esse recurso opcional está ativado. Ele mostra como os achados se conectam. e o Langfuse em uma rede privada.
Podman
O PentAGI roda tanto no Podman quanto no Docker. No modo rootless, o serviço scraper precisa de configuração extra porque containers rootless não podem vincular portas privilegiadas; o README do repositório descreve as configurações rootless e rootful.
Várias instâncias (TENANT_ ID)
Deixe TENANT_ vazio para uma instalação única e mantenha-o vazio em uma existente: defini-lo posteriormente move a instância para um novo esquema vazio, que começa com a conta padrão [email protected], e seus flowsflow — fluxoUma execução do PentAGI: um objetivo, as tarefas criadas a partir das suas mensagens e tudo o que os agentes fizeram no caminho., usuários e configurações deixam de aparecer. Defina-o nas instâncias que você adicionar quando várias instâncias do PentAGI compartilharem recursos externos, como um servidor PostgreSQL, um worker nodeworker node — nó workerUm servidor separado que executa os contêineres de ferramentas dos agentes, para que os comandos executados nunca afetem o host principal do PentAGI., um Neo4j ou um Langfuse:
| Área | Efeito de TENANT_ |
|---|---|
| PostgreSQL | Opera dentro do schema acme em vez de public |
| Contêineres do worker node | Nomeados como acme-pentagi-terminal-<flow> |
| Knowledge graph | IDs de grupo tornam-se acme-flow-<id> |
| Autenticação | Chaves de cookie e token incluem o tenanttenantUma instalação do PentAGI. Quando várias instalações compartilham recursos externos, como um único banco de dados PostgreSQL, cada uma que você adiciona recebe seu próprio TENANT_ID; uma instalação existente mantém esse campo vazio. |
| Telemetria | Dados do Langfuse e OpenTelemetry são marcados com o tenant |
O valor deve corresponder a ^[a-z][a-z0-9_. Recursos do host não são namespaced. Instâncias em um servidor precisam de seus próprios DATA_ e portas publicadas. Instâncias cujos sandboxessandboxO container Docker isolado no qual os agentes executam suas ferramentas. A interface o mostra como Terminal. rodam no mesmo host Docker, em um servidor ou em um worker node compartilhado, precisam de seus próprios DOCKER_ e, se estiver definido, de seus próprios DOCKER_; caso contrário, seus sandboxes reivindicam as mesmas portas e os flows falham ao iniciar. Cada base inicia uma janela de 2000 portas, 28000 por padrão, então use por exemplo 28000 e 30000.
Última atualização em